When a pool is created, the pool is intrinsically tied to the host system. The host system maintains knowledge about the pool so that it can detect when the pool is otherwise unavailable. While useful for normal operation, this knowledge can prove a hindrance when booting from alternate media, or creating a pool on removable media. To solve this problem, ZFS provides an alternate root pool feature. An alternate root pool does not persist across system reboots, and all mount points are modified to be relative to the root of the pool.
The most common use for creating an alternate root pool is for use with
removable media. In these circumstances, users typically want a single file
system, and they want it to be mounted wherever they choose on the target
system. When an alternate root pool is created by using the
R
option,
the mount point of the root file system is automatically set to /
,
which is the equivalent of the alternate root itself.
In the following example, a pool called morpheus
is
created with /mnt
as the alternate root path:
#zpool create -R /mnt morpheus c0t0d0
#zfs list morpheus
NAME USED AVAIL REFER MOUNTPOINT morpheus 32.5K 33.5G 8K /mnt/
Note the single file system, morpheus
, whose mount
point is the alternate root of the pool, /mnt
. The mount
point that is stored on disk is /
and the full path to /mnt
is interpreted only in the context of the alternate root pool.
This file system can then be exported and imported under an arbitrary alternate
root pool on a different system.
Pools can also be imported using an alternate root. This feature allows for recovery situations, where the mount points should not be interpreted in context of the current root, but under some temporary directory where repairs can be performed. This feature also can be used when mounting removable media as described above.
In the following example, a pool called morpheus
is
imported with /mnt
as the alternate root path. This example
assumes that morpheus
was previously exported.
#zpool import -R /mnt morpheus
#zpool list morpheus
NAME SIZE USED AVAIL CAP HEALTH ALTROOT morpheus 33.8G 68.0K 33.7G 0% ONLINE /mnt #zfs list morpheus
NAME USED AVAIL REFER MOUNTPOINT morpheus 32.5K 33.5G 8K /mnt/morpheus