Mounten einer Partition in einem Loopdevice

14. Januar 2008

Ihr Vorhaben

Sie haben eine Image einer Festplatte erstellt. Die Festplatte ist partitioniert. Sie wollen eine der Partionen der Imagedatei mounten.

Das Problem dabei

Linux kann über /dev/loop? zwar aus einer Imagedatei ein Blockgerät machen, welches man dann mounten kann. Die /dev/loop?-Geräte kennen aber keine Partitionen.

Die Lösung

Beim Mounten können Sie mit den Optionen offset= und sizelimit= beim Mounten mittels Loopback den Bereich in der Imagedatei einschräken. Wenn Sie diesen Bereich genau auf die Grenzen einer Partition legen, können Sie diese somit mounten.

Die Größe und Lage der Partitionen können Sie mit sfdisk ermitteln (hier am Beispiel des Images eines USB-Sticks mit nur einer Partition):

root@linux# sfdisk -d /tmp/image
# Partitionstabelle von /tmp/image
unit: sectors

/tmp/image1 : start=       32, size=    20448, Id=83, bootable
/tmp/image2 : start=        0, size=        0, Id= 0
/tmp/image3 : start=        0, size=        0, Id= 0
/tmp/image4 : start=        0, size=        0, Id= 0

Die Angaben sind hier in Blöcken zu 512 Byte. Die Umrechnung kann z.B. die Shell für Sie machen. Das Mounten erfolgt mit folgendem Befehl:

root@linux# echo $((32 * 512)) $((20448 * 512))
16384 10469376
root@linux# mount -o loop,offset=16384,sizelimit=10469376 /tmp/image /mnt