diff --git a/nixos/modules/tasks/filesystems/zfs.nix b/nixos/modules/tasks/filesystems/zfs.nix index 72b937f3732b..e148446540bd 100644 --- a/nixos/modules/tasks/filesystems/zfs.nix +++ b/nixos/modules/tasks/filesystems/zfs.nix @@ -119,8 +119,8 @@ let "systemd-modules-load.service" "systemd-ask-password-console.service" ]; - wantedBy = (getPoolMounts prefix pool) ++ [ "local-fs.target" ]; - before = (getPoolMounts prefix pool) ++ [ "local-fs.target" ]; + requiredBy = getPoolMounts prefix pool ++ [ "zfs-import.target" ]; + before = getPoolMounts prefix pool ++ [ "zfs-import.target" ]; unitConfig = { DefaultDependencies = "no"; }; @@ -628,6 +628,8 @@ in force = cfgZfs.forceImportRoot; prefix = "/sysroot"; }) rootPools); + targets.zfs-import.wantedBy = [ "zfs.target" ]; + targets.zfs.wantedBy = [ "initrd.target" ]; extraBin = { # zpool and zfs are already in thanks to fsPackages awk = "${pkgs.gawk}/bin/awk"; @@ -739,15 +741,7 @@ in map createSyncService allPools ++ map createZfsService [ "zfs-mount" "zfs-share" "zfs-zed" ]); - systemd.targets.zfs-import = - let - services = map (pool: "zfs-import-${pool}.service") dataPools; - in - { - requires = services; - after = services; - wantedBy = [ "zfs.target" ]; - }; + systemd.targets.zfs-import.wantedBy = [ "zfs.target" ]; systemd.targets.zfs.wantedBy = [ "multi-user.target" ]; })