GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
ZFS-MOUNT-GENERATOR(8) FreeBSD System Manager's Manual ZFS-MOUNT-GENERATOR(8)

zfs-mount-generator
generate systemd mount units for ZFS filesystems

/zfs-mount-generator

zfs-mount-generator is a systemd.generator(7) that generates native systemd.mount(5) units for configured ZFS datasets.

mountpoint=
legacy or none.
canmount=
off. Skipped if only noauto datasets exist for a given mountpoint and there's more than one. Datasets with yes take precedence over ones with noauto for the same mountpoint. Sets logical noauto flag if noauto. Encryption roots always generate zfs-load-key@root.service, even if off.
atime=, relatime=, devices=, exec=, readonly=, setuid=, nbmand=
Used to generate mount options equivalent to zfs mount.
encroot=, keylocation=
If the dataset is an encryption root, its mount unit will bind to zfs-load-key@root.service, with additional dependencies as follows:
keylocation=prompt
None, uses systemd-ask-password(1)
keylocation=https://URL (et al.)
Wants=, After=: network-online.target
keylocation=file://<path>
RequiresMountsFor=path
The service also uses the same Wants=, After=, Requires=, and RequiresMountsFor=, as the mount unit.
org.openzfs.systemd:requires=path[ path]…
Requires= for the mount- and key-loading unit.
org.openzfs.systemd:requires-mounts-for=path[ path]…
RequiresMountsFor= for the mount- and key-loading unit.
org.openzfs.systemd:before=unit[ unit]…
Before= for the mount unit.
org.openzfs.systemd:after=unit[ unit]…
After= for the mount unit.
org.openzfs.systemd:wanted-by=unit[ unit]…
noauto flag (see below). If not none, sets WantedBy= for the mount unit.
org.openzfs.systemd:required-by=unit[ unit]…
noauto flag (see below). If not none, sets RequiredBy= for the mount unit.
org.openzfs.systemd:nofail=(unset)|on|off
Waxes or wanes strength of default reverse dependencies of the mount unit, see below.
org.openzfs.systemd:ignore=on|off
on. Defaults to off.

Additionally, unless the pool the dataset resides on is imported at generation time, both units gain Wants=zfs-import.target and After=zfs-import.target.

Additionally, unless the logical noauto flag is set, the mount unit gains a reverse-dependency for local-fs.target of strength

(unset)
WantedBy= + Before=
on
WantedBy=
off
RequiredBy= + Before=

Because ZFS pools may not be available very early in the boot process, information on ZFS mountpoints must be stored separately. The output of
zfs list -Ho name,⟨every property above in order⟩
for datasets that should be mounted by systemd should be kept at /usr/local/etc/zfs/zfs-list.cache/poolname, and, if writeable, will be kept synchronized for the entire pool by the history_event-zfs-list-cacher.sh ZEDLET, if enabled (see zed(8)).

If the ZFS_DEBUG environment variable is nonzero (or unset and /proc/cmdline containsdebug”), print summary accounting information at the end.

To begin, enable tracking for the pool:
# touch /usr/local/etc/zfs/zfs-list.cache/poolname
Then enable the tracking ZEDLET:
# ln -s /usr/local/libexec/zfs/zed.d/history_event-zfs-list-cacher.sh /usr/local/etc/zfs/zed.d
# systemctl enable zfs-zed.service
# systemctl restart zfs-zed.service

If no history event is in the queue, inject one to ensure the ZEDLET runs to refresh the cache file by setting a monitored property somewhere on the pool:

# zfs set relatime=off poolname/dset
# zfs inherit relatime poolname/dset

To test the generator output:

$ mkdir /tmp/zfs-mount-generator
$ /zfs-mount-generator /tmp/zfs-mount-generator
If the generated units are satisfactory, instruct systemd to re-run all generators:
# systemctl daemon-reload

systemd.mount(5), systemd.target(5), zfs(5), systemd.generator(7), systemd.special(7), zed(8), zpool-events(8)
May 31, 2021 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 8 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.