====== 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. Look at [[disk-image-mount-partition]] for more ways to mount patitions.
===== Mounting =====
- Mount image as loop device
# losetup /dev/loop0 rpool.img
- List partitions in loop
# kpartx -l /dev/loop0
loop0p1 : 0 44019712 /dev/loop0 2048
loop0p9 : 0 16384 /dev/loop0 44021760
- 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
- Create mount point
# mkdir /mnt/misa
- 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
# zpool import -R /mnt/misa -d /dev/mapper
pool: rpool
id: 3090542417815288870
state: ONLINE
status: Some supported features are not enabled on the pool.
action: The pool can be imported using its name or numeric identifier, though
some features will not be available without an explicit 'zpool upgrade'.
config:
rpool ONLINE
loop0 ONLINE
- With the id from previous result, we can import this pool with a new name ''misa''
# zpool import -o readonly=on -f -d /dev/mapper 3090542417815288870 misa -R /mnt/misa
- Done
# zpool status
pool: misa
state: ONLINE
status: Some supported features are not enabled on the pool. The pool can
still be used, but some features are unavailable.
action: Enable all features using 'zpool upgrade'. Once this is done,
the pool may no longer be accessible by software that does not support
the features. See zpool-features(5) for details.
scan: none requested
config:
NAME STATE READ WRITE CKSUM
misa ONLINE 0 0 0
loop0 ONLINE 0 0 0
errors: No known data errors
# zpool list
NAME SIZE ALLOC FREE EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT
misa 20.9G 716M 20.2G - 0% 3% 1.00x ONLINE /mnt/misa
# zfs list misa -r
NAME USED AVAIL REFER MOUNTPOINT
misa 716M 19.5G 96K /mnt/misa
misa/ROOT 533M 19.5G 96K none
misa/ROOT/ubuntu 533M 19.5G 533M /mnt/misa
misa/home 996K 19.5G 96K /mnt/misa/home
misa/home/root 900K 19.5G 900K /mnt/misa/root
misa/srv 96K 19.5G 96K /mnt/misa/srv
misa/var 179M 19.5G 96K /mnt/misa/var
misa/var/cache 174M 19.5G 174M /mnt/misa/var/cache
misa/var/lib 3.81M 19.5G 96K /mnt/misa/var/lib
misa/var/lib/mysql 3.72M 19.5G 3.72M /mnt/misa/var/lib/mysql
misa/var/log 1.09M 19.5G 1.09M /mnt/misa/var/log
misa/var/spool 96K 19.5G 96K /mnt/misa/var/spool
misa/var/tmp 120K 19.5G 120K /mnt/misa/var/tmp
===== Unmounting =====
- Export the pool
# zpool export misa
- Disconnect the device map files using kpartx
# kpartx -dv /dev/loop0
del devmap : loop0p9
del devmap : loop0p1
- Unload loop device
# losetup -d /dev/loop0
===== See Alsos =====
* https://groups.google.com/forum/#!topic/zfs-fuse/s2njFgkOfhg
* 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 loop}}