Friday 14 September 2018

linux - How can I mount a disk image?


I have a disk image myimage.disk which contains the partition table and a primary partition (i.e. a FAT32 filesystem). Think that as a USB pen image.


I want to mount the primary partition to a local directory. I know how to mount a partition image using the loop utils but here I have disk image. My guess is that I have to mount the image "skipping" the partition table but how can I do that?



Answer



The kpartx tool makes this easier. It creates loop devices in /dev/mapper for each partition in your image. Then you can mount the loop device that corresponds with your desired partition without having to calculate the offset manually.


For example, to mount the first partition of the disk image:


kpartx -a -v myimage.disk
mount /dev/mapper/loop0p1 /mnt/myimage

When you're done with the image, remove the loop devices:


umount /mnt/myimage
kpartx -d -v myimage.disk



Alternatively, if you have a recent kernel, and pass loop.max_part=63 on boot (if loop is built-in) or to modprobe (if loop is a module), then you can do it this way:


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

When you're done with the loop:


losetup -d /dev/loop0

No comments:

Post a Comment

Where does Skype save my contact's avatars in Linux?

I'm using Skype on Linux. Where can I find images cached by skype of my contact's avatars? Answer I wanted to get those Skype avat...