7.2. Ich habe eine wichtige Datei gelöscht, wie kann ich sie wiederherstellen?

Keywords: undelete

7.2.1

Eine Wiederherstellung von gelöschten Dateien ist unter Linux grunsätzlich nicht vorgesehen. In manchen Fällen ist es jedoch - abhängig vom Typ des Dateisystems und dem Benutzungsgrad seit dem Löschvorgang - trotzdem möglich, die Datei wiederherzustellen.

Auf das betroffene Dateisystem sollte nach Möglichkeit auf keinen Fall mehr schreibend zugegriffen werden. Aus diesem Grund sollte das Dateisystem sofort ungemountet werden. Als Beispiel dient das Dateisystem auf dem Gerät /dev/hda6:

umount /dev/hda6

Falls das nicht klappt, kann versucht werden, das Dateisystem read-only zu mounten:

mount -o remount,ro /dev/hda6

Wenn das auch nicht klappt, sollte die Maschine sofort runtergefahren und die Wiederherstellung vom Rettungssystem aus fortgesetzt werden.

Um weiteren Schaden zu verhindern, ist es empfehlenswert, nicht auf dem Dateisystem selbst, sondern nur auf einer Kopie davon zu arbeiten. Wenn das System Dateien grösser als 2 GB unterstützt (oder das Dateisystem kleiner als 2 GB ist), so kann das Dateisystem auch in eine Datei gesichert werden:

dd bs=4k if=/dev/hda6 of=/mnt/extra/kopie_hda6

Die weitere Vorgangsweise hängt nun von Dateisystemtyp ab.

ReiserFS

Für die Datenwiederherstellung auf ReiserFS-Dateisystemen wird das Prüfprogramm für das Dateisystem angewiesen, den kompletten Verzeichnisbaum neu aufzubauen und dabei die ganze Partition zu berücksichtigen (also auch Bereiche die als unbelegt markiert sind):

reiserfsck --rebuild-tree --scan-whole-partition \
    /mnt/extra/kopie_hda6

Warnung: Dieser Befehl sollte auf keinen Fall angewendet werden, wenn keine Kopie des Volumes existiert, es können "Nebenwirkungen" auftreten.

Die Kopie der Partition kann nun über das Loopback-Device gemountet werden, um den Erfolg festzustellen:

mount -o loop /mnt/extra/kopie_hda6 /mnt/hda6

Reiserfsck legt gefundene Dateien in einem Verzeichnis namens lost+found ab. Zu beachten ist allerdings, daß der Dateiname nicht wiederhergestellt werden kann - die Dateien bekommen Namen wie 2_8 oder 2,124. Wenn eines der gelöschten Objekte ein Verzeichnis war, sollten es aber möglich sein, daß das Verzeichnis als ganzes wiederhergestellt wird, die Dateien im Verzeichnis behalten dann den Namen.

(adalbert)