Ext2 Undeletion Howto: http://www.linuxfaq.com/LDP/HOWTO/mini/Ext2fs-Undeletion.html

Gibt es ein Undelete unter Linux? Kann ich gelöschte Dateien wiederherstellen?

Kurze Antwort: Jein.

Im mc (MidnightCommander) gibt es, wenn es vom System unterstützt wird, im Command Menü eine Option 'Undelete files (ext2fs only)'. Wenn es das bei Dir nicht gibt, hast du entweder eine zu alte mc Version oder ein Linux, welches das (noch) nicht kann bzw. nicht einkompiliert hat. Dazu sollte man sich die Hilfe durchlesen und dann kann man Dateien -- vielleicht -- wiederherstellen.

Es gibt noch andere Möglichkeiten. Manche basieren darauf, /bin/rm zu ersetzen (durch ein Skript, welches die Datei nicht löscht, sondern im Hintergrund komprimiert, in ein verstecktes Verzeichnis verschiebt und dann prüft, ob dieses Verzeichnis zu voll geworden ist und dann von hinten anfängt zu löschen)

Tip: Wenn's gelöscht ist, ist es eigentlich eh zu spät, aber präventiv könnte man den "Papierkorb für Linux" installieren: http://m-arriaga.net/software/libtrash/. Im Gegensatz zu seinem Windows- bzw. KDE- oder Gnome-Pendant fängt er nicht nur die über die GUI gelöschten, sondern auch die, die in der Kommandozeile und von Programmen/Scripts gelöschten Dateien ab. Libtrash basiert darauf, den Systemaufruf unlink() abzufangen (der für das Entfernen des Dateieintrags aus der Verzeichnisliste zuständig ist) und umzulenken.


Fazit: UNIX reicht einem die Pistole, lädt vor, lädt durch, entsichert und hilft beim Zielen, man muß nur noch abdrücken. Aber wenn man dann in seinen Fuß schießt, ist das ein eigenes Problem und nicht das von UNIX. :)



Also Vorsicht! Das Programm implementiert übrigens das Ext2fs Undeletion HOWTO, das weiter unten erwähnt ist. Viel Glück!


Wie man (mit etwas Glück) gelöschte Dateien wieder zurück bekommt

Ich hatte aus Versehen den folgenden Befehl eingegeben:

find -exec rm {} \;

(Ich hatte ihn mit der Maus aus einem anderen Fenster rübergeholt und wollte das 'rm' eigentlich noch durch ein 'grep' ersetzen... aber ich muss wohl den Zeilenvorschub am Ende der Zeile mit erwischt haben.) Plupp! Alle Dateien im aktuellen Verzeichnis, sowie die in den Unterverzeichnissen, waren in die ewigen Jagdgründe entrückt. Und in Unix gibt es kein 'undelete'.

Zum Glück war Dirk da, und mit ihm habe ich folgendes gemacht. Die gelöschten Dateien hatten alle ziemlich zu Beginn den String Hubert fragen enthalten, und waren sicher nicht länger als 100 Zeilen gewesen. Das war ja immerhin etwas.

$ mount
/dev/hdb1 on / type ext2 (rw)
proc on /proc type proc (rw)
/dev/hdb5 on /usr type ext2 (rw)
/dev/hdb6 on /var type ext2 (rw)
/dev/hdb4 on /home type ext2 (rw)
/dev/hda1 on /dos type vfat (rw,uid=35,gid=35,umask=002,quiet)
/dev/hdc on /cdrom type iso9660 (ro,noexec,nosuid,nodev)

Meine Dateien waren irgendwo im Verzeichnis /home gewesen. Also befanden sie sich physikalisch unter /dev/hdb4.

Als root anmelden.

grep -B 10 -A 100 'Hubert fragen' /dev/hdb4 > /tmp/hubert.txt

grep sucht also jetzt in der 'Datei' /dev/hdb4 nach der Zeichenkette 'Hubert fragen' und schreibt dann jeweils die 10 Zeilen davor und die 100 Zeilen danach zum stdout, der nach /tmp/hubert.txt umgeleitet wird. Anschließend brauchte ich die Datei /tmp/hubert bloß noch mit emacs zu bearbeiten und die Erbsen von der Spreu zu trennen. Das war zwar etwas Handarbeit, aber ich war froh, meine Dateien wieder zu haben.


Achtet drauf dass ihr die Datei in das ihr das Zeug umleitet AUF EINER ANDEREN PARTITION LIEGT!

Ansonsten überschreibt ihr euch evtl. andere Daten die ihr wiederherstellen wollt

(Gilt eigentlich für jede Art der Datenwiederherstellung!)


Ext2 Undeletion Howto: http://www.linuxfaq.com/LDP/HOWTO/mini/Ext2fs-Undeletion.html


UnDelete (zuletzt geändert am 2010-02-15 23:50:35 durch p4FDBAFCB)