Datenrettung von Raid-Systemen unter Linux

Aus Synology Wiki
Wechseln zu: Navigation, Suche

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

ACHTUNG: Diese Anleitung ist inzwischen "outdated", man kann hierdurch mehr kaputt machen, als retten (Tipp: mit DSM 3.0 wird nicht mehr ext3 verwendet, ausserdem werden andere Metadaten (Version 1.1, nicht mehr 0.90) verwendet und hinzu kommt, dass nicht mehr alle Synology-Geräte big endian sind (z.B. DS1010+)).
Empfehlung: wenden Sie sich an einen Fachhändler, der auch professionelle Datenrettungen anbietet.


Hintergrund:

1. Die Synology Stations haben drei Partitionen: System, SWAP, and Data.

md0: System Partition, RAID 1
md1: SWAP Partition, RAID 1
md2: Daten Volume, je nachdem wie es erstellt wurde RAID 0, 1, or 5.

2. Die Synology Stations verwenden ein big endian system. Um das Raid auf einem normalen PC zu mounten muss es nach little endian konvertiert werden.

3. Es wird ein EXT3 Dateisystem verwendet.

Vorbereitung

1. Auf dem Linux Rechner muss 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)” muss 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ässt 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 muss 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 :-)