8352e9dfae
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,legacy
also 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/dataset
to 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 -aN
zfs:AUTO
,zfs:
,zfs
(as above, but overriding other autoselection methods) ZFS=pool/dataset
pool/dataset
zfs: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=zfs
is equivalent toroot=zfs:AUTO
,rootfstype=zfs root=pool/dataset
is equivalent toroot=zfs:pool/dataset
. -
spl_hostid
: passed tozgenhostid -f
, useful to override the/etc/hostid
file 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-Rf
rolls 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.snapshot
andbootfs.rollback
are set,bootfs.rollback
is ordered afterbootfs.snapshot
. -
zfs_force
,zfs.force
,zfsforce
: add-f
to allzpool import
invocations. May be useful. Use with caution.