2011916

Gelöschte Dateien unter Linux retten

15.02.2015 | 16:17 Uhr |

Oft genügt ein unbedachtes Kommando, und schon sind wichtige Dokumente oder Urlaubserinnerungen gelöscht. Und wie es der Zufall dann so will, ist kein Backup greifbar. Lesen Sie in diesem Artikel, wie Sie Ihre gelöschten Daten retten können.

Wenn Sie eine Datei in einem Terminal gelöscht oder bereits den Papierkorb Ihres Desktops geleert haben, hilft im Normalfall nur eine Sicherungskopie der gelöschten Datei. Die Möglichkeiten, die Dateien wiederherzustellen, sind begrenzt, wobei auch der Faktor Zeit eine Rolle spielt: Grundsätzlich gilt, dass die Chancen auf Wiederherstellung um so größer sind, je früher Sie nach dem Löschen Ihren Fehler bemerken.

Ist die Datei noch geöffnet?

Es ist wichtig, dass Sie nicht in Panik verfallen, sobald Sie Ihren Irrtum bemerken. Im idealen Fall haben Sie das Dokument gerade gelöscht, obwohl Sie es noch mit einer anderen Anwendung bearbeitet haben oder sie von einem Prozess geöffnet wurde. Dann können Sie das Dokument recht einfach wiederherstellen. Unter Linux gibt es das mächtige Kommando lsof , was für „Liste der geöffneten Dateien“ steht. Es kann sein, dass die gelöschte Datei noch geöffnet ist. Rufen Sie also diese Liste auf, und leiten Sie die Ausgabe an das Kommando grep um. Hier suchen Sie dann nach einem Teil des Dateinamens:

lsof | grep beispiel

Wenn Sie im Terminal das Kommando lsof um den Parameter „-u“ und den Benutzernamen erweitern, erhalten Sie alle Dateien, die von diesem Nutzer geöffnet sind. Als Rückmeldung erhalten Sie jetzt einen Hinweis auf die Datei, etwa in dieser Form:

less 7246 sla 4r REG 3,65 114383 1276722 /home/sla/beispiel (deleted)

Dieser Eintrag zeigt Ihnen auch bereits an, dass die Datei eigentlich gelöscht wurde. Damit besitzen Sie jetzt alle Informationen, um eine Rettungsaktion zu starten. Denn die Datei liegt noch im Verzeichnis „/proc“, und zwar unter der Prozessnummer 7246. Wichtig ist das Attribut direkt hinter dem Namen des Benutzers (hier im Beispiel „sla“). Mit dem Kommando cp

cp /proc/7246/fd/4 beispiel.saved

machen Sie jetzt eine Kopie Ihrer gelöschten Datei.

Dieser Artikel stammt aus der LinuxWelt 6/2014

10 Jahrgänge auf DVD, im Heft: Linux retten & reparieren, Server selbst gebaut - das und mehr erwartet Sie in der neuen LinuxtWelt 6/2014 !

FAT-Dateisystem? So holen Sie Dateien wieder zurück

Sie haben auf einem Datenträger wie einem USB-Stick oder einer externen Festplatte, die Sie auch unter Windows nutzen können, aus Versehen Daten gelöscht? Dafür bietet Ihnen Linux Spezialisten, mit denen Sie versuchen können, wieder an die gelöschten Dokumente zu gelangen. Ein solches Programm ist Photorec, das Sie kostenlos bekommen. In einem Terminal installieren Sie das Paket „testdisk“, das Photorec enthält:

sudo apt-get install testdisk

Nach erfolgreicher Installation starten Sie Photorec ebenfalls in einem Terminal. Das Programm zeigt Ihnen in Form einer Liste die Datenträger an, die es untersuchen kann. Wählen Sie dort die betroffene Platte oder Speicherkarte aus. Sehen Sie in der Liste nicht alle Datenträger, machen Sie sich durch Auswahl des gleichlautenden Photorec-Menübefehls zum „Root“. Anschließend legen Sie nur noch fest, wo die Software die gefundenen Dateien oder Dateifragmente abspeichern soll. Etwas Geduld brauchen Sie allerdings schon, bis alle Scans abgeschlossen sind. Die wiederhergestellten Daten werden säuberlich in verschiedene Verzeichnisse des Zielmediums abgelegt. Photorec stellt indes nur die Inhalte der Dokumente wieder her, keine Dateinamen. Die wiederhergestellten Dateien können Sie gleich einsehen, auch wenn die Rücksicherung noch gar nicht abgeschlossen sein sollte.

Die richtige Backup-Strategie für Linux

