Jak prawidłowo uzyskać dostęp do oprogramowania RAID 0 dla systemu Windows?

12

Jestem nowym użytkownikiem Ubuntu ze świeżą instalacją i chętnie zacznę z tym korzystać. Jednak wszystkie moje ważne dane znajdują się w macierzy RAID 0 oprogramowania Windows i potrzebuję ich, aby pozostać tam, ponieważ również uruchamiam system Windows z podwójnym uruchomieniem. Potrzebuję dostępu do tych danych na Ubuntu i nie mogę naprawdę nic zrobić, dopóki nie mam dostępu.

Badałem już ten temat najlepiej, jak mogłem, i udało mi się znaleźć bardzo pomocny post:

W tym artykule opisano, jak zmusić Ubuntu do zobaczenia macierzy Windows RAID 0, która składa się z dwóch dysków. Główne używane polecenie to sudo mdadm --build /dev/md0 --chunk=64 --level=0 --raid-devices=2 /dev/sdd2 /dev/sdc2. Według tego użytkownika i innych plakatów w wątku to faktycznie działa. To wspaniale.

Nie próbowałem jeszcze postępować zgodnie z tymi instrukcjami. Dlaczego? Post zawiera ostrzeżenie o tym, jak nie wolno do niego pisać, jeśli wprowadzisz nieprawidłowy rozmiar fragmentu; zrozumiałe jest, w jaki sposób może to powodować problemy. Obawiam się, że moja konfiguracja różni się od ich przykładu i nie jestem pewien, czy polecenia powinny być wprowadzane dokładnie tak samo dla mojej instalacji. Boję się to zepsuć, robiąc to źle i dlatego pragnę zasięgnąć porady kogoś bardziej doświadczonego.

Oto jak moja konfiguracja różni się od ich przykładu:

  1. Mam trzy dyski 1 TB, a nie dwa dyski (o dowolnej wielkości).
  2. Mam dwie partycje RAID 0 na tych trzech dyskach: jedną 500 GB i 2,3 TB. Oznacza to, że NIE muszę używać pełnych dysków podczas tworzenia macierzy RAID, ale zamiast tego używam tylko ich części.
  3. Użyłem niestandardowego rozmiaru bloku dla co najmniej jednej z moich partycji RAID 0, kiedy konfigurowałem je lata temu. Nie mam pojęcia, czy ten rozmiar bloku jest taki sam, jak wspomniany rozmiar porcji. Moja partycja 500 GB ma rozmiar bloku 4 kb (4096 bajtów na klaster), a moja partycja 2,3 TB ma rozmiar bloku 64 kb (65536 bajtów na klaster).

Odpowiednie wyjście sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL(tylko dla tych trzech dysków RAID0) to:

NAME   FSTYPE   SIZE MOUNTPOINT            LABEL
sdb           931.5G            
├─sdb1            1M            
├─sdb2          127M            
└─sdb3        931.4G            
sdc           931.5G            
├─sdc1            1M            
├─sdc2          127M            
└─sdc3        931.4G            
sdd           931.5G            
├─sdd1        166.7G            
└─sdd2        764.7G 

Odpowiednie wyjście cat /proc/partitions(tylko dla tych trzech dysków RAID0) to:

8       16  976762584 sdb
8       17       1024 sdb1
8       18     130048 sdb2
8       19  976631478 sdb3
8       32  976762584 sdc
8       33       1024 sdc1
8       34     130048 sdc2
8       35  976631478 sdc3
8       48  976762584 sdd
8       49  174763008 sdd1
8       50  801865728 sdd2

Program „Dyski” w systemie Ubuntu wyświetla następujące partycje dla moich dysków:

/dev/sdb:   GUID Partition Table .
/dev/sdb1:  1.0 MB, Microsoft LDM metadata.
/dev/sdb2:  133 MB, Microsoft Reserved.
/dev/sdb3:  1.0 TB, Microsoft LDM data.
/dev/sdc:   GUID Partition Table partitioning.
/dev/sdc1:  1.0 MB, Microsoft LDM metadata.
/dev/sdc2:  133 MB, Microsoft Reserved.
/dev/sdc3:  1.0 TB, Microsoft LDM data.
/dev/sdd:   Master Boot Record partitioning.
/dev/sdd1:  179 GB, Unknown.
/dev/sdd2:  821 GB, Unknown.
/dev/sdd:   136 MB, Unallocated space.

