Wie greife ich ordnungsgemäß auf die Windows-Software RAID 0 zu?

12

Ich bin ein neuer Ubuntu-Benutzer mit einer Neuinstallation und bin gespannt darauf, damit zu beginnen. Alle meine wichtigen Daten befinden sich jedoch im Windows-Software-RAID 0-Array, und ich brauche sie, um dort zu bleiben, da ich auch Windows doppelt boote. Ich brauche Zugriff auf diese Daten unter Ubuntu und kann erst dann wirklich etwas erledigen, wenn ich Zugriff habe.

Ich habe dieses Thema bereits so gut wie möglich recherchiert und einen sehr hilfreichen Beitrag gefunden:

In diesem Beitrag wird beschrieben, wie Ubuntu ein Windows RAID 0-Array anzeigt, das aus zwei Laufwerken besteht. Der verwendete Hauptbefehl ist sudo mdadm --build /dev/md0 --chunk=64 --level=0 --raid-devices=2 /dev/sdd2 /dev/sdc2. Laut diesem Benutzer und den anderen Postern im Thread funktioniert es tatsächlich. Das ist großartig.

Ich habe noch nicht versucht, diese Anweisungen zu befolgen. Warum? Der Beitrag enthält eine Warnung, wie Sie nicht darauf schreiben dürfen, wenn Sie die falsche Blockgröße eingeben. Es ist verständlich, wie dies zu Problemen führen kann. Ich mache mir Sorgen, dass sich mein Setup von ihrem Beispiel unterscheidet, und ich bin nicht sicher, ob die Befehle für mein Setup genau gleich eingegeben werden sollen. Ich habe Angst, es zu brechen, indem ich es falsch mache, und möchte daher den Rat von jemandem einholen, der erfahrener ist.

So unterscheidet sich mein Setup von ihrem Beispiel:

  1. Ich habe drei 1-TB-Laufwerke, nicht zwei Laufwerke (unabhängig von der verwendeten Größe).
  2. Ich habe zwei RAID 0-Partitionen, die auf diese drei Laufwerke verteilt sind: eine mit 500 GB und 2,3 TB. Dies bedeutet, dass ich beim Erstellen des RAID-Arrays NICHT die vollständigen Festplatten verwenden muss, sondern nur einen Teil davon.
  3. Ich habe eine nicht standardmäßige Blockgröße für mindestens eine meiner RAID 0-Partitionen verwendet, als ich sie vor Jahren eingerichtet habe. Ich habe keine Ahnung, ob diese Blockgröße mit der von ihnen erwähnten Blockgröße übereinstimmt. Meine 500-GB-Partition hat eine Blockgröße von 4 KB (4096 Byte pro Cluster) und meine 2,3-TB-Partition eine Blockgröße von 64 KB (65536 Byte pro Cluster).

Die relevante Ausgabe von sudo lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINT,LABEL(nur für diese drei RAID0-Laufwerke) ist:

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 

Die relevante Ausgabe von cat /proc/partitions(nur für diese drei RAID0-Laufwerke) ist:

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

Das Programm "Disks" in Ubuntu zeigt die folgenden Partitionen für meine Laufwerke an:

/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.

Ich hoffe, ich habe hier genügend Informationen zur Verfügung gestellt. Meine Frage lautet nun: Was ist der richtige Befehl, den ich bei meinem Setup eingeben muss, damit ich von Ubuntu aus auf beide Windows RAID 0-Partitionen zugreifen kann?

Vielen Dank im Voraus.

Dan
quelle

Antworten:

16

Dank dieses Beitrags zum Stapelüberlauf habe ich es endlich geschafft: Wiederherstellung von Windows Spanned Disks (LDM) unter Linux?

Es war äußerst schwierig, diese schwer fassbaren Informationen aufzudecken. Es hat Tage gedauert, bis ich gesucht habe, und ich glaube, ich habe es nicht gefunden, weil in dem Beitrag RAID nicht erwähnt wird, sodass es in meinen Suchergebnissen nicht auftauchte. Es funktioniert jedoch definitiv für meine Windows-Software RAID 0.

Die Lösung:

Die Lösung ist eigentlich ganz einfach. Es gibt ein wunderbares Werkzeug, das speziell für diesen Zweck entwickelt wurde ldmtool. Es kann dynamische Windows-Festplatten lesen und damit arbeiten, die LDM (Logical Disk Manager) verwenden. Es ist nicht standardmäßig installiert, aber in den Ubuntu-Repositorys enthalten. Ich musste nur zwei Befehle ausführen:

