Inodes werden definitiv überschrieben

Aus NOBAQ
Zur Navigation springenZur Suche springen

Seit langem wieder ein großer Rückschlag bei meiner Datenrekonstuktion. Meine ewige Hoffnung war, dass vielleicht doch nicht alle inodes überschrieben sind.

Heute hab ich mich auf die Suche nach inodes gemacht...


Dazu habe ich das Programm "e2salvage" umgebaut, und zwar so, dass es das komplette Image nach inodes durchsucht, und diese schön geordnet in eine Datei schreibt.

Auf der Datenpartition waren in etwa 111772 Dateien und Verzeichnisse, d.h. es müsste in etwa so viele inodes geben. Gefunden habe ich 85064 Inodes. Das hat sich auf den ersten Blick gut angesehen.

Meine große Befürchtung war aber, dass die inodes in Wirklichkeit nicht von meiner Datenpartition stammen. Denn auf der Datenpartition war noch ein ca 1GB großes ext2-Image für ein UML-Linux. Ebenfalls mit Blockgröße 4096.

Erste Stichproben mit den ersten Datenblöcken verschiedener inodes brachten jedoch schon die Ernüchterung: Die referenzierten Datenblöcke konnten ganz einfach nicht zum inode gehören, z.B. weil in den betreffenden Blöcken gar nie Padding dabei war, obwohl laut inode die Dateigröße < 4096 sein müsste.

Das folgende Script

dest=/mnt/backup/hda4test/dest_inode

grep ‘^Data:’ /inodes.txt | while read line
do
	block=`echo $line | awk ‘{print $2}`

	echo $block

	if test $block -le 3664828
	then
		dd if=/mnt/backup/hda4test/hda4.bin of=/tmp/c.dat bs=4096 count=1 skip=$block 2>/dev/null

		type=`file -b /tmp/c.dat`
		type=`echo $type | sed -e ’s/[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0-9(),.-]/_/gi;`

		mkdir -p “$dest/$type”
		cp /tmp/c.dat “$dest/$type/$blockfi
done

kontrolliert nun extrahiert nun gerade alle "ersten" Datenblöcke. Aber schon während dem Verlauf sehe ich: Alle Blöcke sind einfach viel zu niedrig für meine Datenpartition. Lediglich vereinzelt ein paar hohe oder sehr hohe Blöcke, die vermutlich Opfer der heuristischen Suche geworden sind.

Schade. Also bleibsts beim Puzzle-Bauen :-(