How to Create Virtual Block Devices from File? [Duplicate]
  • Let's have unknown disk drive uncompressed raw image (created for example by dd if=/dev/sda of=image) in single file.
  • If we knew the disk layout, we could mount particular partitions from the file as the loop devices via skipping some offsets.
  • Let's suppose we don't know the layout. Can we somehow "mount" the whole disk drive image, which process would create virtual block devices according to the disk layout? For example having 2 partitions in the image would result in creating 3 devices (/dev/sdx, /dev/sdx1, /dev/sdx2). We could then mount such devices as usual.
3

After some more research I have found, there are at least two methods to test:

  1. According to this post, kpartx is applicable tool.
    • Unfortunately it didn't work on Arch Linux for me
    • It's from AUR: yaourt multipath-tools-git, seems to be not well supported/finished and ended up with errors like:

      device-mapper: reload ioctl on loop0p1 failed: No such device

    • Can be at least used to list the embedded partitions: kpartx -l image
    • EDIT: According to this post, it seems to be obsolete and the preferred method is the following one.
  2. According to this post, losetup can be used.
    • Firstly it didn't work: losetup /dev/loop0 image (missing the devices for particular partitions).
    • Trying again using additional -P option did the work: losetup -d /dev/loop0, losetup -P /dev/loop0 image and /dev/loop0pX devices were created.
    • These devices are then mountable as expected, like mount /dev/loop0p3 /mnt/x -t ntfs
1
David Miller

David Miller

Executive Financial & Market Analyst

David Miller brings 15 years of experience in global economics, personal finance strategy, and market dynamics. He specializes in turning complex economic trends into actionable insights for everyday readers.

Share this article
Twitter Facebook Pinterest