Festplatten-Image unter Linux nutzen

Praxis & Tipps | Tipps & Tricks

Ich habe von meiner Festplatte kurz vor deren endgültigem Ableben mit dem Programm dd_rescue von Ihrer Knoppicillin-CD gerade noch ein komplettes Image auf eine größere Platte retten können. Da liegt nun eine Datei mit allen Daten, die ich jedoch über das Loop-Modul nicht mounten kann. Wie komme ich an meine Daten?
Mit mount -u loop können Sie in der Tat nur Images von einzelnen Partitionen einbinden. Doch Ihre Daten sind nicht verloren. Für die folgenden Schritte gehen wir davon aus, dass die Imagedatei den Namen „image“ trägt.

Sehen Sie sich zunächst mit dem Befehl fdisk -lu image die Partitionstabelle an. Der Schalter -u bewirkt, dass fdisk bei der Anzeige als Einheit 512 Bytes lange Sektoren zu Grunde legt statt der üblichen Zylinder. Die Ausgabe sieht ungefähr so aus wie im obenstehenden Bild.

Mit dem Programm losetup konfigurieren Sie nun ein Loop-Device so, dass es beim Mounten nicht auf den Beginn der Datei zugreift, sondern mit einem passenden Offset. Für die erste Partition sieht der Aufruf beispielsweise so aus:

losetup -o $((512*63)) /dev/loop0 image
mount -ro /dev/loop0 /mnt

Die bash-Ersetzung $((...)) nimmt Ihnen dabei die Berechnung des Offsets ab, der in Bytes anzugeben ist. Allerdings können Sie so nur Partitionen einbinden, die unterhalb der 2-GByte-Grenze beginnen, denn der Loop-Treiber kann nicht mit größeren Offsets umgehen.

Um auf die weiter hinten liegenden Partitionen zuzugreifen, extrahieren Sie sie mit dd aus dem Image. Dazu stellen Sie die Blockgröße mit dem Parameter bs auf 512 Bytes und verwenden direkt die von fdisk ausgegebenen Werte für Anfang und Ende der Partition. Der Aufruf, um die Partition „image5“ aus dem obigen Beispiel in die Datei part5 zu kopieren, lautet also:

dd if=image of=part5 bs=512 skip=4176963 count=$((8369864-4176963))

Beim Berechnen der Partitionslänge aus ihrem Anfangs- und Endblock lassen Sie sich wieder von der Shell helfen. Die Datei part5 lässt sich dann wie üblich mit

mount -ro -o loop part5 /mnt

über das Loop-Device mounten. (je)

Anzeige