Mam nadzieję, że podałem tutaj wystarczającą ilość informacji. Więc teraz moje pytanie brzmi: jakie jest właściwe polecenie, aby wejść z moją instalacją, aby uzyskać dostęp do obu moich partycji Windows RAID 0 z Ubuntu?

Z góry bardzo dziękuję.

Dan
źródło

Odpowiedzi:

16

W końcu udało mi się to uruchomić dzięki postowi Przepełnienie stosu: przywracanie dyskietek z systemem Windows (LDM) w systemie Linux?

Niezwykle trudno było odkryć tę nieuchwytną informację. Wyszukiwanie trwało kilka dni i chyba nie znalazłem go, ponieważ w poście nie ma wzmianki o RAID, więc nie pojawił się w moich wynikach wyszukiwania. Jednak zdecydowanie działa w moim systemie Windows RAID 0.

Rozwiązanie:

Rozwiązanie jest dość proste. Jest to wspaniałe narzędzie zbudowane specjalnie w tym celu, zwane ldmtool. Jest w stanie czytać i pracować z dyskami dynamicznymi Windows, które używają LDM (Logical Disk Manager). Nie jest instalowany domyślnie, ale jest zawarty w repozytoriach Ubuntu. Wszystko, co musiałem zrobić, to wykonać dwa polecenia:

sudo apt-get install ldmtool
sudo ldmtool create all

Pierwsze polecenie instaluje się ldmtool, a drugie automatycznie tworzy mapowania urządzeń dla wszystkich podłączonych dysków dynamicznych Windows. Te mapowania są zlokalizowane /dev/mapper/i można je montować ręcznie mount -t ntfs /dev/mapper/mapfilename, ale nie musiałem tego robić - Ubuntu zamontował je dla mnie automatycznie po uruchomieniu powyższych dwóch poleceń. To wszystko, co musiałem zrobić, i mogłem od razu uzyskać do nich dostęp z przeglądarki plików!

Powiązany post zawiera sugestię, aby zrobić to automatycznie przy każdym rozruchu. Wystarczy otworzyć plik /etc/init/mountall.confi dodać linię [ -x /usr/bin/ldmtool ] && ldmtool create all >/dev/null || truebezpośrednio przed exec mountall ...linią w pobliżu końca pliku.

Pełne uznanie dla tego rozwiązania należy do Christiana Hudona, faceta, który opublikował go jako odpowiedź na Stack Overflow. Dzięki!

Aby dodać do tego kilka dodatkowych informacji, użyłem innych ldmtoolpoleceń, aby zapytać o informacje w moich woluminach:

sudo ldmtool scan /dev/sdd
[
  "e856a65f-e558-11e1-ae19-bc5ff435f790"
]

sudo ldmtool show diskgroup e856a65f-e558-11e1-ae19-bc5ff435f790
{
  "name" : "Dan-PC-Dg0",
  "guid" : "e856a65f-e558-11e1-ae19-bc5ff435f790",
  "volumes" : [
    "Volume1",
    "Volume2"
  ],
  "disks" : [
    "Disk1",
    "Disk2",
    "Disk3"
  ]
}

sudo ldmtool show volume e856a65f-e558-11e1-ae19-bc5ff435f790 Volume1
{
  "name" : "Volume1",
  "type" : "striped",
  "size" : 1048578048,
  "chunk-size" : 128,
  "hint" : "D:",
  "partitions" : [
    "Disk1-01",
    "Disk2-01",
    "Disk3-01"
  ]
}

sudo ldmtool show volume e856a65f-e558-11e1-ae19-bc5ff435f790 Volume2
{
  "name" : "Volume2",
  "type" : "striped",
  "size" : 4811194368,
  "chunk-size" : 128,
  "hint" : "E:",
  "partitions" : [
    "Disk1-02",
    "Disk2-02",
    "Disk3-02"
  ]
}

