Wieder einmal Rekonstruktion hda4: Unterschied zwischen den Versionen

Aus NOBAQ
Zur Navigation springenZur Suche springen
(Die Seite wurde neu angelegt: x)
 
Zeile 1: Zeile 1:
x
+
<section begin="head"/>
 +
Beim Rekonstruieren der iSilo Daten hab ich wieder wehmütig auf meine verlorenen Daten (http://www.nobaq.net/old.php) geblickt. Jedesmal, wenn ich mir das Dateiindex anschau, sehe ich Dateien, die ich sehr gerne wieder hätte. Heute habe ich angefangen einen neuen Versuch zu starten...
 +
<section end="head"/>
 +
 
 +
Ein Versuch, der nicht viel mehr als Brute Force ist.
 +
 
 +
Ein leite einfach jeden Block durch "file" und ordne sie in ein Verzeichnis. Mit etwas Glück kann ich zumindest kleine Textdateien, die mir noch abgehen einfacher finden. Selbst für etwas größere Dateien stehen die Chancen nicht so schlecht, wenn ich mich recht erinnere stehen 12 Blöcke in der inode.
 +
 
 +
Dieses Script läuft nun im Hintergrund:
 +
 
 +
<source lang="bash">
 +
#!/bin/bash
 +
 
 +
declare -i block=0
 +
declare -i print=0
 +
 
 +
dest=/mnt/backup/hda4test/dest
 +
 
 +
while test $block -ne 3664828
 +
do
 +
print=0
 +
 
 +
test $(( $block % 100 )) -eq 0 && print=1
 +
 
 +
test $print -eq 1 && echo -n "Inspecting block $block..."
 +
dd if=/mnt/backup/hda4test/hda4.bin of=/tmp/f bs=4096 count=1 skip=$block 2>/dev/null
 +
block=$(( $block +1 ))
 +
 
 +
type=`file -b /tmp/f`
 +
type=`echo $type | sed -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0-9(),.-]/_/gi;'`
 +
test $print -eq 1 && echo -ne "$type"
 +
 
 +
mkdir -p "$dest/$type"
 +
cp /tmp/f "$dest/$type/$block"
 +
done
 +
</source>
 +
 
 +
Ist zwar nicht sehr effektiv, aber es tut. Beachtet man, dass es über 3,6 Millionen Blöcke gibt, so läuft das Script alleine noch 2 Tage, viel länger wird es dauern, das ganze auszuwerten.
 +
Platz hab ich auf der Backupplatte jedenfalls genug.
 +
 
 +
Ich stütze meine Hoffnungen halt darauf, dass ich die Masse von "data" und "DBase_3_data_files" etc getrost löschen kann und file die echten Textdateien brav in "English text", "C-Code", "XML-File" etc einordnet. Dann bekommt man schon viel mehr Überblick.
 +
 
 +
[[Kategorie:Weblog]]

Version vom 1. Februar 2008, 16:47 Uhr

Beim Rekonstruieren der iSilo Daten hab ich wieder wehmütig auf meine verlorenen Daten (http://www.nobaq.net/old.php) geblickt. Jedesmal, wenn ich mir das Dateiindex anschau, sehe ich Dateien, die ich sehr gerne wieder hätte. Heute habe ich angefangen einen neuen Versuch zu starten...


Ein Versuch, der nicht viel mehr als Brute Force ist.

Ein leite einfach jeden Block durch "file" und ordne sie in ein Verzeichnis. Mit etwas Glück kann ich zumindest kleine Textdateien, die mir noch abgehen einfacher finden. Selbst für etwas größere Dateien stehen die Chancen nicht so schlecht, wenn ich mich recht erinnere stehen 12 Blöcke in der inode.

Dieses Script läuft nun im Hintergrund:

#!/bin/bash

declare -i block=0
declare -i print=0

dest=/mnt/backup/hda4test/dest

while test $block -ne 3664828
do
	print=0

	test $(( $block % 100 )) -eq 0 && print=1

	test $print -eq 1 && echo -n "Inspecting block $block..."
	dd if=/mnt/backup/hda4test/hda4.bin of=/tmp/f bs=4096 count=1 skip=$block 2>/dev/null
	block=$(( $block +1 ))

	type=`file -b /tmp/f`
	type=`echo $type | sed -e 's/[^ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0-9(),.-]/_/gi;'`
	test $print -eq 1 && echo -ne "$type"

	mkdir -p "$dest/$type"
	cp /tmp/f "$dest/$type/$block"
done

Ist zwar nicht sehr effektiv, aber es tut. Beachtet man, dass es über 3,6 Millionen Blöcke gibt, so läuft das Script alleine noch 2 Tage, viel länger wird es dauern, das ganze auszuwerten. Platz hab ich auf der Backupplatte jedenfalls genug.

Ich stütze meine Hoffnungen halt darauf, dass ich die Masse von "data" und "DBase_3_data_files" etc getrost löschen kann und file die echten Textdateien brav in "English text", "C-Code", "XML-File" etc einordnet. Dann bekommt man schon viel mehr Überblick.