Photorec für FAT(32)-Dateisysteme: Das Tool ist sehr einfach in der Bedienung und stellt auf FAT-Dateisystemen gelöschte Dateien zuverlässig wieder her.
Vergrößern Photorec für FAT(32)-Dateisysteme: Das Tool ist sehr einfach in der Bedienung und stellt auf FAT-Dateisystemen gelöschte Dateien zuverlässig wieder her.

Problematisch: Datenrettung bei Ext3 und Ext4

Im Fall der aktuellen Linux-Dateisysteme Ext3 und Ext4 ist die Rettung komplizierter. Das hängt mit der Tatsache zusammen, dass diese Dateisysteme auf die optimale Ausnutzung von Speicherplatz getrimmt wurden. Der durch das Löschen freigewordene Speicherplatz wird deshalb sehr schnell wieder beschrieben. Wenn Sie den Irrtum bemerkt haben, müssen Sie sofort den schreibenden Zugriff auf den Datenträger unterbinden, damit das gelöschte Objekt nicht durch eine andere Anwendung überschrieben wird. Den schreibgeschützten Zugriff können Sie im Terminal mit einem Einzeiler festlegen:

mount -o remount,ro /dev/sda1 oder mount -o remount,ro /media.

Sie müssen den Befehl an Ihre Situation anpassen, also den Device-Namen („sda1“) oder den Mountpunkt („media“) anpassen. Der Versuch, Daten zu retten, birgt auch immer das Risiko in sich, dass Daten verlorengehen. Deswegen kann es eine nützliche Vorsichtsmaßnahme sein, vom Datenträger, um den es geht, eine vollständige Kopie anzulegen und nur mit dieser Kopie zu arbeiten. Das setzt aber natürlich voraus, dass Sie einen weiteren Datenträger an Ihr System anschließen können, der groß genug ist, auch die Partition aufzunehmen, an der Sie arbeiten wollen. Eine solche Kopie legen Sie zum Beispiel so an:

dd if/dev/sda of=/Verzeichnis/Datei.

Ein Programm, mit dessen Hilfe Sie dann Dateien in einem Ext-Dateisystem wiederherstellen können, ist „extundelete“. Das Paket hat es zum Glück inzwischen in viele offizielle Paketquellen der Distributionen geschafft und muss nicht erst umständlich zusammenkompiliert werden.

lsof-Analyse: Wenn das Dokument noch im Stapel der geöffneten Dateien zu finden ist, ist die Rettung relativ einfach. Dazu brauchen Sie lediglich einige Angaben.
Vergrößern lsof-Analyse: Wenn das Dokument noch im Stapel der geöffneten Dateien zu finden ist, ist die Rettung relativ einfach. Dazu brauchen Sie lediglich einige Angaben.

Das Werkzeug ist so konfiguriert, dass es nach der Übergabe einer Partition oder Datei, die untersucht wird, alle gefundenen Dateien in das aktuelle Verzeichnis schreibt. Sie können aber auch selbst einen Pfad zu einem Verzeichnis angeben, in das die gesicherten Daten gespeichert werden sollen. Der Aufruf des Tools sieht dann beispielsweise so aus:

extundelete --output-dir '/dev/sdb1/rettung' --restore-all /dev/sda2

In diesem Fall wird die Software versuchen, alle Dateien wiederherzustellen, die gefunden werden können („—restore-all“). In den meisten Fällen werden Sie allerdings wissen, welches Dokument Sie aus Versehen gelöscht haben. Deswegen dürfen Sie der Software auch ausdrücklich einen Dateinamen übergeben:

extundelete --restore-file 'steuerakte.txt' /dev/sdb1

Für den Sonderfall gelöschter Fotodateien auf einer Speicherkarte gibt es für Linux übrigens eine Spezialanwendung, die ebenfalls unkompliziert einzusetzen ist. Sie finden das Paket „recoverjpeg“ mit Ihrem Paketmanager oder dem Software-Center von Ubuntu oder Linux Mint.

Dem Programm wird als Parameter lediglich noch der Device-Name der Speicherkarte übergeben. Es sucht nun nach Fotodateien und legt diese im aktuellen Verzeichnis ab.

Es gibt also nach dem Löschen einer Datei auch unter Linux und dessen Dateisystemen Ext3 und Ext4 durchaus Hoffnung, wieder an die verlorenen Inhalte zu gelangen, zumindest in Teilen. Wunder dürfen Sie von den vorgestellten Programmen allerdings keine erwarten. Regelmäßige und vollständige Backups bleiben nach wie vor die besten Rückversicherungen gegen Datenverluste.

0 Kommentare zu diesem Artikel
2011916