Datenrettung

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
dirk_74
Beiträge: 167
Registriert: 09.10.2004 21:46:13
Wohnort: Kelkheim

Datenrettung

Beitrag von dirk_74 » 27.09.2005 19:37:30

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

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Beitrag von SubOptimal » 27.09.2005 21:41:27

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

dirk_74
Beiträge: 167
Registriert: 09.10.2004 21:46:13
Wohnort: Kelkheim

Beitrag von dirk_74 » 27.09.2005 21:49:54

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.:

Code: Alles auswählen

dd if=/dev/hda6 of=/mnt/hda7/test.mpg -skip=21[..]
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

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 27.09.2005 21:57:30

Welches Dateisystem ist es denn? Die Datei kann auch komplett auf der Partition verteilt sein.

Wenn es eine sehr wichtige Datei war -> Datenrettungsunternehmen und demnächst Backups machen.

dirk_74
Beiträge: 167
Registriert: 09.10.2004 21:46:13
Wohnort: Kelkheim

Beitrag von dirk_74 » 27.09.2005 22:13:01

ext3.
Du hast recht, die Datei könnte zerstückelt auf die Partition verteilt sein. Ein Datenrettungsunternehmen werde ich wohl nicht beauftragen, so wichtig war das nicht ;-)
Alleine aus wissenschaftlicher Neugier würde ich es gerne mal probieren, was müsste ich eingeben?

Gruß
dirk74

cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 27.09.2005 22:26:02

dirk_74 hat geschrieben:Alleine aus wissenschaftlicher Neugier würde ich es gerne mal probieren,
was müsste ich eingeben?
In dem Fall waere "man debugfs" ein Anfang. Z.B. liefert "stat filename" schon mal
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.

dirk_74
Beiträge: 167
Registriert: 09.10.2004 21:46:13
Wohnort: Kelkheim

Beitrag von dirk_74 » 27.09.2005 22:57:18

Danke schonmal.
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
Kann ich mit den Angaben dd füttern?Ich benötige eigentlich nur die genaue Startposition, die Größe kenne ich ja.

Gruß
Dirk74

cosmac
Beiträge: 4573
Registriert: 28.03.2005 22:24:30

Beitrag von cosmac » 28.09.2005 03:40:19

Nicht wirklich. Das ist kein Ansatz. Im Gegenteil. Ich hatte was von nicht mounten
und "stat" als internem Befehl von debugfs geschrieben.

Eben "man debugfs" als ersten Schritt.

so wird das nichts :!: 8O
Beware of programmers who carry screwdrivers.

Benutzeravatar
SubOptimal
Beiträge: 1709
Registriert: 10.01.2005 23:25:46
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: bei Frankfurt

Beitrag von SubOptimal » 28.09.2005 08:59:06

Hi Dirk,
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
Inode 48865 lässt auf eine ziemlich belegte Platte schliessen.
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

dirk_74
Beiträge: 167
Registriert: 09.10.2004 21:46:13
Wohnort: Kelkheim

Beitrag von dirk_74 » 28.09.2005 21:26:45

Danke für die bisherigen Tipps.
Die ursprüngliche Datei ist in der Tat durch eine Aufnahme entstanden. Ich werde mal versuchen die Ratschläge umzusetzen. Wenn es nicht klappt, bricht die Welt dadurch auch nicht zusammen.

Gruß
Dirk74

Antworten