zfs: Relate import services to zfs-import.target instead of local-fs
Being wanted by and ordered before local-fs.target isn't strictly correct. And in systemd initrd, it's very incorrect because local-fs.target is for the initrd file system, not the real root file system.
This commit is contained in:
parent
ad274bf46a
commit
0ddc9d0250
1 changed files with 5 additions and 11 deletions
|
@ -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" ];
|
||||
})
|
||||
|
|
Loading…
Reference in a new issue