Skip to main content

Vorgehen einer Datenrettung

Hinweis: Die hier aufgelisteten Tools und Befehle wurden ausschließlich unter Linux getestet.

Vorbereitungen

1. Mit ddrescue ein Abbild des kompletten Datenträgers erstellen

Als Faustregel gilt: Ein komplettes Image des Datenträgers anfertigen, damit wir damit rumspielen können, ohne noch mehr kaputt zu machen.

ddrescue -d -r 3 /dev/sda1 image_file.img ddrescue.log

-d = Direct I/O (Kernel cache umgehen - kein Abbruch bei fehlerhaftem Lesevorgang)
-r 3 = Bad blocks 3 mal versuchen zu lesen
Achtung: Bei einem versagendem Laufwerk empfiehlt es sich, diese Option beim ersten Mal weg zu lassen, um keine Zeit mit der Suche nach fehlerhaften Sektoren zu verschwenden und das Risiko eines Totalausfalls zu minimieren. Die Logfile kann jederzeit verwendet werden, um Daten von fehlerhafte Sektoren zu kopieren, auch nachdem bereits ein Image vom ersten Durchlauf angefertigt wurde.
ddrescue.log = Logfile - erlaubt das fortsetzen und überprüfen fehlerhafter Sektoren (sollte stets angeben werden)

2. Image mit SquashFS komprimieren, um bessere Handhabung zu ermöglichen

SquashFS ermöglicht das direkte mounten eines komprimierten Images ohne dies vorher dekomprimieren zu müssen. Mit dem SquashFS Image versuchen wir die Datenrettung. Da SquashFS nur Read-Only ist, kann kein Schaden am Image entstehen, jedoch können dadurch auch keine Reparaturen am Dateisystem selbst durchgeführt werden.

mksquashfs image_file.img image_file.squash.img -comp zstd

-comp zstd = Als Kompressionsalgorithmus Zstd nutzen

Falls eine Image Datei in einem bereits anderen komprimierten Format vorliegt, kann dies z.B. wie folgt umgewandelt werden:

7z x image_file.img.7z -so | mksquashfs empty-dir image_file.squash.img -comp zstd -p 'image_file.img f 644 0 0 cat'

Leerer Ordner "empty-dir" muss vorhanden sein (kann danach gelöscht werden).
Mksquashfs unterstützt Stdin nicht direkt, daher wird per "-p" eine Dummy-File erzeugt und mittels cat der Stdin übergeben.

Nach erfolgreicher Anfertigung des SquashFS Images kann die originale Image-Datei gelöscht werden. Sollte diese wieder benötigt werden, kann sie mit folgendem Befehl wiederhergestellt/entpackt werden.

unsquashfs image_file.squash.img

Datenrettungsmethoden

Je nach Situation eignet sich die eine Methode besser für die Datenrettung als die andere. Oder eine Kombination mehrerer Methoden...

Image mounten und Dateien einfach kopieren

Hilfreich bei der Datenrettung eines versagenden Datenträgers oder Dateisystems.

mount -r image_file.squash.img /mnt/squash
mount -r /mnt/squash/image_file.img /mnt/image
rsync -av --progress /mnt/image/ /destination_dir

Simpler File System Check

Das Dateisystem darf hierfür nicht Read-Only geschützt sein. Ein File System Check direkt in einem SquashFS ist somit nicht möglich (da SquashFS nur Read-Only ist). Daher muss hierfür das originale Image genutzt werden.

fsck.<file-system>, also z.B. fsck.ntfs.
Die genaue Nutzung von fsck sollte im Vorfeld geprüft werden. Sie unterscheidet sich je nach Dateisystem.

Beispiel:

fsck.fat -a -w -v /mnt/squash/image_file.img

Für NTFS nutze stattdessen ntfsfix.

Verloren gegangene Daten finden und wiederherstellen

As erstes das SquashFS-Image mounten.

mount -r image_file.squash.img /mnt/squash

Dies dekomprimiert das darunterliegende Image "on-the-fly".

TestDisk

Erste Wahl in solchen Fällen. Empfohlen für die Wiederherstellung ganzer Dateistrukturen (ggf. inklusive Verzeichnisse und Dateinamen), sowie Reparatur eines beschädigten Dateisystems.
Das Tool benötigt keine besonderen Parameter. Alle Funktionen werden über ein praktisches Terminal UI Schritt-für-Schritt angeboten.
Es arbeitet sowohl auf der Bit-Ebene des Datenträgers (bzw. Images) als auch mit den typischen Eigenschaften des angegebenen Dateisystems, um die besten Chancen einer erfolgreichen und vollständigen Datenrettung zu haben.

testdisk /mnt/squash/image_file.img

PhotoRec

Teil von TestDisk. Empfohlen für die Wiederherstellung gelöschter oder verloren gegangener Dateien (besonders Bilder und Videos), wobei zugleich die Integrität dieser Daten sichergestellt werden kann.
Das Tool benötigt keine besonderen Parameter. Alle Funktionen werden über ein praktisches Terminal UI Schritt-für-Schritt angeboten.
Es arbeitet auf der Bit-Ebene des Datenträgers (bzw. Images) und ist somit unabhängig vom verwendeten Dateisystem. Verzeichnisse sowie Dateinamen können nicht wiederhergestellt werden.

photorec /mnt/squash/image_file.img

Foremost

Sucht nach bekannten Datei-Mustern.
Findet in der Regel alles, was irgendwie nach einer Datei aussieht und somit auch Daten aus "längst vergangener Zeit". Ein großer Teil der von Foremost wiederhergestellten Daten sind dadurch jedoch auch beschädigt oder unbrauchbar. Verzeichnisse sowie Dateinamen können nicht wiederhergestellt werden.
Es arbeitet auf der Bit-Ebene des Datenträgers (bzw. Images) und ist somit unabhängig vom verwendeten Dateisystem.

foremost -t all -i /mnt/squash/image_file.img -o recovery_dir