ISO-Images per Loopdevice mounten: Unterschied zwischen den Versionen

Aus Linupedia.org
Wechseln zu: Navigation, Suche
(kpartx: Verwendung image anstatt device)
K (kpartx: modprobe loop)
Zeile 37: Zeile 37:
 
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:
 
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:
 
<pre>
 
<pre>
 +
# modprobe loop
 
# kpartx -va sd-card.img
 
# kpartx -va sd-card.img
 
add map loop0p1 (253:7): 0 8192 linear /dev/loop0 4224
 
add map loop0p1 (253:7): 0 8192 linear /dev/loop0 4224

Version vom 22. Februar 2015, 08:38 Uhr

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:

# modprobe loop
# 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