Mounten eines dd-Images

Vor kurzem musste ich meinen Laptop aus * Gründen * neu einrichten. Ich bin es jedoch gewohnt, es regelmäßig zu sichern, indem ich ein Full-Disk-Image mit dd erstelle, das auf einer separaten Festplatte gespeichert ist.

dd ist ein Tool, mit dem Sie bitweise Kopien von Festplatten oder Partitionen in Dateien und umgekehrt erstellen können. Die ersten paar hundert Bytes eines Full-Disk-Images enthalten Informationen zu den auf der Festplatte enthaltenen Partitionen.

Jetzt wollte ich einige Daten und Einstellungen von meinem letzten Backup wiederherstellen, indem ich es in meinen frisch eingerichteten Laptop einbaute.

Die Lösung

Eine Lösung wäre, die Partitionstabelle mit fdisk zu crawlen:

gue@gue-thinkpad: ~$ sudo fdisk -l /Medien/gue/GUE-USB3/finalBackup.dd
Festplatte /Medien/gue/GUE-USB3/finalBackup.dd: 238,5 GiB, 256060514304 bytes, 500118192 sektoren
Einheiten: sektoren von 1*512 = 512 bytes
Sektor größe (logische/physikalische): 512 bytes/512 bytes
I/O größe (minimum/optimale): 512 bytes/512 bytes
Disklabel typ: dos
Disk identifier: 0x57bf86df
Gerät Boot Start Ende Sektoren Größe Id Typ
/Medien/gue/GUE-USB3/finalBackup32Bit_T440S_20200124.dd1 * 2048 500117503 500115456 238,5 G 83 Linux

Es sagt uns, dass eine Partition vom Typ 83 (= Linux) bei Byte # 2048 beginnt und bei Byte # 500117503 endet, und dort könnten wir bereits den Befehl mount verwenden, um sie zu mounten.
ABER – dieser Ansatz wird mit mehr Partitionen komplizierter, beginnend mit unterschiedlichen Offsets, weil Sie einfach Dinge verwechseln und versehentlich versuchen könnten, Dinge zu mounten, die nicht existieren.

Dann stolperte ich über kpartx.

gue@gue-thinkpad:~$ sudo kpartx -l /Medien/gue/GUE-USB3/finalBackup.dd
loop2p1 : 0 500115456 /dev/loop2 2048
Schleife gelöscht: /dev/loop2

Es liest Partitionstabellen auf dem angegebenen Gerät und erstellt Gerätezuordnungen über erkannte Partitionssegmente. Es wird vom Hotplug beim Erstellen und Löschen von Gerätekarten aufgerufen – genau das wollen wir.

Anstatt es mit dem Parameter -l aufzurufen, könnte ich es mit dem Parameter -a starten, der Loopback-Geräte erstellt und hotplug (mit dem das Gerät anschließend gemountet wird) wie folgt aufruft:

gue@gue-thinkpad:~$ sudo kpartx -a /Medien/gue/GUE-USB3/finalBackup.dd

Fein – das System fügt die Partition als Laufwerk hinzu, das (wenn Sie die Zugriffsrechte haben) wie ein USB-Stick gelesen werden kann.

Um es loszuwerden, rufen Sie es einfach mit dem Parameter -d auf, der die Loopback-Geräte entfernt:

gue@gue-thinkpad: ~$ sudo kpartx -a /Medien/gue/GUE-USB3/finalBackup.dd

Das war’s, viel Spaß!

Leave a Reply