ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Datenrettung

Ausbaufähige Anleitung

Dieser Anleitung fehlen noch einige Informationen. Wenn Du etwas verbessern kannst, dann editiere den Beitrag, um die Qualität des Wikis noch weiter zu verbessern.


Anmerkung: Informationen zur Datenrettung auf den Dateisystemen ReiserFS und FAT32 fehlen, Informationen zu NTFS sollte aktualisiert werden

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Wiki/Icons/help.png Durch unvorsichtiges Vorgehen passiert es leider gelegentlich: Man löscht eine Verzeichnis oder eine Datei, obwohl man dies eigentlich nicht beabsichtigt hatte.

Dieser Artikel erklärt, wie man gelöschte Dateien wiederherstellen kann und was man vorbeugend machen kann, damit das nicht öfters passiert.

Des Weiteren wird zusätzlich hier beschrieben, wie man Daten von beschädigten Partitionen retten kann.

⚓︎

Vorbeugen

Löschen

Wiki/Icons/trash.png Beim Löschen folgendes beachten:

  • Überprüfen, welche Dateien man löscht

  • beim Löschen in den Papierkorb verschieben

  • vor dem Leeren des Papierkorbs ihn noch mal ansehen

Sicherungskopien

Wiki/Icons/save_all.png Regelmäßige Sicherungskopien anzulegen, ist mittlerweile nicht mehr schwer. Es gibt eine Vielzahl an Programmen, die manuell oder automatisch Sicherungen anlegen.

⚓︎

Daten retten

Achtung!

Installiert man ein Programm, z.B. e2undel, nach dem Löschen der Daten, oder verursacht man anderweitig Schreib-Zugriffe, so kann es sein, dass es bereits unmöglich ist die gelöschten Daten wiederherzustellen. Es empfiehlt sich also die Partition, auf der sich die Daten befunden haben, sofort auszuhängen oder mit Alt + Druck + U sämtliche Partitionen nur noch lesbar zu machen. Danach führt man dann die Wiederherstellung am Besten von einer LiveCD durch.

Natürlich gibt es nicht nur die hier erklärten Programme. Hier werden nur Programme zusammen mit einer Anleitung vorgestellt. Weitere Programme findet man auf den unter Links erwähnten Seiten.

⚓︎

ext2

Dateisystem aushängen

Um mit den Tools Zugriff auf das entsprechende Dateisystem zu haben, muss man dieses zuerst aushängen.

⚓︎

Methode 1: e2undel

e2undel 🇬🇧 ist über die Paketquellen installierbar [1],

  • e2undel (universe, [2])

Mit e2undel kann man interaktiv und einfach Daten von einer ext2 Partition retten.

⚓︎

Methode 2: debugfs

Das Programm ist mit dem Paket

  • e2fsprogs

bereits standardmäßig installiert.

Starten

Das Programm im Terminal [3] starten:

debugfs 

Mit folgendem Befehl in das Laufwerk wechseln:

open /dev/hda3 

hda3 durch das Laufwerk ersetzen, auf dem Daten gerettet werden sollen.

Dateien anzeigen

Zuerst sollte man mit folgendem Befehl alle gelöschten Dateien anzeigen lassen:

lsdel 

Das Programm verwendet folgende Anzeige:

Inode-Nummer Benutzer-ID Dateigröße Lösch-Datum und -Uhrzeit
4711 1000 93678 6/ 6 Sat Aug 12 20:43:55 2006

Nun kann man nach der zu rettenden Datei suchen, indem man Benutzer-ID, Dateigröße und Löschdatum (sofern bekannt) verwendet.

Gelöschte Datei abspeichern

Nun kann man die Datei mit folgendem Befehl retten:

dump <[Inode-Nummer]> [Zieldatei] 

Beispiel:

dump <4711> /tmp/recovered 

Die erstellte Datei kann man sich dann in einem Editor [4] ansehen.

Programm verlassen

quit 

⚓︎

Rettung mehrerer Daten

Haben sie versehentlich nicht nur eine, sondern gleich einen ganzen Haufen an Dateien gelöscht ist es natürlich mühsam, jedesmal den dump-Befehl auszuführen. Um trotzdem recht komfortabel an die gelöschten Dateien zu kommen gehen wir ähnlich vor, wie oben für eine einzelne Datei beschrieben.

Statt die Liste an gelöschten Dateien in debugfs auszugeben, geben wir sie in eine Textdatei aus. Dazu folgenden Befehl in der Konsole eingeben:

debugfs -R lsdel /dev/hda3 > deletedfiles.txt 

hda3 durch das Laufwerk ersetzen, auf dem Daten gerettet werden sollen. lsdel listet uns alle Daten auf, die auf dem Datenträgen gelöscht wurden. Der Parameter -R sorgt dafür, dass der Befehl lsdel an debugfs übergeben wird (man kann alternativ auch den Befehl direkt in debugfs eingeben). > gibt uns die Liste, statt in debugfs, in die Textdatei "deletedfiles.txt" in unserem Home Verzeichnis aus. Diese Liste modifizieren wir jetzt (als Root) mit einem Editor unserer Wahl. Die Liste sieht in etwa so aus:

