The Z File System (zfs) has many sophisicated capabilities. This comes with need to learn new terms and command to manage it.
These are my notes on zfs to allow some basis management of zfs partitioned disks. As always notes are driven by my needs (which are simple) and not to provide lots and lots of information on the multitude of possible zfs scenarios.
Find the pools on a zfs partition
In this case you have an existing partitioned disk with zfs "pool" on it and need to mount it to copy files off a pool. So we need to first find what are the available pools.
- Look at this: "geom disk list"
- Look at the partition table, to confirm it has zfs partition: "gpart show ada1"
- Create a place to mount it: "mkdir /mnt/ZFS-ROOT"
--- --- What disk are connected ? --- $ geom disk list Geom name: ada0 Providers: 1. Name: ada0 Mediasize: 64424509440 (60G) Sectorsize: 512 Mode: r3w3e5 descr: QEMU HARDDISK ident: QM00001 rotationrate: unknown fwsectors: 63 fwheads: 16 Geom name: ada1 Providers: 1. Name: ada1 Mediasize: 64424509440 (60G) Sectorsize: 512 Mode: r0w0e0 descr: QEMU HARDDISK ident: QM00005 rotationrate: unknown fwsectors: 63 fwheads: 16 Geom name: cd0 Providers: 1. Name: cd0 Mediasize: 0 (0B) Sectorsize: 2048 Mode: r0w0e0 descr: QEMU QEMU DVD-ROM ident: (null) rotationrate: unknown fwsectors: 0 fwheads: 0 --- --- what partitions are on ada1 --- $ gpart show ada1 => 40 125829040 ada1 GPT (60G) 40 409600 1 efi (200M) 409640 2008 - free - (1.0M) 411648 4194304 2 freebsd-swap (2.0G) 4605952 121221120 3 freebsd-zfs (58G) 125827072 2008 - free - (1.0M) --- --- Create a place to mount a zfs pool (from root) --- # mkdir /mnt/ZFS-POOL --- --- What pools are available ? --- # zpool import pool: zroot id: 569129416606451842 state: ONLINE status: Some supported features are not enabled on the pool. (Note that they may be intentionally disabled if the 'compatibility' property is set.) 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: zroot ONLINE gptid/e0ef5988-91e7-11ea-b3f8-cfc9bb16dfc9 ONLINE
Mount a pool within zfs partition
In this case you have an existing partitioned disk with zfs "pool" on it and need to mount it to copy files off the pool. Example is have disk which has file systems from prior FreeBSD installation which has single root pool.
- Find available pools (as above), we are going to mount "zroot" read only
- Mount the existing root file system pool (read only): "zpool import zroot -d /dev -o readonly=on -R /mnt/ZFS-POOL"
--- --- Mount pool --- # zpool import zroot -d /dev -o readonly=on -R /mnt/ZFS-POOL --- --- see whats there ... --- # ls /mnt/ZFS-POOL tmp usr var zroot
References & Links:
ZFS History - on wikipedia of course. I looked up this as it was not clear exactly what FreeBSD zfs implementation is based on. Initially it was the Sun Solaris Open Source base, but appears to be converging onto OpenZFS.
Oracle ZFS Documentation - this is where Sun's ZFS went
"ZFS - How to mount a zfs partition" - this rather rambling and long discussion on trying to do something very simple prompted me to write my notes...
Picture - ZFS on FreeBSD from the OpenZFS page, see history above