If /var/lib is a dataset not under <pool>/ROOT/<root_dataset>, as proposed
in the ubuntu root on zfs upstream guide
(https://github.com/zfsonlinux/zfs/wiki/Ubuntu-18.04-Root-on-ZFS), we end up
with a race where some services, like systemd-random-seed are writing under
/var/lib, while zfs-mount is called. zfs mount will then potentially fail
because of /var/lib isn't empty, and so, can't be mounted.
Order those 2 units for now (more may be needed) as we can't declare
virtually a provide mount point to match
"RequiresMountsFor=/var/lib/systemd/random-seed" from
systemd-random-seed.service.
The optional generator for zfs 0.8 fixes it, but it's not enabled by default
nor necessarily required.
Example:
- rpool/ROOT/ubuntu (mountpoint = /)
- rpool/var/ (mountpoint = /var)
- rpool/var/lib (mountpoint = /var/lib)
Both zfs-mount.service and systemd-random-seed.service are starting After=systemd-remount-fs.service. zfs-mount.service should be done before local-fs.target while systemd-random-seed.service should finish before sysinit.target (which is a later target).
Ideally, we would have a way for zfs mount -a unit to declare all paths or move systemd-random-seed after local-fs.target.
If /var/lib is a dataset not under <pool>/ ROOT/<root_ dataset> , as proposed /github. com/zfsonlinux/ zfs/wiki/ Ubuntu- 18.04-Root- on-ZFS), we end up sFor=/var/ lib/systemd/ random- seed" from random- seed.service.
in the ubuntu root on zfs upstream guide
(https:/
with a race where some services, like systemd-random-seed are writing under
/var/lib, while zfs-mount is called. zfs mount will then potentially fail
because of /var/lib isn't empty, and so, can't be mounted.
Order those 2 units for now (more may be needed) as we can't declare
virtually a provide mount point to match
"RequiresMount
systemd-
The optional generator for zfs 0.8 fixes it, but it's not enabled by default
nor necessarily required.
Example:
- rpool/ROOT/ubuntu (mountpoint = /)
- rpool/var/ (mountpoint = /var)
- rpool/var/lib (mountpoint = /var/lib)
Both zfs-mount.service and systemd- random- seed.service are starting After=systemd- remount- fs.service. zfs-mount.service should be done before local-fs.target while systemd- random- seed.service should finish before sysinit.target (which is a later target).
Ideally, we would have a way for zfs mount -a unit to declare all paths or move systemd-random-seed after local-fs.target.