L'outil kpartx facilite cela. Il crée des périphériques de boucle dans /dev/mapper pour chaque partition de votre image. Ensuite, vous pouvez monter le périphérique de boucle qui correspond à la partition souhaitée sans avoir à calculer manuellement le décalage.
Par exemple, pour monter la première partition de l'image disque :
kpartx -a -v myimage.disk
mount /dev/mapper/loop0p1 /mnt/myimage
Lorsque vous avez terminé avec l'image, supprimez les périphériques en boucle :
umount /mnt/myimage
kpartx -d -v myimage.disk
Alternativement, si vous avez un noyau récent et passez loop.max_part=63 au démarrage (si la boucle est intégrée) ou à modprobe (si la boucle est un module), alors vous pouvez le faire de cette façon :
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
Lorsque vous avez terminé avec la boucle :
losetup -d /dev/loop0
Trouvé ceci :
http://www.andremiller.net/content/mounting-hard-disk-image-incluant-partitions-using-linux
qui semble exactement ce que je cherchais.
Voici l'élément clé :
mount -o loop,ro,offset=32256 hda.img /mnt/rabbit
où la valeur de décalage est en octets. La méthode suggérée pour obtenir le décalage est de pointer parted
à l'image, puis l'unité B pour les octets et prendre la valeur de départ de la sortie d'impression. Comme alternative, en supposant que vous avez l'espace disque, faites ce qui est évident :une fois que vous avez le décalage et la taille, utilisez simplement dd
pour extraire chaque partition dans un fichier séparé.
De nos jours, vous pouvez minimiser votre travail en utilisant udisks
. Solution d'ArchWiki :udisks - Monter des périphériques en boucle
Pour monter facilement des images ISO, utilisez la commande suivante :
udisksctl loop-setup -r -f image.iso
Cela créera un périphérique en boucle et affichera l'image ISO prête à être montée. Une fois démonté, le périphérique en boucle sera terminé par udev.
-r
là pour l'option de lecture seule.