[[Ausbaufaehig(Informationen zur Datenrettung auf den Dateisystemen ReiserFS und FAT32 fehlen leider.)]] [[Getestet(general)]] {{{#!Wissen * [1]: [:Pakete installieren: Installation von Programmen] * [2]: [:Paketquellen freischalten: Bearbeiten von Paketquellen] * [3]: [:Terminal: Ein Terminal öffnen] * [4]: [:Editor: Einen Editor öffnen] }}} [[TableOfContents(2)]] [[Bild(Wiki/Icons/help.png,75,links)]] Durch unvorsichtiges Vorgehen passiert es leider gelegentlich: Man löscht einen Ordner, verschiebt ihn aber nicht in den Papierkorb und dann merkt man, dass es der falsche war. Dieser Artikel erklärt, wie man gelöschte Dateien teilweise wiederherstellen kann und was man vorbeugend machen kann, damit das nicht öfters passiert. Des Weiteren wird zusätzlich [#dd_rescue hier] beschrieben, wie man Daten von beschädigten Partitionen retten kann. [[Anchor(Vorbeugen)]] = Vorbeugen = == Löschen == [[Bild(Wiki/Icons/trash.png,50,rechts)]] 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 == [[Bild(Wiki/Icons/save_all.png,50,rechts)]] Regelmäßige [:Sicherheit#Sicherungskopien: Sicherungskopien] anzulegen, ist mittlerweile nicht mehr schwer. Es gibt eine Vielzahl an Programmen, die manuell oder automatisch Sicherungen anlegen. [[Anchor(Daten)]] = Daten retten = Man sollte beachten, dass man gelöschte Dateien nicht durch Aktivitäten auf der Festplatte wie Speichern, Verschieben usw. überschreibt. Es empfiehlt sich sofort nach dem Löschen ein Recovery-Programm zu verwenden. {{{#!Hinweis 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 Links] erwähnten Seiten. }}} [[Anchor(ext2)]] == ext2 == === Dateisystem aushängen === Um mit den Tools Zugriff auf das entsprechende Dateisystem zu haben, muss man dieses zuerst [:Datenträger#mount: aushängen]. [[Anchor(debugfs)]] === Methode 1: debugfs === Das Programm ist mit dem Paket * '''e2fsprogs''' bereits standardmäßig installiert. ==== Starten ==== Das Programm im Terminal [3] starten: {{{#!Befehl debugfs }}} ==== Navigieren ==== Mit folgenden Befehl in das Laufwerk wechseln: {{{#!Befehl 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: {{{#!Befehl 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 folgenden Befehl retten: {{{#!Befehl dump <[Inode-Nummer]> [Zieldatei] }}} Beispiel: {{{#!Befehl dump <4711> /tmp/recovered }}} Die erstellte Datei kann man sich dann in einem Editor [4] ansehen. ==== Programm verlassen ==== {{{#!Befehl quit }}} [[Anchor(grep)]] === Methode 2: grep === [:Shell/grep:grep] ist mit dem Paket * '''grep''' bereits standardmäßig installiert. ==== Verwenden ==== Folgendes im Terminal [3] eingeben: {{{#!Befehl grep -a -B[Zahl] -A[Zahl] "[Suchbegriff]" /dev/hda* >[Zieldatei] }}} Mehr zur Verwendung kann man in [:Shell/grep: grep] nachlesen. ==== Beispiel ==== {{{#!Befehl 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. ## [[Anchor(recover)]] ## === Methode 3: recover === === Dateisystem einhängen === Zum Schluss muss man das zuvor ausgehängte Dateisystem natürlich wieder [:Datenträger#mount: einhängen]. [[Anchor(ext3)]] == ext3 == Laut Wikipedia und anderen Seiten kann man unter ext3 keine oder nur schwierig Daten retten. Allerdings sind manche Programme, die unter [#ext2 ext2] genannt wurden, auch unter ext3 zu verwenden. Es gibt zumindest die Möglichkeit, Dateien teilweise zu retten. {{{#!Experten ''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: [wiki:Wikipedia/ext3 Wikipedia] {de} ) }}} [[Anchor(NTFS)]] == NTFS == Aufgrund mangelnder Unterstützung des [:NTFS: Dateisystems] ist unter Linux keine Rettung der Daten möglich. Für Windows gibt es im Internet allerdings einige brauchbare Programme, siehe [#Links-Windows Links]. [[Anchor(lsof)]] == Offene Dateien == Mit Hilfe des Befehls '''lsof''' (steht für '''l'''i'''s'''t '''o'''pen '''f'''iles) 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 [http://www.jfranken.de/homepages/johannes/vortraege/lsof_inhalt.de.html#ToC6 dieser Seite] {de} verwiesen. lsof ist in normalerweise in der Standardinstallation von Ubuntu enthalten, wird ansonsten aber über folgendes Paket installiert [1]: * '''lsof''' [[Anchor(Tricks)]] == 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 ein 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. || || [[Anchor(Partitionen)]] = Partitionen retten = [[Bild(Wiki/Icons/hd.png,75,rechts)]] [[Anchor(Partitionen-1)]] == Gelöschte/defekte Partitionstabelle retten == Ist, aus welchem Grund auch immer, die Partitionstabelle beschädigt oder wurde Partitionseinträge gelöscht, kann man eine Rettung mit [http://www.cgsecurity.org/wiki/TestDisk_DE TestDisk] {de} probieren. {{{#!Warnung 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 [:Shell/dd: dd] klonen und versuchen, die Kopie zu reparieren! }}} Das Programm [http://www.cgsecurity.org/wiki/TestDisk_DE TestDisk] {de} installiert man mit dem gleichnamigen Paket [1]: * '''testdisk''' (''universe'', [2]) Das Programm startet man einfach: {{{#!Befehl sudo testdisk }}} Es bietet eine intuitiv zu bedienendes Text-Menü. Weitere Informationen findet man in den offiziellen [http://www.cgsecurity.org/wiki/TestDisk_DE#Dokumentation TestDisk- Dokumentation] {de} . [[Anchor(Partitionen-2)]] == 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 [http://www.knoppix.org/ KNOPPIX] {de} 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: {{{#!Befehl sudo fsck.ext3 -v -f /dev/hda1 }}} Wenn sehr viele Fragen mit "`j`" beantwortet werden müssen, kann man mit [[Tasten(Strg+C)]] abbrechen und den Befehl mit dem folgenden Parameter noch einmal starten: "`-y`". [[Anchor(Partitionen-3)]] == Partitionen retten, wenn Reparatur nicht mehr möglich ist == [[Anchor(dd_rescue)]] Ist ein 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 [http://www.garloff.de/kurt/linux/ddrescue dd_rescue] {en} 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 [http://www.linux-user.de/ausgabe/2004/08/048-dd-rescue/ linux-user.de] {de} beschreiben, 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 [http://www.cgsecurity.org/wiki/PhotoRec_DE PhotoRec] {de} ist im folgenden Paket enthalten [1]: * '''testdisk''' (''universe'', [2]) Nach der Installation kann man gleich beginnen, Dateien aus dem dd-Image zu Extrahieren: {{{#!Befehl 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 [http://www.cgsecurity.org/wiki/PhotoRec_DE#Dokumentation PhotoRec-Dokumentation] {de} . [[Anchor(Links)]] = Links = * [http://www.martin-bock.de/pc/pc-0207.html Retten gelöschter Dateien unter ext2] {de} * [http://forum.ubuntuusers.de/topic/93240/ Forum: Wichtige Daten gelöscht] {de} * [http://www.linux-praxis.de/lpic1/manpages/debugfs.html debugfs-Manpage] {de} * [https://help.ubuntu.com/community/DataRecovery Data Recovery im der englischen Ubuntu-Dokumentation] {en} * [:Shell/grep: grep] * [http://recover.sourceforge.net/linux/recover/ recover (Herstellerseite)] {en} * [http://www.cgsecurity.org/wiki/PhotoRec_DE PhotoRec] {de} * [http://www.netmon.ch/forensic/allin1.html Allin1] {en} * [http://www.sleuthkit.org/ The Sleuth Kit / Autopsy] {en} [[Anchor(Links-Windows)]] [[Bild(Wiki/Icons/windows_users.png,50,rechts)]] == Windows == * [http://www.heise.de/software/default.shtml?ref=suche&akat=217&akat=199&osg=1&lf=3&lf=1&lf=5&kat=222 heise Software-Verzeichnis] {de} * [http://www.winload.de/download-software/Utilities/Datenrettung/index.html?typ_id=15&x=41&y=9 Winload.de] {de} ---- * [:Kategorie/Problemlösungen:] * [:Kategorie/Sicherheit:] ## vim:filetype=moin