Daten-Retter?

hallo,
kennt jemand zufällig ein programm(unter linux) womit man gelöschte daten(noch nicht physikalisch weg) wiederbekommt???
ich wäre sehr dankbar für tipps!

Welches Filesystem hast Du denn?

hallo,
kennt jemand zufällig ein programm(unter linux) womit man
gelöschte daten(noch nicht physikalisch weg) wiederbekommt???
ich wäre sehr dankbar für tipps!

datensystem? fat32…

datensystem? fat32…

(vergl. http://sdb.suselinux.hu/de/sdb/html/cg_rmfiles.html)

Sie haben auf einem Linux ext2 Dateisystem versehentlich eine oder mehrere
Dateien gelöscht. Sie haben kein Backup und wollen den Inhalt dieser Datei
wiederherstellen.

Hintergrund

Wie auch unter anderen Betriebssystemen üblich wird auch auf dem Linux ext2
Dateisystem eine Datei dadurch gelöscht', daß entsprechende Verweise in der Folderdatei gelöscht werden. Die eigentlichen Daten der Datei sind nach dem eigentlichen löschen’ zwar zum Überschreiben freigegeben, aber noch auf der
Festplatte lesbar. Erst beim Anlegen weiterer Dateien werden diese nun
freigegebenen Datenblöcke überschrieben.

Zudem existiert auch nach dem Löschen die sog. Inode in der die logische
Verkettung der Blöcke und die ganzen Zugriffsrechte gespeichert sind. Hier wird
hier auch der Zeitpunkt des Löschens (`Deletion time’) festgehalten. Was
wirklich durch das Löschen endgültig verloren gegangen ist ist der Dateiname.

Durch Setzen eines Flags mit Hilfe des Kommandos chattr kann man auf dem ext2
Dateisystem auch ein `sicheres’ Löschen beim Absetzen eines Löschkommandos
bewirken. Hierdurch wird die Datei vom Kernel beim Löschen vollständig mit
Nullen überschrieben. Solchermassen gelöschte Daten sind nur u.U. mit
speziellen Geräten, keinesfalls aber mit der hier beschriebenen Methode
wiederherstellbar.

Eine Warnung vorneweg Mit dem im folgenden beschriebenen Programm debugfs
können Sie sehr systemnahe Zugriffe auf das Dateisystem durchführen. Ohne
genaue Kentniss der Interna des ext2 Dateisystems ist es sehr gefährlich für
Ihre restlichen Daten mit den in der Hilfe bzw. in der Man-Page zu debugfs' beschriebenen Kommandos zu experimentieren’. Falls Sie experimentieren
möchten, so legen Sie sich am besten eine Übungspartition an.

Vorgehen

Führen Sie keine Schreibzugriffe mehr auf das Dateisystem aus auf dem Sie
Dateien wiederherstellen möchten. Insbesondere das Neuanlegen von Dateien kann
fatal für Ihre zu rettenden Daten sein. Falls Sie nur eine Partition `/’
verwenden so fahren Sie den Rechner am besten geordnet herunter und booten mit
einem Rettungssystem. Ansonsten reicht es wenn Sie auch die betroffene(n)
Partition(en) mit dem Kommando umount aushängen. Zur Verwendung von mount und
umount beachten Sie bitte das Handbuchkapitel „Einstieg in Linux“.

Nehmen wir einfach an Sie haben folgende Datei versehentlich gelöscht und
wollen Sie wiederherstellen.

erde:/mnt/Versuch # ls -la Protokoll_2009.txt
-rw-r–r-- 1 cg suse 1050 Dec 29 13:31 Protokoll_2009.txt
erde:/mnt/Versuch # rm Protokoll_2009.txt

Sie umounten die betreffende Partition sofort.

erde:~# umount /mnt

In meinem Beispiel handelt es sich um die Partition /dev/sdc1 die auf den
Mountpoint /mnt gemounted ist. Sie müssen natürlich den Devicenamen in Ihrem
System in den unten aufgeführten Beispielen einsetzen. Geben Sie bitte das
Kommando debugfs devicename ein um den Filesystemdebugger aufzurufen. Dieser
meldet sich nach dem Start mit dem Prompt debugfs: an dem Sie Kommandos zum
direkten Zugriff auf das Dateisystem eingeben können.

erde:/# debugfs /dev/sdc1
debugfs 1.17, 26-Oct-1999 for EXT2 FS 0.5b, 95/08/09
debugfs: lsdel
1 deleted inodes found.
Inode Owner Mode Size Blocks Time deleted
25794 515 100644 1050 2/ 2 Wed Dec 29 13:32:32 1999

Mit dem Kommando lsdel kann man sich also die gelöschten Inodes auflisten
lassen. An den Dateirechten Mode, dem Eigentümer (Hier als numerische User id),
dem Zeitpunkt des Löschens und der ehemaligen Dateigrösse Size können Sie recht
gut die wiederherzustellende Datei auffinden falls Sie mehrere Dateien gelöscht
haben (und beispielsweise nur eine wiederherstellen möchten). Wichtig ist hier
für das folgende dump Kommando vor allem die Inode Nummer, im obigen Beispiel
25794.

Geben Sie folgendes Kommando ein um die oben gelöschte Datei mit den gleichen
Dateirechten als neue Datei `gerettet’ im Verzeichniss /tmp wiederzubeleben.
Beachten Sie bitte, daß Sie die spitzen Klammern mit eingeben!

debugfs: dump -p /tmp/gerettet
debugfs: quit
erde:/# ls -l /tmp/gerettet
-rw-r–r-- 1 cg suse 1050 Dec 29 13:31 /tmp/gerettet

Nach dieser Aktion können Sie das Dateisystem wieder mounten und die Datei aus
dem /tmp Verzeichniss zurückspielen.

Es gibt noch weitere Methoden diese Datei wiederherzustellen, doch diese
Methode hat den Vorteil keine Schreibzugriffe über debugfs oder nach
vollzogener Wiederherstellung einen Dateisystemcheck zu benötigen.