systemd-ask-password has a default timeout of 90 seconds, which means that dracut will fall back to the rescue shell 4.5 minutes after boot if no password is entered. This is undesirable when combined with, for example, unlocking remotely using dracut-sshd and systemd-tty-ask-password-agent. See also https://github.com/gsauthof/dracut-sshd#timeout and https://bugzilla.redhat.com/show_bug.cgi?id=868421. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Clemens Lang <neverpanic@gmail.com> Closes #14341 |
||
|---|---|---|
| .. | ||
| 02zfsexpandknowledge | ||
| 90zfs | ||
| .gitignore | ||
| Makefile.am | ||
| README.md | ||
Basic setup
- Install
zfs-dracut - Set
mountpoint=/for your root dataset (for compatibility,legacyalso works, but is not recommended for new installations):zfs set mountpoint=/ pool/dataset - Either (a) set
bootfs=on the pool to the dataset:zpool set bootfs=pool/dataset pool - Or (b) append
root=zfs:pool/datasetto your kernel cmdline. - Re-generate your initrd and update it in your boot bundle
Encrypted datasets have keys loaded automatically or prompted for.
If the root dataset contains children with mountpoint=s of /etc, /bin, /lib*, or /usr, they're mounted too.
For complete documentation, see dracut.zfs(7).
cmdline
-
root=Root dataset is… (empty) the first bootfs=afterzpool import -aNzfs:AUTO,zfs:,zfs(as above, but overriding other autoselection methods) ZFS=pool/datasetpool/datasetzfs:pool/dataset(as above) All
+es are replaced with spaces (i.e. to boot fromroot pool/data set, passroot=zfs:root+pool/data+set).The dataset can be at any depth, including being the pool's root dataset (i.e.
root=zfs:pool).rootfstype=zfsis equivalent toroot=zfs:AUTO,rootfstype=zfs root=pool/datasetis equivalent toroot=zfs:pool/dataset. -
spl_hostid: passed tozgenhostid -f, useful to override the/etc/hostidfile baked into the initrd. -
bootfs.snapshot,bootfs.snapshot=snapshot-name: enableszfs-snapshot-bootfs.service, which creates a snapshot$root_dataset@$(uname -r)(or, in the second form,$root_dataset@snapshot-name) after pool import but before the rootfs is mounted. Failure to create the snapshot is noted, but booting continues. -
bootfs.rollback,bootfs.rollback=snapshot-name: enableszfs-rollback-bootfs.service, which-Rfrolls back to$root_dataset@$(uname -r)(or, in the second form,$root_dataset@snapshot-name) after pool import but before the rootfs is mounted. Failure to roll back will fall down to the rescue shell. This has obvious potential for data loss: make sure your persistent data is not below the rootfs and you don't care about any intermediate snapshots. -
If both
bootfs.snapshotandbootfs.rollbackare set,bootfs.rollbackis ordered afterbootfs.snapshot. -
zfs_force,zfs.force,zfsforce: add-fto allzpool importinvocations. May be useful. Use with caution.