Die zwei Programme unterscheiden sich lediglich in ihren Parametern und ihrer Vorgehensweise: Das neuere ddrescue liest den Datenträger in recht großen Schritten aus, wobei es fehlerhafte Bereiche zunächst überspringt. Erst wenn es den kompletten Datenträger kopiert hat, sieht es sich die fehlerhaften Blöcke noch einmal an und versucht aus ihnen so viele Daten wie möglich auszulesen. Durch sein Gedächtnis können Sie den Lesevorgang zudem zwischendrin abbrechen und dann zu einem späteren Zeitpunkt fortsetzen. Das ist insbesondere bei großen Festplatten nützlich, bei denen das Auslesen mehrere Stunden dauern kann. Dagegen beißt dd_rescue sich erst einmal an den nicht mehr zu lesenden Stellen fest. Sofern Sie die Wahl haben, sollten Sie also GNU Ddrescue vorziehen.
Nullnummer
Beide Werkzeuge ersetzen nicht mehr lesbare Stellen in der Image-Datei durch Nullen. Damit lässt sich dann zwar nicht mehr die komplette Diplomarbeit retten, aber vielleicht zumindest doch ein Teil. Da das von ddrescue erzeugte Image extrem groß werden kann, sollten Sie es auf einer Partition speichern, die mit solchen Brocken umgehen kann. Nicht geeignet sind folglich externe USB-Festplatten mit FAT32-Dateisystem.
Um mit ddrescue den Inhalt der Partition /dev/sde1 in die Datei /home/tim/kopie.img zu kopieren, rufen Sie es wie folgt auf:
# ddrescue /dev/sde1 /home/tim/kopie.img logfile
In der Datei logfile speichert ddrescue ein paar Informationen. Nur mit ihnen lässt sich der Lesevorgang via [Strg]+[C] zwischendurch abbrechen und dann später mit dem obigen Befehl wieder fortsetzen (Abbildung 4). Mit ddrescue können Sie selbstverständlich auch den kompletten Datenträger retten:
# ddrescue /dev/sde /home/tim/kopie.img logfile
Das ist vor allem sinnvoll, wenn blkid keine Partitionen erkannt hat oder Sie wissen, dass die Partitionstabelle defekt ist. Sofern möglich, sollten Sie vom erstellten Image eine Kopie anlegen. Schlägt der Rettungsversuch gleich fehl, müssen Sie dann den fehlerhaften Datenträger nicht erneut zeitraubend einlesen.
Lässt sich lediglich eine einzelne Datei nicht mehr lesen, können Sie mit dem Kommando ddrescue datei.txt /media/rescue/datei.txt zumindest deren noch lesbaren Teile retten.
Hängepartie
Wenn Sie mit ddrescue lediglich eine Partition gesichert haben, können Sie versuchen, diese anschließend zu mounten. Der folgende Befehl hängt sie sicherheitshalber schreibgeschützt in das Verzeichnis /mnt ein:
# mount -o loop,ro /home/tim/kopie.img /mnt
Sichern Sie jetzt aus dem Verzeichnis /mnt alle wichtigen Dateien. Im Fall der Speicherkarte aus dem Fotoapparat tauchten so unter /mnt bereits ein paar Fotos wieder auf. Wie eine kurze Rückfrage bei der Fotografin ergab, fehlten aber dummerweise immer noch über die Hälfte der Aufnahmen. Die nun aufzufahrenden Geschütze funktionieren nur auf ausgehängten Medien, es steht also nun zunächst ein umount /mnt an.
Der Checker
Sofern auf der fraglichen Partition ein Ext-Dateisystem zum Einsatz kommt, können Sie nun den Befehl fsck darauf ansetzen:
# fsck.ext3 -p kopie.img
Der Parameter -p weist fsck an, Fehler direkt zu korrigieren. Bei einem Ext4-Dateisystem nutzen Sie anstelle von fsck.ext3 den Kollegen fsck.ext4. Analog verarztet fsck.vfat Partitionen mit FAT32-Dateisystem, wie es immer noch auf USB-Sticks und SD-Karten zum Einsatz kommt. Sobald fsck seine Arbeit beendet hat, hängen Sie das Image wie oben gezeigt ein und lesen die Dateien aus.
Für andere Dateisysteme gibt es übrigens analoge Reparaturwerkzeuge. Bei NTFS-Dateisystemen hilft etwa ntfsfix weiter, das zu den ntfsprogs gehört, die wiederum Teil der NTFS-Treiber sind. Auf den meisten Distributionen ist das Werkzeug daher standardmäßig installiert, sodass Sie das Kommando ntfsfix kopie.img direkt auf das Image ansetzen können.
Plattenküche
Wenn Sie mit ddrescue nicht nur eine Partition, sondern gleich den ganzen Datenträger gesichert haben, können Sie mit fdisk -l kopie.img überprüfen, ob die Partitionstabelle noch vorhanden und korrekt ist. Sie erhalten dann eine Liste mit allen Partitionen. Die Nummern hinter den Namen in der ersten Spalte entsprechen den jeweiligen Zahlen der Gerätedateien.
Daten retten und wiederherstellen (Seite 3)
Bei einer Platte mit der neueren GPT-Partitionstabelle verwenden Sie gdisk, das Sie unter Umständen erst noch über den Paketmanager nachinstallieren müssen. Unter Ubuntu steckt es im Paket gdisk. Eine Aufstellung der Partitionen im Image liefert das Kommando gdisk -l kopie.img.
Fundstücke
Wenn Sie eine oder mehrere Partitionen vermissen, setzen Sie Testdisk auf das Image an. Dieses Programm versucht Partitionen aufzuspüren und wiederherzustellen. Testdisk müssen Sie über den Paketmanager nachinstallieren, unter Ubuntu steckt es im Paket testdisk. Anschließend nennen Sie dem Werkzeug lediglich den Dateinamen der Image-Datei, rufen also testdisk kopie.img auf.
Sie landen jetzt in der textbasierten Benutzeroberfläche aus Abbildung 5. Im oberen Teil präsentiert Testdisk noch einmal die Image-Datei. Stellen Sie sicher, dass unten der Punkt [Proceed] hervorgehoben ist, und rufen Sie ihn mit der Eingabetaste auf. Jetzt müssen Sie testdisk mitteilen, ob die Festplatte bereits die moderne GPT nutzt. In diesem Fall wählen Sie den Punkt [EFI GPT], andernfalls seinen Kollegen [Intel]. Abschließend starten Sie die [Analyse].
Testdisk fasst jetzt im oberen Teil die aktuelle Situation zusammen. Fehlende oder doppelt aufgeführte Partitionen weisen auf einen Defekt hin. Starten Sie in diesem Fall [Quick Search]. Testdisk geht jetzt auf die Suche und listet anschließend alle gefundenen Partitionen auf (Abbildung 6). Via [P] sehen Sie sich die Dateien und Verzeichnisse der entsprechenden Partition an, die Navigation erfolgt mit den Pfeiltasten und Eingabe. Mit [Q] geht es wieder zurück zur Aufstellung aller Partitionen.
Hat das Werkzeug bereits alle Partitionen aufgespürt, aktivieren Sie [Write]. Vermissen Sie noch eine oder mehrere Partitionen, wählen Sie [Deeper Search]. Testdisk führt dann eine tiefergehende Analyse durch, die etwas länger dauert. Sie fördert unter Umständen uralte Partitionen zutage, die sich sogar teilweise überlappen können. Steuern Sie in der Liste die bislang vermisste Partition an, im Zweifelsfall müssen Sie raten.
Über die Pfeiltasten können Sie aus der Partition eine primäre oder logische machen. Diese Partition stellt dann Testdisk gleich wieder her. Alle Partitionen mit einem D in der ersten Spalte ignoriert Testdisk, sie bleiben folglich gelöscht. Wenn Sie zufrieden sind, drücken Sie die Eingabetaste und lassen die neue Partitionstabelle mit [Write] speichern.
In jedem Fall bestätigen Sie die Rückfrage mit [Y] und aktivieren Ok. Über [Quit] springen Sie immer wieder ein Menü zurück, bis sich Testdisk schließlich beendet.
Auswahl
Um die wiederhergestellten Partitionen einzuhängen, installieren Sie über den Paketmanager das Programm kpartx (bei Ubuntu im gleichnamigen Paket) und setzen es dann auf die Image-Datei an:
# kpartx -a -v kopie.img
Das Werkzeug erstellt jetzt für jede Partition im Image eine eigene Gerätedatei unterhalb von /dev/mapper. Sie müssen in den angezeigten Informationen nur die Gerätedatei für Ihre Partition ablesen und diese dann per mount einhängen (Abbildung 7):
# mount -o loop,ro /dev/mapper/loop0p1 /mnt
Der Befehl aus diesem Beispiel hängt die erste Partition (loop0p1) aus dem Image in das Unterverzeichnis /mnt ein.
Fehlen – wie im Fall der Speicherkarte mit den Fotos – immer noch Dateien, hilft das Werkzeug Photorec weiter. Es versucht gelöschte Dateien wiederherzustellen, indem es auf dem kompletten Datenträger nach Lebenszeichen beziehungsweise typischen Erkennungsmerkmalen von Dateien sucht. Wie der Name andeutet, wurde es einst zur Wiederherstellung von gelöschten Fotos erfunden, kann aber mittlerweile auch viele andere Dateien zurückholen.
Photorec steckt in der Regel im Paket testdisk. Sofern Sie es noch nicht installiert haben, spielen Sie es via Paketmanager ein. Anschließend übergeben Sie dem Tool nur noch mit photorec kopie.img die Image-Datei. Photorec nennt Ihnen jetzt im oberen Teil des Bildschirms noch einmal das Image, das Sie mit der Eingabetaste bestätigen. Anschließend erhalten Sie eine Auswahl aller gefundenen Partitionen. (Übernommen und angepasst von Linux Community)