This is an old revision of the document!


Mount Partitions in Disk Image

losetup partscan

If you have util-linux v2.21 or higher, you can now do this with losetup. Use the -P (–partscan) option to read the partition table and create device nodes for each partition.

Mounting

  1. Mount image as loop device
    # losetup -P /dev/loop0 rpool.img
  2. Finish
    # ls /dev/loop0* -l
    brw-rw---- 1 root disk   7, 0 Mar 26 13:36 /dev/loop0
    brw-rw---- 1 root disk 259, 2 Mar 26 13:36 /dev/loop0p1
    brw-rw---- 1 root disk 259, 3 Mar 26 13:36 /dev/loop0p9

Unmounting

  1. Unload loop device
    # losetup -d /dev/loop0

partprobe

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).

Mounting

  1. Mount image as loop device
    # losetup /dev/loop0 rpool.img
  2. Run partprobe
    # partprobe /dev/loop0
  3. Finish
    # ls /dev/loop0* -l
    brw-rw---- 1 root disk   7, 0 Mar 26 13:23 /dev/loop0
    brw-rw---- 1 root disk 259, 0 Mar 26 13:23 /dev/loop0p1
    brw-rw---- 1 root disk 259, 1 Mar 26 13:23 /dev/loop0p9

Unmounting

  1. Unload loop device
    # losetup -d /dev/loop0

kpartx

Mounting

  1. Mount image as loop device
    # losetup /dev/loop0 rpool.img
  2. List partitions in loop
    # kpartx -l /dev/loop0
    loop0p1 : 0 44019712 /dev/loop0 2048
    loop0p9 : 0 16384 /dev/loop0 44021760
  3. Create device mappings of partitions
    # kpartx -av /dev/loop0
    add map loop0p1 (252:0): 0 44019712 linear 7:0 2048
    add map loop0p9 (252:1): 0 16384 linear 7:0 44021760
  4. Finish
    # ls /dev/mapper/loop0* -l
    lrwxrwxrwx 1 root root       7 Mar 26 13:16 loop0p1 -> ../dm-0
    lrwxrwxrwx 1 root root       7 Mar 26 13:16 loop0p9 -> ../dm-1

Unmounting

  1. Disconnect the device map files using kpartx
    # kpartx -dv /dev/loop0
    del devmap : loop0p9
    del devmap : loop0p1
  2. Unload loop device
    # losetup -d /dev/loop0

losetup offset / sizelimit

Mounting

  1. Mount image as loop device
    # losetup /dev/loop0 rpool.img

Unmounting

  1. Unload loop device
    # losetup -d /dev/loop0