|
NAME
SYNOPSIS parse-zfs.sh → dracut-cmdline.service
| ↓
| …
| ↓
\————————→ dracut-initqueue.service
| zfs-import-opts.sh
zfs-load-module.service ↓ | |
| | sysinit.target ↓ |
↓ | | zfs-import-scan.service ↓
zfs-import-scan.service ↓ ↓ | zfs-import-cache.service
| zfs-import-cache.service basic.target | |
\__________________| | ↓ ↓
↓ | zfs-load-key.sh
zfs-env-bootfs.service | |
↓ ↓ ↓
zfs-import.target → dracut-pre-mount.service
| ↑ |
| dracut-zfs-generator |
| _____________________/|
|/ ↓
| sysroot.mount ←——— dracut-zfs-generator
| |
| ↓
| initrd-root-fs.target ←— zfs-nonroot-necessities.service
| | |
| ↓ |
↓ dracut-mount.service |
zfs-snapshot-bootfs.service | |
| ↓ |
↓ … |
zfs-rollback-bootfs.service | |
| ↓ |
| /sysroot/{usr,etc,lib,&c.} ←———————————————————/
| |
| ↓
| initrd-fs.target
\______________________ |
\|
↓
export-zfs.sh initrd.target
| |
↓ ↓
dracut-shutdown.service …
|
↓
zfs-needshutdown.sh → initrd-cleanup.service
Compare dracut.bootup(7) for the full flowchart. DESCRIPTIONUnder dracut, booting with
ZFS-on-/ is facilitated by a
number of hooks in the Booting into a ZFS dataset requires mountpoint=/ to be set on the dataset containing the root filesystem (henceforth "the boot dataset") and at the very least either the bootfs property to be set to that dataset, or the root= kernel cmdline (or dracut drop-in) argument to specify it. All children of the boot dataset with canmount=on with mountpoints matching /etc, /bin, /lib, /lib??, /libx32, and /usr globs are deemed essential and will be mounted as well. zfs-mount-generator(8) is recommended for proper functioning of the system afterward (correct mount properties, remounting, &c.). CMDLINEStandard
Be careful about setting neither rootfstype=zfs
nor root=zfs:dataset — other
automatic boot selection methods, like
ZFS-specific
FILES
SEE ALSOdracut.bootup(7), zfsprops(7), zpoolprops(7), dracut-shutdown.service(8), systemd-fstab-generator(8), systemd-gpt-auto-generator(8), zfs-mount-generator(8), zgenhostid(8)
|