In den letzten Wochen sind bei mir drei Festplatten ausgefallen, von denen ich die Daten gerne behalten wollte. Deshalb habe ich mich entschieden einen Blogeintrag zu dem Thema zu schreiben, wie ich die Daten wieder hergestellt habe.
Sollte es bei normalen SATA Platten zu seltsamen Geräuschen auf der Festplatte kommen ist dies meistens auf einen Defekt zurückzuführen. Dies kann unter allen Linux Distributionen über die "dmesg" Ausgabe einfach kontrolliert werden.
Sollte es bei normalen SATA Platten zu seltsamen Geräuschen auf der Festplatte kommen ist dies meistens auf einen Defekt zurückzuführen. Dies kann unter allen Linux Distributionen über die "dmesg" Ausgabe einfach kontrolliert werden.
Sollten häufiger Meldungen wie die folgende Auftauchen, wird es höchste Zeit die Daten von der Festplatte zu sichern, das dies (auch ohne Geräusche) auf einen Hardwaredefekt hinweist:
Descriptor sense data with sense descriptors (in hex):
[ 495.124588] 72 03 11 04 00 00 00 0a 00 0c 80 00 00 00 00 00
[ 495.124595] 10 cc 51 dd
[ 495.124598] sd 4:0:0:0: [sdd] Add. Sense: Unrecovered read error - auto reallocate failed
[ 495.124602] sd 4:0:0:0: [sdd] CDB: Read(10): 28 00 10 ec 51 dc 00 00 04 00
[ 495.124609] end_request: I/O error, dev sdd, sector 283922909
[ 495.124612] Buffer I/O error on device sdd6, logical block 81850
[ 495.124623] ata5: EH complete
Für einige Daten der Festplatte kann es jetzt bereits zu spät sein, um zu versuchen einen Großteil der Daten zu retten sollten jetzt folgende Schritte beachtet werden:
Nun kann die Wiederherstellung der Daten beginnen.
Erst schauen wir uns über fdisk -l an, welche Partitionen sich auf der Festplatte befinden.
Disk /dev/sdd: 250.1 GB, 250059350016 bytes
255 Köpfe, 63 Sektoren/Spur, 30401 Zylinder, zusammen 488397168 Sektoren
Einheiten = Sektoren von 1 Ã 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0xeaefeaef
Gerät boot. Anfang Ende Blöcke Id System
/dev/sdd1 * 63 40965749 20482843+ 7 HPFS/NTFS/exFAT
/dev/sdd2 40965750 488375999 223705125 f W95 Erw. (LBA)
/dev/sdd5 40965813 283595444 121314816 7 HPFS/NTFS/exFAT
/dev/sdd6 283595508 488375999 102390246 7 HPFS/NTFS/exFAT
In diesem Fall handelt es sich um eine Festplatte mit mehreren vorhandenen Windows NTFS Partitionen. Wiederhergestellt werden können aber sämtliche Filesysteme, die Linux einlesen kann. Dazu gehören ext3, ext4, reiserfs, xfs und viele mehr.
Aber vorerst fangen wir mit der Sicherung der Partitionen an, um zu vermeiden, dass bei einem direkten Datenrestore noch mehr zerstört wird. Auf diese Sicherung können wir später direkt zugreifen und beanspruchen damit die original Festplatte nicht mehr.
Das Programm ddrescue liest erst alle fehlerfreien Sektoren aus und überspringt die fehlerhaften. Diese fehlerhaften Sektoren werden in einer Logdatei, falls angegeben, gespeichert und nach dem ersten Durchlauf erneut eingelesen. Dies kann bei einer Defekten Festplatte einen größeren Zeitraum in Anspruch nehmen. Bei einer Rücksicherung habe ich den Vorgang nach etwa 24 Std. abgebrochen und hatte somit einen Großteil der Daten gesichert.
Um ein Restore zu erzeugen führe ich den Befehl wie folgt aus:
root@system:~# # Wechsel in ein Verzeichnis welches
root@system:~# # groß genug für die zu sichernde
root@system:~# # Partition ist
root@system:~# cd /mnt/backup
root@system:~# ddrescue /dev/sdd1 sdd1.dd rescued.log
Press Ctrl-C to interrupt
rescued: 1688 MB, errsize: 0 B, current rate: 6684 kB/s
ipos: 1688 MB, errors: 0, average rate: 9023 kB/s
opos: 1688 MB, time from last successful read: 0 s
Finished
Danach kann das Backup als Loop-Device normal geöffnet werden, ohne auf die defekte Festplatte zuzugreifen:
root@system:~# mkdir /mnt/sdd1
root@system:~# mount -o loop /mnt/backup/sdd1.dd /mnt/sdd1
root@system:~# cd /mnt/sdd1
root@system:/mnt/sdd1# ls
boot.ini MSDOS.SYS CONFIG.SYS
WINDOWS Dokumente und Einstellungen pagefile.sys
...
root@system:/mnt/sdd1#
Aus diesem Verzeichnis können nun alle Daten mit den Standard Linux-Tools ausgelesen und gesichert werden.
Sollte es bei dem oben genannten ddrescue Befehl zu Problemen kommen, können die Parameter noch angepasst werden. Hier ein Beispiel zum wiederherstellen von cgsecurity.org:
#Erfasse zuerst die meisten fehlerfreien Bereiche auf die Schnelle:
ddrescue -B -n /dev/old_disk /dev/new_disk rescued.log
#Versuche dann soviel wie möglich von den heiklen Bereichen wiederherzustellen:
ddrescue -B -r 1 /dev/old_disk /dev/new_disk rescued.log
http://www.cgsecurity.org/wiki/Besch%C3%A4digte_Festplatte
[ 495.124588] 72 03 11 04 00 00 00 0a 00 0c 80 00 00 00 00 00
[ 495.124595] 10 cc 51 dd
[ 495.124598] sd 4:0:0:0: [sdd] Add. Sense: Unrecovered read error - auto reallocate failed
[ 495.124602] sd 4:0:0:0: [sdd] CDB: Read(10): 28 00 10 ec 51 dc 00 00 04 00
[ 495.124609] end_request: I/O error, dev sdd, sector 283922909
[ 495.124612] Buffer I/O error on device sdd6, logical block 81850
[ 495.124623] ata5: EH complete
Für einige Daten der Festplatte kann es jetzt bereits zu spät sein, um zu versuchen einen Großteil der Daten zu retten sollten jetzt folgende Schritte beachtet werden:
- Den Computer ausschalten bzw. die betroffene Festplatte aus dem System umounten!
- Eine System mit gleich großer Platten-Kapazität suchen und dort die Festplatte einbauen
- Start eines Rescue Systems, bzw. einer aktuellen Knoppix Version
- Die Software ddrescue (Paketname: gddrescue) und optional screen installieren.
- Bei Bedarf die Konfiguration eines Netzwerkzugangs.
Nun kann der Restoreversuch beginnen.
Es kann im "Extremfall" mehrere Tage dauern um die Daten der Festplatte zu sichern, weshalb ich als Voraussetzung der Softwarepakete screen empfohlen habe. Dies ist hilfreich um bei einem Rettungsversuch über das Netzwerk nicht die SSH-Session die ganze Zeit geöffnet zu haben. Wie dies genutzt werden kann, habe ich in dem folgenden Blogeintrag erwähnt.
Erst schauen wir uns über fdisk -l an, welche Partitionen sich auf der Festplatte befinden.
Disk /dev/sdd: 250.1 GB, 250059350016 bytes
255 Köpfe, 63 Sektoren/Spur, 30401 Zylinder, zusammen 488397168 Sektoren
Einheiten = Sektoren von 1 Ã 512 = 512 Bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Festplattenidentifikation: 0xeaefeaef
Gerät boot. Anfang Ende Blöcke Id System
/dev/sdd1 * 63 40965749 20482843+ 7 HPFS/NTFS/exFAT
/dev/sdd2 40965750 488375999 223705125 f W95 Erw. (LBA)
/dev/sdd5 40965813 283595444 121314816 7 HPFS/NTFS/exFAT
/dev/sdd6 283595508 488375999 102390246 7 HPFS/NTFS/exFAT
Aber vorerst fangen wir mit der Sicherung der Partitionen an, um zu vermeiden, dass bei einem direkten Datenrestore noch mehr zerstört wird. Auf diese Sicherung können wir später direkt zugreifen und beanspruchen damit die original Festplatte nicht mehr.
Das Programm ddrescue liest erst alle fehlerfreien Sektoren aus und überspringt die fehlerhaften. Diese fehlerhaften Sektoren werden in einer Logdatei, falls angegeben, gespeichert und nach dem ersten Durchlauf erneut eingelesen. Dies kann bei einer Defekten Festplatte einen größeren Zeitraum in Anspruch nehmen. Bei einer Rücksicherung habe ich den Vorgang nach etwa 24 Std. abgebrochen und hatte somit einen Großteil der Daten gesichert.
Um ein Restore zu erzeugen führe ich den Befehl wie folgt aus:
root@system:~# # Wechsel in ein Verzeichnis welches
root@system:~# # groß genug für die zu sichernde
root@system:~# # Partition ist
root@system:~# cd /mnt/backup
root@system:~# ddrescue /dev/sdd1 sdd1.dd rescued.log
Press Ctrl-C to interrupt
rescued: 1688 MB, errsize: 0 B, current rate: 6684 kB/s
ipos: 1688 MB, errors: 0, average rate: 9023 kB/s
opos: 1688 MB, time from last successful read: 0 s
Finished
Danach kann das Backup als Loop-Device normal geöffnet werden, ohne auf die defekte Festplatte zuzugreifen:
root@system:~# mkdir /mnt/sdd1
root@system:~# mount -o loop /mnt/backup/sdd1.dd /mnt/sdd1
root@system:~# cd /mnt/sdd1
root@system:/mnt/sdd1# ls
boot.ini MSDOS.SYS CONFIG.SYS
WINDOWS Dokumente und Einstellungen pagefile.sys
...
root@system:/mnt/sdd1#
Aus diesem Verzeichnis können nun alle Daten mit den Standard Linux-Tools ausgelesen und gesichert werden.
Sollte es bei dem oben genannten ddrescue Befehl zu Problemen kommen, können die Parameter noch angepasst werden. Hier ein Beispiel zum wiederherstellen von cgsecurity.org:
#Erfasse zuerst die meisten fehlerfreien Bereiche auf die Schnelle:
ddrescue -B -n /dev/old_disk /dev/new_disk rescued.log
#Versuche dann soviel wie möglich von den heiklen Bereichen wiederherzustellen:
ddrescue -B -r 1 /dev/old_disk /dev/new_disk rescued.log
http://www.cgsecurity.org/wiki/Besch%C3%A4digte_Festplatte
Keine Kommentare:
Kommentar veröffentlichen