ISO-Images per Loopdevice mounten
Wenn man unter Linux eine ISO-Datei oder eine per dd erzeugte Image-Datei als Verzeichnis einbinden möchte (das entspricht dem virtuellen Laufwerk anderer Betriebssysteme), geht man wie folgt vor:
Man erstellt das Verzeichnis, in dem später der Inhalt der ISO-Datei erscheinen soll, bspw.
mkdir /tmp/cd
Nun teilen wir dem System mit, dass es dorthin doch bitte den Inhalt der ISO-Datei einzubinden habe:
sudo mount -o loop /pfad/zur/ISO-Datei /tmp/cd
Dabei nicht vergessen, die Pfade entsprechend anzupassen.
Die Einbindung löst man wieder mit
sudo umount /tmp/cd
--Freecoffee 11:50, 29. Aug 2006 (CEST)
Partitionierte Datenträger
Gezielte Adressierung mittels 'offset'
Das oben beschriebene Vorgehen funktioniert auch für den direkten Zugriff auf Partitionen innerhalb eines Images. Das folgende Beispiel zeigt, wie die erste Partition eines SD-Card-Images gezielt adressiert und gemountet wird.
Das Image wurde von einer SD-Card gezogen. Darin befindet sich eine primäre Partition:
j3:~ # fdisk -l sd-card.img Disk sd-card.img: 29.5 GiB, 31674335232 bytes, 61863936 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x00000000 Device Boot Start End Sectors Size Id Type sd-card.img1 8192 61863935 61855744 29.5G c W95 FAT32 (LBA)
Die erste und einzige Partition 'sd-card.img1' beginnt bei Sektor 8192 (Spalte Start). Daraus kann der Offset als Produkt mit der Größe der Sektoren (512 bytes) errechnet und direkt adressiert werden:
j3:~ $ sudo mount -t vfat -o loop,ro,offset=$((8192 * 512)) sd-card.img /mnt
kpartx
Als Alternative bietet sich das Tool 'kpartx' an. Es erstellt für alle Partitionen Einträge für den DeviceMapper, welche dann nach Bedarf gemountet werden können:
# kpartx -va sd-card.img add map loop0p1 (253:7): 0 8192 linear /dev/loop0 4224 add map loop0p2 (253:8): 0 1849216 linear /dev/loop0 12416 add map loop0p3 (253:9): 0 6002688 linear /dev/loop0 1861632
Um beispielsweise auf die Daten in der 3. Partition (aus Sicherheitsgründen nur) lesend zugreifen zu können, wird diese mit der Option 'ro' gemounted:
# mount -o loop,ro /dev/mapper/loop0p3 /mnt
Nach Verwendung sollten die Ressourcen wieder sauber freigegeben werden:
# umount /mnt # kpartx -d sd-card.img loop deleted : /dev/loop0