Nie jest konieczne uruchamianie powyższych poleceń, podobnie ldmtool create alljak cała praca niezbędna do utworzenia odwzorowań. Właśnie je umieściłem, ponieważ w pytaniu umieściłem już informacje o mojej konfiguracji, więc informacje te mogą być pomocne dla każdego, kto natknie się na ten post później. W szczególności widzimy, że zgodnie z tym ldmtool, oba moje dynamiczne woluminy używają porcji 128, mimo że są tworzone z różnymi rozmiarami bloków w systemie Windows. Myślę, że to oznacza, że ​​rozmiar bloku i wielkość porcji nie są synonimami. Polecenia ldmtool show diski ldmtool show partitionmogą służyć do wyświetlania dalszych informacji.

Dan
źródło
5-letnie rozwiązanie nadal działa w Ubuntu 18. Dzięki.
Cris
2

Ubuntu 14.04 LTS mount raid 1 stworzony przez Windows 7 przy użyciu ldmtool newby. ** **

Miałem ten sam problem. Korzystając z powyższej odpowiedzi, miałem szczęście i zamontowałem ją

gksu gedit /etc/init/mountall.conf 

zmieniając linię

 [ -x /usr/bin/ldmtool ] && ldmtool create all >/dev/null || true

do

/bin/ldmtool create all >/dev/null || true

następnie dodane

/bin/mount /dev/mapper/ldm_vol_NAME-Dg0_volume1 /media/WHEREVER

Mój mountall.conf wygląda teraz tak

     **fi
/usr/bin/ldmtool create all >/dev/null || true
/bin/mount -o rw /dev/mapper/ldm_vol_OCTO-CORE-Dg0_Volume1 /media/m
    exec mountall --daemon $force_fsck $fsck_fix $debug_arg
end script**

wcześniej miałem skrypt, aby zrobić to samo z 2 liniami

/usr/bin/ldmtool create all >/dev/null || true

/bin/mount -o rw /dev/mapper/ldm_vol_OCTO-CORE-Dg0_Volume1 /media/m

i dodał

sh /home/ron/mirror to the end of /etc/rc.local 

teraz jest montowany po uruchomieniu Ubuntu

Nie wiem, czy to zadziała dla ciebie!

Ron Prickett
źródło
2

Pozostałe odpowiedzi działały tylko częściowo w mennicy 18.3.

Automatyczne montowanie dysków Raid0 było nieco trudniejsze, ponieważ edycja /etc/init/mountall.confnigdy nie działała w moim systemie i chciałem móc zamontować wolumin łączony przy użyciu definicji w /etc/fstab, a nie używać skryptu /etc/rc.local.

Oto co zrobiłem:

sudo apt-get install ldmtool

Sprawdzono, czy wolumin został rozpoznany i czy można go poprawnie zamontować za pomocą:

sudo ldmtool create all

Wiedząc, że mój system może widzieć i zapisywać na dyskach. Stworzyłem usługę (zgodnie ze wskazówkami z tej strony :( https://wiki.archlinux.org/index.php/Dynamic_Disks )

utworzył plik etc/systemd/system/wywołany ldmtool.servicez opisem usługi:

[Unit]
Description=Windows Dynamic Disk Mount
Before=local-fs-pre.target
DefaultDependencies=no
[Service]
Type=simple
User=root
ExecStart=/usr/bin/ldmtool create all
[Install]
WantedBy=local-fs-pre.target

Aby włączyć usługę podczas uruchamiania:

sudo systemctl is-enabled ldmtool

Aby znaleźć identyfikator UUID używanego woluminu:

sudo blkid

Co dało mi następujące informacje: /dev/mapper/ldm_vol_XXX-Dg0_Volume1: LABEL="6TB_Raid" UUID="0A281FC6281FAFA5" TYPE="ntfs"

Więc stworzyłem linię, /etc/fstabktóra brzmi:

UUID=0A281FC6281FAFA5 /media/6TB_Raid ntfs-3g  auto,users,uid=1000,gid=100,dmask=027,fmask=137,utf8  0  0

Głośność jest dostępna przy każdym uruchomieniu.

cegaton
źródło