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:zfs-on-linux-mount-raw-pool-image [2017/03/25 18:10]
orzfly
topics:zfs-on-linux-mount-raw-pool-image [2017/03/26 05:19]
orzfly
Line 1: Line 1:
 ====== Mount RAW Pool Image with ZFS on Linux ====== ====== Mount RAW Pool Image with ZFS on Linux ======
  
-Suppose you have backed up a ZFS pool with ''dd'' so you want to get some data from ''rpool.img'' now.+Suppose you have backed up a ZFS pool with ''dd'' so you want to get some data from ''rpool.img'' now. Look at [[disk-image-mount-partition]] for more ways to mount patitions.
  
 ===== Mounting ===== ===== Mounting =====
  
-<code shell-session>+  - Mount image as loop device<code>
 # losetup /dev/loop0 rpool.img # losetup /dev/loop0 rpool.img
- +</code> 
-# kpartx -av /dev/loop0 +  List partitions in loop<code>
-add map loop0p1 (252:0): 0 44019712 linear 7:0 2048 +
-add map loop0p9 (252:1): 0 16384 linear 7:0 44021760 +
 # kpartx -l /dev/loop0 # kpartx -l /dev/loop0
 loop0p1 : 0 44019712 /dev/loop0 2048 loop0p1 : 0 44019712 /dev/loop0 2048
 loop0p9 : 0 16384 /dev/loop0 44021760 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> 
 +  - Create mount point<code>
 # mkdir /mnt/misa # mkdir /mnt/misa
 +</code> 
 +  - Try import the ZFS pool, but it will definitely fail because 1) my ''rpool.img'' is readonly 2) ''rpool'' is already used on my system<code>
 # zpool import -R /mnt/misa -d /dev/mapper # zpool import -R /mnt/misa -d /dev/mapper
    pool: rpool    pool: rpool
Line 29: Line 33:
         rpool       ONLINE         rpool       ONLINE
           loop0     ONLINE           loop0     ONLINE
 +</code> 
 +  - With the id from previous result, we can import this pool with a new name ''misa''<code>
 # zpool import -o readonly=on -f -d /dev/mapper 3090542417815288870 misa -R /mnt/misa # zpool import -o readonly=on -f -d /dev/mapper 3090542417815288870 misa -R /mnt/misa
 +</code> 
 +  - Done<code>
 # zpool status # zpool status
   pool: misa   pool: misa
Line 71: Line 77:
  
 ===== Unmounting ===== ===== Unmounting =====
-<code shell-session>+  - Export the pool<code>
 # zpool export misa # zpool export misa
 +</code> 
 +  - Disconnect the device map files using kpartx<code>
 # kpartx -dv /dev/loop0 # kpartx -dv /dev/loop0
 del devmap : loop0p9 del devmap : loop0p9
 del devmap : loop0p1 del devmap : loop0p1
 +</code> 
 +  - Unload loop device<code>
 # losetup -d /dev/loop0 # losetup -d /dev/loop0
 </code> </code>
Line 84: Line 92:
   * https://groups.google.com/forum/#!topic/zfs-fuse/s2njFgkOfhg   * https://groups.google.com/forum/#!topic/zfs-fuse/s2njFgkOfhg
   * http://thegeekdiary.com/solaris-zfs-how-to-import-2-pools-that-have-the-same-names/   * http://thegeekdiary.com/solaris-zfs-how-to-import-2-pools-that-have-the-same-names/
 +  * https://nfolamp.wordpress.com/2010/08/16/mounting-raw-image-files-and-kpartx/
  
 {{tag>zfs zfs-on-linux disk-image kpartx}} {{tag>zfs zfs-on-linux disk-image kpartx}}