Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
topics:disk-image-mount-partition [2017/03/26 05:20]
orzfly
topics:disk-image-mount-partition [2017/03/26 06:15] (current)
orzfly [Mounting]
Line 1: Line 1:
 ====== Mount Partitions in Disk Image ====== ====== Mount Partitions in Disk Image ======
 +
 +  * [[#losetup_partscan]]: If you have util-linux v2.21 or higher (for example, Ubuntu 16.04).
 +  * [[#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).
 +  * [[#kpartx]]: ''apt install kpartx''
 +  * [[#losetup_offsetsizelimit]]: AlwaysWorks™
 +
 +===== 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.
 +
 +  * http://stackoverflow.com/a/15200862
 +==== Mounting ====
 +  - Mount image as loop device<code>
 +# losetup -P /dev/loop0 rpool.img
 +</code>
 +  - Finish<code>
 +# 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
 +</code>
 +
 +==== Unmounting ====
 +
 +  - Unload loop device<code>
 +# losetup -d /dev/loop0
 +</code>
 +
 +===== 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).
 +
 +  * https://superuser.com/a/345476
 +==== Mounting ====
 +  - Mount image as loop device<code>
 +# losetup /dev/loop0 rpool.img
 +</code>
 +  - Run partprobe<code>
 +# partprobe /dev/loop0
 +</code>
 +  - Finish<code>
 +# 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
 +</code>
 +
 +==== Unmounting ====
 +
 +  - Unload loop device<code>
 +# losetup -d /dev/loop0
 +</code>
  
 ===== kpartx ===== ===== kpartx =====
Line 19: Line 69:
 </code> </code>
   - Finish<code>   - Finish<code>
-# ls /dev/mapper -l +# ls /dev/mapper/loop0* -l
-total 0 +
-crw------- 1 root root 10, 236 Feb  7 17:52 control+
 lrwxrwxrwx 1 root root       7 Mar 26 13:16 loop0p1 -> ../dm-0 lrwxrwxrwx 1 root root       7 Mar 26 13:16 loop0p1 -> ../dm-0
 lrwxrwxrwx 1 root root       7 Mar 26 13:16 loop0p9 -> ../dm-1 lrwxrwxrwx 1 root root       7 Mar 26 13:16 loop0p9 -> ../dm-1
Line 27: Line 75:
  
 ==== Unmounting ==== ==== Unmounting ====
- 
  
   - Disconnect the device map files using kpartx<code>   - Disconnect the device map files using kpartx<code>
Line 38: Line 85:
 </code> </code>
  
-{{tag>disk-image loop kpartx}}+===== losetup offset / sizelimit ===== 
 +  * https://www.suse.com/communities/blog/accessing-file-systems-disk-block-image-files/ 
 +==== Mounting ==== 
 + 
 +  - Get partition details<code> 
 +# fdisk -l rpool.img 
 +Disk rpool.img: 21 GiB, 22548578304 bytes, 44040192 sectors 
 +Units: sectors of 1 * 512 = 512 bytes 
 +Sector size (logical/physical): 512 bytes / 512 bytes 
 +I/O size (minimum/optimal): 512 bytes / 512 bytes 
 +Disklabel type: gpt 
 +Disk identifier: B37248EB-F1D7-DA47-A42D-4C42AF20D328 
 + 
 +Device        Start      End  Sectors Size Type 
 +rpool.img1     2048 44021759 44019712  21G Solaris /usr & Apple ZFS 
 +rpool.img9 44021760 44038143    16384   8M Solaris reserved 1 
 +</code> 
 +  - Setup loop device<code bash> 
 +# losetup /dev/loop0 rpool.img --offset $((512 * 2048)) --sizelimit $((512 * 44019712)) 
 +</code> 
 +==== Unmounting ==== 
 + 
 +  - Unload loop device<code> 
 +# losetup -d /dev/loop0 
 +</code> 
 + 
 +{{tag>disk-image loop kpartx partprobe}}