Managing ZFS Mount Points

By default, a ZFS file system is automatically mounted when it is
created. You can determine specific mount-point behavior for a file system as described in
this section.

You can also set the default mount point for a pool's dataset
at creation time by using zpool create's -m option. For more information about creating pools,
see Creating a ZFS Storage Pool.

All ZFS file systems are mounted by ZFS at boot time by
using the Service Management Facility's (SMF) svc://system/filesystem/local service. File systems are mounted under /path,
where path is the name of the file system.

You can override the default mount point by using the zfs set command to
set the mountpoint property to a specific path. ZFS automatically creates the specified
mount point, if needed, and automatically mounts the associated file system when the
zfs mount -a command is invoked, without requiring you to edit the /etc/vfstab file.

The mountpoint property is inherited. For example, if pool/home has the mountpoint
property set to /export/stuff, then pool/home/user inherits /export/stuff/user for its mountpoint property value.

To prevent a file system from being mounted, set the mountpoint property to
none. In addition, the canmount property can be used to control whether a
file system can be mounted. For more information about the canmount property, see
canmount Property.

File systems can also be explicitly managed through legacy mount interfaces by using
zfs set to set the mountpoint property to legacy. Doing so prevents ZFS from
automatically mounting and managing a file system. Legacy tools including the mount and
umount commands, and the /etc/vfstab file must be used instead. For more information
about legacy mounts, see Legacy Mount Points.

Automatic Mount Points

When you change the mountpoint property from legacy or none to a specific path, ZFS automatically mounts the file system.

If ZFS is managing a file system but it is currently unmounted, and the mountpoint property is changed, the file system remains unmounted.

Any dataset whose mountpoint property is not legacy is managed by ZFS.
In the following example, a dataset is created whose mount point is automatically
managed by ZFS:

When the mountpoint property is changed, the file system is automatically unmounted from
the old mount point and remounted to the new mount point. Mount-point directories
are created as needed. If ZFS is unable to unmount a file system
due to it being active, an error is reported, and a forced manual
unmount is necessary.

Legacy Mount Points

You can manage ZFS file systems with legacy tools by setting the
mountpoint property to legacy. Legacy file systems must be managed through the mount
and umount commands and the /etc/vfstab file. ZFS does not automatically mount legacy file
systems at boot time, and the ZFS mount and umount commands do
not operate on datasets of this type. The following examples show how to
set up and manage a ZFS dataset in legacy mode:

The device to fsck and fsck pass entries are set to - because the fsck command is
not applicable to ZFS file systems. For more information about ZFS data integrity,
see Transactional Semantics.

Mounting ZFS File Systems

ZFS automatically mounts file systems when file systems are created or when the
system boots. Use of the zfs mount command is necessary only when you need
to change mount options, or explicitly mount or unmount file systems.

The zfs mount command with no arguments shows all currently mounted file systems that
are managed by ZFS. Legacy managed mount points are not displayed. For example:

When a file system is mounted, it uses a set of mount
options based on the property values associated with the dataset. The correlation
between properties and mount options is as follows:

Table 6-4 ZFS Mount-Related Properties and Mount Options

Property

Mount Option

atime

atime/noatime

devices

devices/nodevices

exec

exec/noexec

nbmand

nbmand/nonbmand

readonly

ro/rw

setuid

setuid/nosetuid

xattr

xattr/noaxttr

The mount option nosuid is an alias for nodevices,nosetuid.

Using Temporary Mount Properties

If any of the mount options described in the preceding section are
set explicitly by using the-o option with the zfs mount command, the associated property value
is temporarily overridden. These property values are reported as temporary by the zfs get
command and revert back to their original values when the file system is
unmounted. If a property value is changed while the dataset is mounted, the
change takes effect immediately, overriding any temporary setting.

In the following example, the read-only mount option is temporarily set on the
tank/home/perrin file system. The file system is assumed to be unmounted.

# zfs mount -o ro tank/home/perrin

To temporarily change a property value on a file system that is
currently mounted, you must use the special remount option. In the following example, the
atime property is temporarily changed to off for a file system that is
currently mounted:

Unmounting ZFS File Systems

You can unmount ZFS file systems by using the zfs unmount subcommand. The unmount
command can take either the mount point or the file system name as
an argument.

In the following example, a file system is unmounted by its file
system name:

# zfs unmount tank/home/tabriz

In the following example, the file system is unmounted by its mount point:

# zfs unmount /export/home/tabriz

The unmount command fails if the file system is busy. To forcibly unmount
a file system, you can use the -f option. Be cautious when forcibly
unmounting a file system if its contents are actively being used. Unpredictable application
behavior can result.

Sharing and Unsharing ZFS File Systems

ZFS can automatically share file systems by setting the sharenfs property. Using this
property, you do not have to modify the /etc/dfs/dfstab file when a new
file system is shared. The sharenfs property is a comma-separated list of options
to pass to the share command. The value on is an alias for
the default share options, which provides read/write permissions to anyone. The value off
indicates that the file system is not managed by ZFS and can be
shared through traditional means, such as the /etc/dfs/dfstab file. All file systems whose
sharenfs property is not off are shared during boot.

Controlling Share Semantics

By default, all file systems are unshared. To share a new file
system, use zfs set syntax similar to the following:

# zfs set sharenfs=on tank/home/eschrock

The sharenfs property is inherited, and file systems are automatically shared on creation
if their inherited property is not off. For example:

Both tank/home/bricker and tank/home/tabriz are initially shared as writable because they inherit the
sharenfs property from tank/home. After the property is set to ro (read only), tank/home/tabriz
is shared as read-only regardless of the sharenfs property that is set for
tank/home.

Unsharing ZFS File Systems

Although most file systems are automatically shared or unshared during boot, creation, and
destruction, file systems sometimes need to be explicitly unshared. To do so, use
the zfs unshare command. For example:

# zfs unshare tank/home/tabriz

This command unshares the tank/home/tabriz file system. To unshare all ZFS file systems
on the system, you need to use the -a option.

# zfs unshare -a

Sharing ZFS File Systems

Most of the time, the automatic behavior of ZFS with respect to
sharing file system on boot and creation is sufficient for normal operations. If, for
some reason, you unshare a file system, you can share it again
by using the zfs share command. For example:

# zfs share tank/home/tabriz

You can also share all ZFS file systems on the system by
using the -a option.

# zfs share -a

Legacy Share Behavior

If the sharenfs property is set to off, then ZFS does not attempt
to share or unshare the file system at any time. This value enables
you to administer file system sharing through traditional means, such as the /etc/dfs/dfstab
file.

Unlike the legacy mount command, the legacy share and unshare commands can
still function on ZFS file systems. As a result, you can manually share
a file system with options that differ from the options of the sharenfs
property. This administrative model is discouraged. Choose to manage NFS shares either completely through
ZFS or completely through the /etc/dfs/dfstab file. The ZFS administrative model is designed
to be simpler and less work than the traditional model.