English / Deutsch | Druckversion
Twitter
twitter

<< Zurück
Die Partitionstabelle ist defekt, gelöscht, unbrauchbar! Wie kann ich den Startoffset der Partition ermitteln?

Inhaltsverzeichnis

Weiter >>
Unusual block size

Wie finde ich den richtigen Startoffset der Partition mit einer Referenzdatei


Bevor Sie die Suche starten, müssen die Wiederherstellungsschritte 1 und 2 beendet werden. Wenn dies vor einiger Zeit geschehen ist und die HFS+ Rescue Dateien noch vorhanden sind, dann müssen Sie die Schritte 1 und 2 nicht erneut durchführen.

Es ist notwendig die Block Size des defekten Dateisystems zu wissen. Normalerweise ist die Block Size 4096. Bei Partition die größer als 2 TB sind ist eine Block Size von 8192 üblich.

Weiters benötigen Sie eine Datei die sich auf der Partition befand. Es ist egal um welche Datei es sich handelt. Es kann eine ausführbare Datei sein (kann von einem funktionierenden Computer kopiert werden) oder eine Bilddatei (vielleicht von einem Backup). Ich bevorzuge eine Bilddatei. Wichtig ist, daß die Datei möglichst selten auf der Partition gespeichert ist, damit Anzahl der möglichen Positionen reduziert wird.


1) Zuerst prüfen Sie ob die Datei bei den Schritten -s1 und -s2 gefunden wurde. Für dieses Beispiel verwende ich eine Datei mit dem Namen 'PerfectPicture.jpg'.

hfsprescue --list | grep PerfectPicture.jpg

Beispielausgabe:

77: PerfectPicture.jpg, 892187 bytes, Sun May 10 18:21:18 2015, Start block 131074

Großartig, die Datei 'PerfectPicture.jpg' wurde gefunden. Außerdem haben wir Glück, denn die Datei ist nur ein Mal auf der Partition ;). Wenn Sie die Datei mehrmals gefunden wurde, dann verwenden Sie entweder eine andere Datei, oder Sie müssen verschiedene Offsetwerte ausprobieren bis Sie den richtigen Wert ermittelt haben.

2) Der nächste Schritt ist eine Bytesuche nach der Datei auf dem Laufwerk.

hfsprescue --find /dev/sdb -ff 4096 PerfectPicture.jpg

Beispielausgabe:

File bytes found at offset 746586112 + 28672 = 746614784 (0x2c800000 + 0x7000 = 0x2c807000)

Großartig, die Bytes der Datei wurden gefunden. Zum Glück nur ein Mal. Wenn die Bytes mehrmals gefunden wurden, dann müssen Sie die folgende Berechnung mit allen Offsets durchführen.

3) Die Formel.

offset = byte_search_result - list_start_block * block_size

Mit unseren Werten Sie die Formel so aus

offset = 746614784 - 131074 * 4096

Wenn Sie keinen Taschenrechner bei der Hand haben, dann können Sie die Shell (Kommandozeile) für die Berechnung verwenden.

echo $((746614784 - 131074 * 4096))

Das Ergebnis ist 209735680

Mein einer einfachen Überprüfung kann festgestellt werden ob das Ergebnis gültig sein könnte. Eine Modulo Operation mit dem Wert 512 muß 0 ergeben.
Befehl: echo $((209735680 % 512))

4) Überprüfen ob der berechnette Offset korrekt ist.

Stellen Sie eine Datei wieder her indem Sie den Parameter '--one-file' und die Dateinummer (von '--list') und den berechneten Offset verwenden.

hfsprescue --one-file /dev/sdb 77 -b 4096 -o 209735680

Dieser Befehl speichert die wiederhergestellte Datei unter 'restored/PerfectPicture.jpg' ab.

Nun vergleichen Sie die Referenzdatei mit der wiederhergestellten Datei. diff PerfectPicture.jpg restored/PerfectPicture.jpg

Wenn 'diff' keinen Unterschied meldet, dann ist der Offsetwert für die Partition korrekt.

Entfernen Sie das 'restored/' Verzeichnis und starten Sie mit Schritt 3 '-s3' und dem berechneten Startwert mit '-o'.

Beispiel: hfsprescue -s3 /dev/sdb -b 4096 -o 209735680




<< Zurück
Die Partitionstabelle ist defekt, gelöscht, unbrauchbar! Wie kann ich den Startoffset der Partition ermitteln?

Inhaltsverzeichnis

Weiter >>
Unusual block size


© 2024 by Elmar Hanlhofer