Inode-Nummer Benutzer-ID Dateigröße Lösch-Datum und -Uhrzeit
4711 1000 93678 6/ 6 Sat Aug 12 20:43:55 2006
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
1000 deleted inodes found.

Die erste und letzte Zeile löscht man. Hat man Inodes, die man nicht wiederhergestellt haben möchte, löscht man einfach die ganze Zeile. Nun sollte man die angepasste Liste abspeichern.

Wir erstellen einen Ordner, in dem die geretteten Daten gesammelt werden.

mkdir /home/user/restored 

Die angefertigte Liste geben wir nun, mit Hilfe einer Schleife an debugfs weiter.

cat deletedfiles.txt | while read a b; do debugfs /dev/hda3 -R "dump -p <$a> /home/user/restored/file$a" ; done 

hda3, wie immer, durch das Laufwerk ersetzen, auf dem Daten gerettet werden sollen.

Der Vorgang kann unter Umständen mehrere Stunden dauern. Alle Dateien sollten nun in /home/user/restored liegen - leider nicht mehr mit original Dateinamen, aber immerhin sind die Daten wieder da!

Methode 3: grep

grep ist mit dem Paket

  • grep

bereits standardmäßig installiert.

Verwenden

Folgendes im Terminal [3] eingeben:

grep -a -B[Zahl] -A[Zahl] "[Suchbegriff]" /dev/hda* >[Zieldatei] 

Mehr zur Verwendung kann man in grep nachlesen.

Beispiel

grep -a -B200 -A600 "Doktorarbeit" /dev/hda3 >/tmp/recovered 

Dieser Befehl speichert alle Daten, die 200 Zeilen vor und 600 Zeilen nach der Zeichenkette "Doktorarbeit" auf /dev/hda3 gefunden werden, in die Datei /tmp/recovered. Die Datei kann man sich in einem Editor [4] ansehen.

Dateisystem einhängen

Zum Schluss muss man das zuvor ausgehängte Dateisystem natürlich wieder einhängen.

⚓︎

ext3

Laut Wikipedia und anderen Seiten kann man unter ext3 keine oder nur schwierig Daten retten.

Allerdings sind manche Programme, die unter ext2 genannt wurden, auch unter ext3 zu verwenden. Es gibt zumindest die Möglichkeit, Dateien teilweise zu retten.

Experten-Info:

ext3 überschreibt bei Löschvorgängen die Block-Pointer der Inodes mit Nullen. Dies macht ein Wiederherstellen von Dateien nach einem angeforderten Löschvorgang vergleichsweise schwierig, verbessert aber die Wahrscheinlichkeit, dass die Integrität des Dateisystems nach einem Softwarefehler oder Hardwareausfall ohne Datenverlust wiederhergestellt werden kann. (Quelle: Wikipedia)

Eine etwas umfrangreiche, aber erfolgsversprechende Anleitung gibt es hier: HOWTO recover deleted files on an ext3 file system 🇬🇧

⚓︎

NTFS

Achtung!

seit Feisty Fawn ist das Problem mit der mangelnden NTFS-Unterstützung behoben. Programme wie Testdisk oder PhotoRec können auch bei Problemen mit NTFS-Partitionen helfen.

Aufgrund mangelnder Unterstützung des Dateisystems ist unter Linux keine Rettung der Daten möglich. Für Windows gibt es im Internet allerdings einige brauchbare Programme, siehe Links.

⚓︎

Offene Dateien

Mit Hilfe des Befehls lsof (steht für list open files) es es möglich, versehentlich gelöschte Daten wiederherzustellen, wenn diese zum Zeitpunkt des Löschens von einem anderen Programm geöffnet sind. Die Rettungsvorgang muss dann auch unmittelbar nach dem Löschen erfolgen, da die Datei - vereinfacht gesagt - für das System dann immer noch geöffnet ist, obwohl sie gerade gelöscht wurde. Da dieser Fall wohl eher selten vorkommt, wird an dieser Stelle auf eine weiterführende Erklärung verzichtet und stattdessen auf die sehr gute Erklärung auf dieser Seite 🇩🇪 verwiesen.

Tricks

In manchen Fällen wird kein Wiederherstellungsprogramm benötigt, weil ein Ordner entweder unwichtig oder durch ein Programm erneut angelegt werden kann

