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
Last revision Both sides next revision
topics:disk-image-mount-partition [2017/03/26 05:37]
orzfly
topics:disk-image-mount-partition [2017/03/26 05:58]
orzfly
Line 1: Line 1:
 ====== Mount Partitions in Disk Image ====== ====== Mount Partitions in Disk Image ======
  
-===== kpartx ===== +  * [[#losetup_partscan]]: If you have util-linux v2.21 or higher (for example, Ubuntu 16.04). 
-  * https://nfolamp.wordpress.com/2010/08/16/mounting-raw-image-files-and-kpartx/+  * [[#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 ==== ==== Mounting ====
- 
   - Mount image as loop device<code>   - Mount image as loop device<code>
-# losetup /dev/loop0 rpool.img +# losetup -P /dev/loop0 rpool.img
-</code> +
-  - List partitions in loop<code> +
-# kpartx -l /dev/loop0 +
-loop0p1 : 0 44019712 /dev/loop0 2048 +
-loop0p9 : 0 16384 /dev/loop0 44021760 +
-</code> +
-  - Create device mappings of partitions<code> +
-# 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+
 </code> </code>
   - Finish<code>   - Finish<code>
-# ls /dev/mapper/loop0* -l +# ls /dev/loop0* -l 
-lrwxrwxrwx 1 root root       7 Mar 26 13:16 loop0p1 -> ../dm-0 +brw-rw---- 1 root disk   7, 0 Mar 26 13:36 /dev/loop0 
-lrwxrwxrwx 1 root root       Mar 26 13:16 loop0p9 -> ../dm-1+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> </code>
  
 ==== Unmounting ==== ==== Unmounting ====
  
-  - Disconnect the device map files using kpartx<code> 
-# kpartx -dv /dev/loop0 
-del devmap : loop0p9 
-del devmap : loop0p1 
-</code> 
   - Unload loop device<code>   - Unload loop device<code>
 # losetup -d /dev/loop0 # losetup -d /dev/loop0
Line 59: Line 51:
 </code> </code>
  
-===== losetup partscan ===== +===== kpartx ===== 
-If you have util-linux v2.21 or higher, you can now do this with losetupUse the -P (--partscan) option to read the partition table and create device nodes for each partition.+  * https://nfolamp.wordpress.com/2010/08/16/mounting-raw-image-files-and-kpartx/ 
 +==== Mounting ====
  
-  * http://stackoverflow.com/a/15200862 
-==== Mounting ==== 
   - Mount image as loop device<code>   - Mount image as loop device<code>
-# losetup -P /dev/loop0 rpool.img+# losetup /dev/loop0 rpool.img 
 +</code> 
 +  - List partitions in loop<code> 
 +# kpartx -l /dev/loop0 
 +loop0p1 : 0 44019712 /dev/loop0 2048 
 +loop0p9 : 0 16384 /dev/loop0 44021760 
 +</code> 
 +  - Create device mappings of partitions<code> 
 +# 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
 </code> </code>
   - Finish<code>   - Finish<code>
-# ls /dev/loop0* -l +# ls /dev/mapper/loop0* -l 
-brw-rw---- 1 root disk   7, 0 Mar 26 13:36 /dev/loop0 +lrwxrwxrwx 1 root root       7 Mar 26 13:16 loop0p1 -> ../dm-0 
-brw-rw---- 1 root disk 259, 2 Mar 26 13:36 /dev/loop0p1 +lrwxrwxrwx 1 root root       Mar 26 13:16 loop0p9 -> ../dm-1
-brw-rw---- 1 root disk 259, 3 Mar 26 13:36 /dev/loop0p9+
 </code> </code>
  
 +==== Unmounting ====
 +
 +  - Disconnect the device map files using kpartx<code>
 +# kpartx -dv /dev/loop0
 +del devmap : loop0p9
 +del devmap : loop0p1
 +</code>
 +  - Unload loop device<code>
 +# losetup -d /dev/loop0
 +</code>
 +
 +===== 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>
 +  - Mount partition<code bash>
 +# losetup /dev/loop0 rpool.img --offset $((512 * 2048)) --sizelimit $((512 * 44019712))
 +</code>
 ==== Unmounting ==== ==== Unmounting ====