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:37]
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 ======
  
-===== 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>
 +  - Setup loop device<code bash>
 +# losetup /dev/loop0 rpool.img --offset $((512 * 2048)) --sizelimit $((512 * 44019712))
 +</code>
 ==== Unmounting ==== ==== Unmounting ====