diff options
author | Ryan Lahfa <masterancpp@gmail.com> | 2023-10-21 18:04:13 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-21 18:04:13 +0100 |
commit | e6ade691a5d39144118357b39bc11505db715d89 (patch) | |
tree | 70422b14c254e5ee9addb3e531f1ee8cdd7c59f4 /nixos | |
parent | 68c8ffed7f2e200dda40baa11bd161f3142077ef (diff) | |
parent | 524714f7eaa37f599c978bc7cb6085934ca2c6b5 (diff) |
Merge pull request #259347 from ElvishJerricco/systemd-stage-1-zfs-sysusr-dependency
systemd 254: ZFS /usr fix with systemd-stage-1
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/tasks/filesystems/zfs.nix | 7 | ||||
-rw-r--r-- | nixos/tests/installer.nix | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index 7e7811fd3339b..082634ec9d010 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -90,12 +90,17 @@ let getPoolMounts = prefix: pool: let + poolFSes = getPoolFilesystems pool; + # Remove the "/" suffix because even though most mountpoints # won't have it, the "/" mountpoint will, and we can't have the # trailing slash in "/sysroot/" in stage 1. mountPoint = fs: escapeSystemdPath (prefix + (lib.removeSuffix "/" fs.mountPoint)); + + hasUsr = lib.any (fs: fs.mountPoint == "/usr") poolFSes; in - map (x: "${mountPoint x}.mount") (getPoolFilesystems pool); + map (x: "${mountPoint x}.mount") poolFSes + ++ lib.optional hasUsr "sysusr-usr.mount"; getKeyLocations = pool: if isBool cfgZfs.requestEncryptionCredentials then { hasKeys = cfgZfs.requestEncryptionCredentials; diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 3268a16967d75..5111cedf9256d 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -690,6 +690,9 @@ in { "zpool create rpool /dev/vda2", "zfs create -o mountpoint=legacy rpool/root", "mount -t zfs rpool/root /mnt", + "zfs create -o mountpoint=legacy rpool/root/usr", + "mkdir /mnt/usr", + "mount -t zfs rpool/root/usr /mnt/usr", "udevadm settle", ) ''; |