Lo strumento kpartx lo rende più semplice. Crea dispositivi loop in /dev/mapper per ogni partizione nella tua immagine. Quindi puoi montare il dispositivo loop che corrisponde alla partizione desiderata senza dover calcolare l'offset manualmente.
Ad esempio, per montare la prima partizione dell'immagine del disco:
kpartx -a -v myimage.disk
mount /dev/mapper/loop0p1 /mnt/myimage
Quando hai finito con l'immagine, rimuovi i dispositivi del loop:
umount /mnt/myimage
kpartx -d -v myimage.disk
In alternativa, se hai un kernel recente e passi loop.max_part=63 all'avvio (se loop è integrato) o a modprobe (se loop è un modulo), allora puoi farlo in questo modo:
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
Quando hai finito con il ciclo:
losetup -d /dev/loop0
Trovato questo:
http://www.andremiller.net/content/mounting-hard-disk-image-include-partitions-using-linux
che sembra esattamente quello che stavo cercando.
Ecco la parte fondamentale:
mount -o loop,ro,offset=32256 hda.img /mnt/rabbit
dove il valore di offset è in byte. Il modo suggerito per ottenere l'offset è puntare parted
all'immagine, quindi unità B per i byte e prendere il valore iniziale dall'output di stampa. In alternativa, supponendo che tu abbia lo spazio su disco, fai l'ovvio:una volta che hai l'offset e la dimensione, usa semplicemente dd
per estrarre ogni partizione in un file separato.
Al giorno d'oggi puoi minimizzare il tuo lavoro usando udisks
. Soluzione da ArchWiki:udisks - Mount loop devices
Per montare facilmente le immagini ISO, usa il seguente comando:
udisksctl loop-setup -r -f image.iso
Questo creerà un dispositivo loop e mostrerà l'immagine ISO pronta per il montaggio. Una volta smontato, il dispositivo loop verrà terminato da udev.
-r
disponibile per l'opzione di sola lettura.