Datenrettung von Raid-Systemen unter Linux

Aus
Version vom 10. September 2008, 16:14 Uhr von Trolli (Diskussion | Beiträge) (Inhalt eingefügt)

Diese Anleitung wurde ursprünglich vom Benutzer Noctec im Deutschen Synology Forum geschrieben: http://www.synology-forum.de/showpost.html?p=1405&postcount=1


Hintergrund:

1. Die Cube Stations haben drei Partieionen: System, SWAP, and Data.

md0: system partition, RAID 1
md1: SWAP partition, RAID 1
md2: Data volume, je nachdem wie es erstellt wurde RAID 0, 1, or 5.

2. Die Cube Station verwenden ein big endian system. Um das Raid auf einem normalen PC zu mounten muß es nach little endian konvertiert werden.

3. Die Cube Station verwendet das EXT3 file system.

Vorbereitung

1. Auf dem Linux Rechner muß eine 4-Port SATA Karte installiert werden, die ordnungsgemäße Funktion sollte mit einer Festplatte getestet werden.

2. “Multi-device support (RAID 0/1/5)” muß im Linux Kernel aktiviert sein.

Die Raid Unterstützung des Kernels erkennt man z.B. am Vorhandensein der Datei “/proc/mdstat”.

Datenrettung

1. Die vier Festplatten aus der Cube Station an die SATA Kontroller anschließen. Die Platten werden als sda, sdb, sdc, and sdd erkannt. Es vereinfacht die Sache, wenn die Platten in der Reihenfolge angeschlossen werden, wie sie auch in der Cube Station angeschlossen waren. Ansonsten müssen die Kennungen entsprechend angepaßt werden.

2. Update des Super Blocks nach little endian 4 disks RAID 0 oder RAID 5:

mdadm -A /dev/md2 --update=byteorder /dev/sd[abcd]3

2 disks RAID 1:

mdadm -A /dev/md2 --update=byteorder /dev/sd[ab]3

Hiernach erscheint ein md2 device unter Linux. Die Geräte können mit diesem Befehl angezeigt werden.

cat /proc/mdstat

Ein 4 Disk RAID 5 Volume benötigt wenigstens 3 disks zur Wiederherstellung Ein 3 Disk RAID 5 Volume benötigt wenigstens 2 disks zur Wiederherstellung

Wenn der obige Befehl kein md2 erzeugt mit wenigstens [Gesamtzahl Disks - 1] Disks, kann man versuchen, die Erstellung zu erzwingen:

mdadm -Sf /dev/md2
mdadm --assemble --force /dev/md2 /dev/sd[a-d]3

3. Nachdem das Raid erstellt wurde können die Partitionen gemounted werden

mount –o ro /dev/md2 /mnt

Wenn das mounten fehlschlägt, kann man es mit einem anderen super block versuchen:

mount –o ro,sb=131072 /dev/md2 /mnt

oder

mount –o ro,sb=393216 /dev/md2 /mnt

4. Wenn das mounten immer noch fehlschlägt einmal fsck.ext3 drüber laufen lassen und dann versuchen zu mounten.

Bevor man den fsck drüber laufen läßt sollten die Platten möglichst gesichert werden, da hierdurch die Lage auch verschlechtert werden kann. Man benötigt dann natürlich nochmal dieselbe Anzahl an Platten.

Die Raid Disks duplizieren:

An den Kontroller eine Cube Station Disk (z.B. sda) und eine leere Disk (z.B. sdb) anschließen

Das Backup erfolgt über folgenden Befehl:

dd if=/dev/sda of=/dev/sdc bs=64k conv=noerror

Vorsicht: Dieser Befehl löscht die Zielplatte unwiederruflich. Wenn die Parameter vertauscht werden wars das mit der Datenrettung.

Das muß nun für alle Platten durchgeführt werden. Hiernach haben wir einen Satz Platten mit dem wir die Datenrettung unbesorgt versuchen können. Jetzt über alle Platten fsck laufen lassen.

Alle Angaben ohne Gewähr, ich habs nicht getestet :-)