sudo apt-get install ldmtool
sudo ldmtool create all

Der erste Befehl wird installiert ldmtoolund der zweite Befehl erstellt automatisch Gerätezuordnungen für alle verbundenen dynamischen Windows-Festplatten. Diese Zuordnungen befinden sich in /dev/mapper/und können manuell mit gemountet werden mount -t ntfs /dev/mapper/mapfilename, aber das musste ich nicht tun - Ubuntu hat sie automatisch für mich gemountet, nachdem ich die beiden oben genannten Befehle ausgeführt habe. Das war alles, was ich tun musste, und ich konnte sofort über den Dateibrowser darauf zugreifen!

Der verlinkte Beitrag enthält einen Vorschlag, dies bei jedem Start automatisch zu tun. Öffnen Sie einfach die Datei /etc/init/mountall.confund fügen Sie die Zeile [ -x /usr/bin/ldmtool ] && ldmtool create all >/dev/null || trueunmittelbar vor der exec mountall ...Zeile am Ende der Datei hinzu.

Die volle Anerkennung für diese Lösung geht an Christian Hudon, der sie als Antwort auf Stack Overflow veröffentlicht hat. Vielen Dank!

Um weitere Informationen hinzuzufügen, habe ich einige andere ldmtoolBefehle verwendet, um meine Volumes nach Informationen abzufragen:

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"
  ]
}

Es ist nicht erforderlich, die obigen Befehle auszuführen, ebenso ldmtool create allwie alle erforderlichen Arbeiten zum Erstellen der Zuordnungen. Ich habe sie nur aufgenommen, weil ich bereits Informationen zu meinem Setup in die Frage aufgenommen habe. Diese Informationen können daher für alle hilfreich sein, die später auf diesen Beitrag stoßen. Insbesondere können wir sehen, dass ldmtoolmeine beiden dynamischen Volumes eine Blockgröße von 128 verwenden, obwohl sie in Windows mit unterschiedlichen Blockgrößen erstellt wurden. Ich denke, dies bedeutet, dass Blockgröße und Blockgröße keine synonymen Begriffe sind. Die Befehle ldmtool show diskund ldmtool show partitionkönnen verwendet werden, um weitere Informationen anzuzeigen.

Dan
quelle
5 Jahre alte Lösung funktioniert immer noch in Ubuntu 18. Danke.
Cris
2

Ubuntu 14.04 LTS-Mount-Raid 1, erstellt von Windows 7 mit ldmtool einem Newby. ** **

Ich hatte das gleiche Problem. Mit der obigen Antwort hatte ich Glück und ließ es montieren

gksu gedit /etc/init/mountall.conf 

durch Ändern der Zeile

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

zu

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

dann hinzugefügt

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

Meine mountall.conf sieht jetzt so aus

     **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**

Zuvor hatte ich ein Skript, um das gleiche mit den 2 Zeilen zu tun

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

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

und hinzugefügt

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

Jetzt wird es gemountet, wenn Ubuntu startet

Ich weiß nicht, dass das bei Ihnen funktionieren wird!

Ron Prickett
quelle
2

Die anderen Antworten funktionierten in Mint 18.3 nur teilweise.

Das automatische Mounten der Raid0-Laufwerke war etwas schwieriger, da die Bearbeitung /etc/init/mountall.confin meinem System nie funktioniert hat und ich das übergreifende Volume mithilfe einer Definition in mounten /etc/fstabund kein Skript in verwenden wollte /etc/rc.local.

Also hier ist was ich getan habe:

sudo apt-get install ldmtool

Überprüft, ob das Volume erkannt wurde und korrekt gemountet werden kann mit:

sudo ldmtool create all

Zu wissen, dass mein System die Laufwerke sehen und in sie schreiben kann. Ich habe einen Dienst erstellt (gemäß den Anweisungen auf dieser Website :( https://wiki.archlinux.org/index.php/Dynamic_Disks )

hat eine etc/systemd/system/aufgerufene Datei ldmtool.servicemit der Beschreibung des Dienstes erstellt:

[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

So aktivieren Sie den Dienst beim Start:

sudo systemctl is-enabled ldmtool

So ermitteln Sie die UUID des verwendeten Volumes:

sudo blkid

Welches gab mir die folgenden Informationen: /dev/mapper/ldm_vol_XXX-Dg0_Volume1: LABEL="6TB_Raid" UUID="0A281FC6281FAFA5" TYPE="ntfs"

Also habe ich eine Zeile erstellt /etc/fstab, die lautet:

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

Das Volume ist bei jedem Start vorhanden.

Cegaton
quelle