Das Tool kpartx erleichtert dies. Es erstellt Schleifengeräte in /dev/mapper für jede Partition in Ihrem Image. Dann können Sie das Loop-Gerät montieren, das Ihrer gewünschten Partition entspricht, ohne den Offset manuell berechnen zu müssen.
Um beispielsweise die erste Partition des Disk-Images zu mounten:
kpartx -a -v myimage.disk
mount /dev/mapper/loop0p1 /mnt/myimage
Wenn Sie mit dem Image fertig sind, entfernen Sie die Loop-Geräte:
umount /mnt/myimage
kpartx -d -v myimage.disk
Wenn Sie alternativ einen neueren Kernel haben und loop.max_part=63 beim Booten (wenn Schleife eingebaut ist) oder an modprobe (wenn Schleife ein Modul ist) übergeben, dann können Sie es so machen:
losetup /dev/loop0 myimage.disk
partprobe /dev/loop0 # Re-read partition table if /dev/loop0 was used with a different image before
mount /dev/loop0p1 /mnt/myimage
Wenn Sie mit der Schleife fertig sind:
losetup -d /dev/loop0
Folgendes gefunden:
http://www.andremiller.net/content/mounting-hard-disk-image-inclusive-partitions-using-linux
das scheint genau das zu sein, wonach ich gesucht habe.
Hier ist der Schlüsselteil:
mount -o loop,ro,offset=32256 hda.img /mnt/rabbit
wobei der Wert von Offset in Bytes angegeben ist. Der empfohlene Weg, um den Offset zu erhalten, ist der Punkt parted
am Bild, dann Einheit B für Bytes und den Startwert aus der Druckausgabe nehmen. Als Alternative, vorausgesetzt, Sie haben den Speicherplatz auf der Festplatte, tun Sie das Offensichtliche:Sobald Sie den Offset und die Größe haben, verwenden Sie einfach dd
um jede Partition in eine separate Datei zu extrahieren.
Heutzutage können Sie Ihren Arbeitsaufwand minimieren, indem Sie udisks
verwenden . Lösung von ArchWiki:udisks - Mount loop devices
Verwenden Sie zum einfachen Mounten von ISO-Images den folgenden Befehl:
udisksctl loop-setup -r -f image.iso
Dadurch wird ein Loop-Gerät erstellt und das ISO-Image bereit zum Mounten angezeigt. Nach dem Unmounten wird das Loop-Device von udev beendet.
-r
dort für Nur-Lesen-Option.