Ordner Begründung Terminal-Befehl [3]
/usr/share/ Dieser Ordner enthält Programmdateien und kann durch den Befehl wieder herstellt werden aptitude reinstall "~i"
*/cache/* Der Ordner Cache ist meistens eine Art Zwischenspeicher für Programme, damit sie Dateien nicht bei jeder Abfrage erneut erstellen/herunterladen müssen. Meistens gibt es keine Probleme, wenn dieser Ordner gelöscht wird.

⚓︎

Partitionen retten

Wiki/Icons/hd.png ⚓︎

Gelöschte/defekte Partitionstabelle retten

Ist, aus welchem Grund auch immer, die Partitionstabelle beschädigt oder wurden Partitionseinträge gelöscht, kann man eine Rettung mit TestDisk 🇩🇪 probieren.

Achtung!

Das ändern der Partitionstabelle ist immer sehr risikoreich! Ein Reparaturversuch kann evtl. mehr Schaden anrichten als er nützt. Deswegen besser vorher die Platte komplett mit dd klonen und versuchen, die Kopie zu reparieren!

Das Programm TestDisk 🇩🇪 installiert man mit dem gleichnamigen Paket [1]:

  • testdisk (universe, [2])

Das Programm startet man einfach:

sudo testdisk 

Es bietet ein intuitiv zu bedienendes Text-Menü. Weitere Informationen findet man in den offiziellen TestDisk- Dokumentation 🇩🇪 .

⚓︎

Haupt-Partition reparieren lassen wenn nur noch Lese-Zugriff

Wenn plötzlich Meldungen folgender Art erscheinen:

  • "Prozess Erstellung des Ein-/Ausgabemoduls nicht möglich: Read-only file system kann nicht gestartet werden."

  • "Einrichtungsdatei /home/BENUTZERNAME/.kde/share/config/systemsettingsrc lässt sich nicht speichern."

  • "/dev/hda3: Unexpected inconsistency fsck died exit status 4" (beim Versuch neu zu booten)

dann enthält die Haupt-Partition einen Schreibfehler und wurde daher automatisch auf "Nur-Lesbar" gestellt.

Abhilfe ist die Überprüfung für die Haupt-Partition (die meistens hda1 heißt und vom Typ ext3 ist). Dazu startet man per KNOPPIX 🇩🇪 oder einer anderen Live-CD und kann nun die Haupt-Partition in Ordnung bringen, denn die Partition darf nicht gemountet sein. Dazu gibt man folgenden Befehl im Terminal [3] ein:

sudo fsck.ext3 -v -f /dev/hda1 

Wenn sehr viele Fragen mit "j" beantwortet werden müssen, kann man mit Strg + C abbrechen und den Befehl mit dem folgenden Parameter noch einmal starten: "-y".

⚓︎

Partitionen retten, wenn Reparatur nicht mehr möglich ist

⚓︎ Ist eine komplette Partition nicht mehr lesbar, weil z.B. Teile des Dateisystems beschädigt sind, so gibt es auch hier die Möglichkeit, die noch "guten" Daten mit Hilfe des Programms dd_rescue 🇬🇧 zu retten.

Dazu muss das dd_rescue über folgendes Paket installiert werden [1]:

  • ddrescue (universe [2])

Die Anwendung von dd_rescue ist relativ simpel und sehr ausführlich auf linux-user.de 🇩🇪 beschrieben, eine kurze Beschreibung findet man auch im Wiki-Artikel Notfall.

Ist die Boot-Partition defekt, so muss man dd_rescue natürlich von einer Live-CD aus ausführen.

Hinweis:

dd_rescue ist für defekte Partitionen gedacht, nicht für Partitionen, die versehentlich formatiert wurden!

Dateien aus Image extrahieren

Nachdem ein Image mit dd bzw. dd_rescue erstellt wurde, kann man nun damit beginnen, Dateien aus dem Image zu extrahieren. Dazu gibt es mehrere Tools.

PhotoRec

Das Programm PhotoRec 🇩🇪 ist im folgenden Paket enthalten [1]:

  • testdisk (universe, [2])

Nach der Installation kann man gleich beginnen, Dateien aus dem dd-Image zu Extrahieren:

sudo photorec dd_image_datei.img 

Man muss sich nun durch das Text-Menü hangeln und die Extraktion starten. Weitere Informationen findet man in den offiziellen PhotoRec-Dokumentation 🇩🇪 .

⚓︎

Sonstige Anwendungen

recoverjpeg

recoverjpeg 🇬🇧 dient ausschließlich dazu JPEG-Dateien auf Wechseldatenträgern oder Festplatten wiederherzustellen. Es eignet sich daher sehr gut dazu gelöschte Bilder auf dem Speicherchip einer Digitalkamera wiederherzustellen. Das Programm ist den Paketquellen von Ubuntu enthalten und kann über das Paket

  • recoverjpeg (universe, [2])

installiert werden. Anschließend kann man es über ein Terminal [3] auf einen ganzen Datenträger oder eine Partition ansetzen.

# Allgemein
recoverjpeg <datenträger>
# Beispiel 1
recoverjpeg /dev/sdc
# Beispiel 2
recoverjpeg /dev/hda1 

recoverjpeg versucht nun gelöschte Bilder auf dem Datenträger zu finden und speichert sie als image<nummer>.jpg im aktuellen Verzeichnis ab.

⚓︎

⚓︎ Wiki/Icons/windows_users.png

Windows

Diese Revision wurde am 2. Dezember 2008 19:24 von Mizzel erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Sicherheit, Datenrettung, Notfall, Datenträger