Datenrettung
Datenrettung
Hallo,
versehentlich habe ich eine Mpeg-Datei von 2,5 GB geschrotet, indem ich die Datei mit sich selber überschrieben habe. Die ersten 4 KB sind platt und folglich beträgt die Gesamtgröße nur 4 KB.
Wie kann ich die Datei wieder retten?
Der Startpunkt im Dateisystem müsste ja zu ermitteln sein.
Kann ich eventuell mit "dd" die Datei wieder retten (Startpunkt -> Gesamtgröße) und in eine neue an anderer Stelle schreiben?
Wie muss ich vorgehen?
Gruß
Dirk74
versehentlich habe ich eine Mpeg-Datei von 2,5 GB geschrotet, indem ich die Datei mit sich selber überschrieben habe. Die ersten 4 KB sind platt und folglich beträgt die Gesamtgröße nur 4 KB.
Wie kann ich die Datei wieder retten?
Der Startpunkt im Dateisystem müsste ja zu ermitteln sein.
Kann ich eventuell mit "dd" die Datei wieder retten (Startpunkt -> Gesamtgröße) und in eine neue an anderer Stelle schreiben?
Wie muss ich vorgehen?
Gruß
Dirk74
- SubOptimal
- Beiträge: 1709
- Registriert: 10.01.2005 23:25:46
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: bei Frankfurt
Hi Dirk,
die Chancen stehen eher auf sehr schlecht. Selbst im Fall das auf der Partition außer dieser einen Datei nichts weiter gespeichert wurde, garantiert nicht, das die Daten auch wirklich physikalisch an einem Stück hintereinander liegen.
Abhängig von der Partitionsgröße und dem darauf befindlichen Dateisystem können dazwischen auch Verwaltungsinformationen des Dateisystems liegen.
SubOptimal
die Chancen stehen eher auf sehr schlecht. Selbst im Fall das auf der Partition außer dieser einen Datei nichts weiter gespeichert wurde, garantiert nicht, das die Daten auch wirklich physikalisch an einem Stück hintereinander liegen.
Abhängig von der Partitionsgröße und dem darauf befindlichen Dateisystem können dazwischen auch Verwaltungsinformationen des Dateisystems liegen.
SubOptimal
Hi,
ich bin mal etwas optimistisch, da es eine separate Partition ist. Versuchen würde ich es auf jeden Fall. Ich müsste doch mit "dd" einen bestimmten Teil (die Datei) aus der Partition in eine Datei kopieren können.
Also z. B.:
Ich bin mir nur nicht sicher welche Parameter ich dd übergeben muss. Mit "ls" kann ich mir ja den inode der Datei anzeigen lassen, muss also nur wissen wieviele Bytes ich überspringen muss, bevor dd aktiv Daten einer bestimmten Länge mitschneidet.
Gruß
Dirk74
ich bin mal etwas optimistisch, da es eine separate Partition ist. Versuchen würde ich es auf jeden Fall. Ich müsste doch mit "dd" einen bestimmten Teil (die Datei) aus der Partition in eine Datei kopieren können.
Also z. B.:
Code: Alles auswählen
dd if=/dev/hda6 of=/mnt/hda7/test.mpg -skip=21[..]
Gruß
Dirk74
In dem Fall waere "man debugfs" ein Anfang. Z.B. liefert "stat filename" schon maldirk_74 hat geschrieben:Alleine aus wissenschaftlicher Neugier würde ich es gerne mal probieren,
was müsste ich eingeben?
Blocknummern, wobei filename relativ zur Partition ist. Fuer die Versuche sollte die
Partition nicht gemountet sein. Und Obacht geben: mit dem richtigen (falschen)
Befehl ueberschreibt debugfs alles - root hat immer recht.
Viel Erfolg!
Beware of programmers who carry screwdrivers.
Danke schonmal.
Das ist doch ein Ansatz.
stat liefert mir:
Kann ich mit den Angaben dd füttern?Ich benötige eigentlich nur die genaue Startposition, die Größe kenne ich ja.
Gruß
Dirk74
Das ist doch ein Ansatz.
stat liefert mir:
Code: Alles auswählen
dirk74:~# stat /mnt/hda6/submarine.mpg
File: `/mnt/hda6/submarine.mpg'
Size: 4108 Blocks: 16 IO Block: 4096 regular file
Device: 306h/774d Inode: 48865 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 1000/ dirk) Gid: ( 1000/ dirk)
Access: 2005-09-27 19:27:37.000000000 +0200
Modify: 2005-09-27 19:19:45.000000000 +0200
Change: 2005-09-27 19:19:45.000000000 +0200
Gruß
Dirk74
- SubOptimal
- Beiträge: 1709
- Registriert: 10.01.2005 23:25:46
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: bei Frankfurt
Hi Dirk,
Folgendes würde zur Fragmentierung einer 2.5 GB Datei führen.
- es war kein zusammenhängend freier Block in der Größe zum Zeitpunkt der Speicherung frei
- wenn beim erstellen der Datei deren Endgöße unbekannt war, d.h. die Datei wurde nicht an einem Stück dorthin kopiert, z.B. durch einen Aufnahmevorgang
- ...
Wenn es nicht wirklich wichtige Daten waren, dann würd ich da keine Zeit investieren. Datenwiederherstellung bedingt nicht nur die notwendigen Tools sondern auch eine genaue Kentniss vom Aufbau des Dateisystems.
Falls Dich dieses Thema aber wirklich interessiert, dann kannst Du mit sleuthkit und einem USB-Stick, CF-Card, etc. mal anfangen.
SubOptimal
Inode 48865 lässt auf eine ziemlich belegte Platte schliessen.dirk74:~# stat /mnt/hda6/submarine.mpg
File: `/mnt/hda6/submarine.mpg'
Size: 4108 Blocks: 16 IO Block: 4096 regular file
Device: 306h/774d Inode: 48865 Links: 1
Folgendes würde zur Fragmentierung einer 2.5 GB Datei führen.
- es war kein zusammenhängend freier Block in der Größe zum Zeitpunkt der Speicherung frei
- wenn beim erstellen der Datei deren Endgöße unbekannt war, d.h. die Datei wurde nicht an einem Stück dorthin kopiert, z.B. durch einen Aufnahmevorgang
- ...
Wenn es nicht wirklich wichtige Daten waren, dann würd ich da keine Zeit investieren. Datenwiederherstellung bedingt nicht nur die notwendigen Tools sondern auch eine genaue Kentniss vom Aufbau des Dateisystems.
Falls Dich dieses Thema aber wirklich interessiert, dann kannst Du mit sleuthkit und einem USB-Stick, CF-Card, etc. mal anfangen.
SubOptimal