Login
Newsletter
Fr, 29. September 2000, 15:10

Gelöschte Dateien wieder herstellen

Das kann einem trotz vielfacher Backups passieren: Ein falscher Befehl, und plötzlich ist eine wichtige Datei weg. Statt die Arbeit nochmal zu machen, möchte man lieber die Datei wieder herstellen. Doch geht das überhaupt?

Es geht. Solange die Datei noch nicht von anderen Daten überschrieben worden ist, kann sie mit etwas Glück vollständig wieder hergestellt werden. Je mehr freier Platz auf der betroffenen Partition vorhanden ist, desto größer sind die Chancen, daß es klappt.

Dazu benötigt man das Programm recover. Man sollte es bereits installiert haben, bevor der Schadensfall eintritt - also jetzt gleich ;-) Ein simples make; make install erledigt das.

Zunächst sollte man verhindern, daß die gelöschte Datei von anderen Daten überschrieben werden kann. Dazu fährt man das System in Runlevel 1 herunter:

init 1

Wer das Risiko liebt, kann auch darauf verzichten ;-) Anschließend killt man noch alle Daemonen wie syslod und klogd, um die Risiken zu minimieren. Nach der Rettungsaktion kann man wieder in den gewohnten Runlevel hochfahren.

Vor dem Start von recover sollte man die kurze Manpage durchlesen. In der Regel muß man recover als root starten, da nur root, aber niemals ein normaler Benutzer, auf die Festplatten-Devices Zugriff haben sollte. Es wäre auch ein großer Fehler, recover als suid root zu installieren, da dann jeder Benutzer die gelöschten Dateien von anderen Benutzern lesen könnte.

Nach dem Aufruf von recover will das Programm zuerst die Partition wissen, auf der die gelöschte Datei liegt, und bietet eine Auswahl der vorhandenen Partitionen an. Das Programm funktioniert nur mit ext2-Partitionen; lag die Datei auf einer ReiserFS-Partition, ist nichts mehr zu retten.

Nachdem recover die Partition durchforstet hat, was bei einer großen Partition einige Minuten dauern kann, fragt es nach einigen Dingen, um die Auswahl einzugrenzen. Hier kann man, wenn man nichts Genaues weiß, recht allgemein antworten, es funktioniert trotzdem ;-)

Kurz darauf meldet sich recover mit »n inodes found« und will ein Verzeichnis wissen, in dem sie abgelegt werden sollen. Hier sollte man auf keinen Fall das aktuelle Verzeichnis angeben. Das führt dazu, daß das Programm in einer ewigen Schleife steckenbleibt. Man sollte auch kein Verzeichnis wählen, das auf der gleichen Partition wie die gelöschte Datei liegt, sonst könnte das Resultat der Arbeit im letzten Moment noch zunichte gemacht werden. Am besten legt man ein leeres Verzeichnis auf einer anderen Partition an, in dem nur root Schreibrechte hat.

Dann kann man noch einen Text eingeben, der in der gelöschten Datei vorkommen muß. Je besser man die Dateiauswahl hier oder beiden vorhergehenden Fragen eingrenzen kann, desto schneller und einfacher geht das Wiederherstellen.

In dem angegebenen Verzeichnis werden sind nun Dateien vorhanden, deren Name mit »dump« beginnt. Nun muß man diese nur noch der Reihe nach durchsehen, die richtige Datei umbenennen/kopieren und den Rest wieder löschen. Es gibt keine Garantie, daß die wieder hergestellte Datei unbeschädigt ist, aber die Wahrscheinlichkeit ist hoch.

Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten