zfs:Add zfs.devNodes option for zpool import -d
This commit is contained in:
parent
cd7cfcc9a2
commit
9a82dd87f7
1 changed files with 17 additions and 2 deletions
|
@ -73,6 +73,21 @@ in
|
|||
'';
|
||||
};
|
||||
|
||||
devNodes = mkOption {
|
||||
type = types.path;
|
||||
default = "/dev";
|
||||
example = "/dev/disk/by-id";
|
||||
description = ''
|
||||
Name of directory from which to import ZFS devices.
|
||||
|
||||
Usually /dev works. However, ZFS import may fail if a device node is renamed.
|
||||
It should therefore use stable device names, such as from /dev/disk/by-id.
|
||||
|
||||
The default remains /dev for 15.09, due to backwards compatibility concerns.
|
||||
It will change to /dev/disk/by-id in the next NixOS release.
|
||||
'';
|
||||
};
|
||||
|
||||
forceImportRoot = mkOption {
|
||||
type = types.bool;
|
||||
default = true;
|
||||
|
@ -214,7 +229,7 @@ in
|
|||
done
|
||||
''] ++ (map (pool: ''
|
||||
echo "importing root ZFS pool \"${pool}\"..."
|
||||
zpool import -d /dev/disk/by-id -N $ZFS_FORCE "${pool}"
|
||||
zpool import -d ${cfgZfs.devNodes} -N $ZFS_FORCE "${pool}"
|
||||
'') rootPools));
|
||||
};
|
||||
|
||||
|
@ -255,7 +270,7 @@ in
|
|||
};
|
||||
script = ''
|
||||
zpool_cmd="${zfsUserPkg}/sbin/zpool"
|
||||
("$zpool_cmd" list "${pool}" >/dev/null) || "$zpool_cmd" import -d /dev/disk/by-id -N ${optionalString cfgZfs.forceImportAll "-f"} "${pool}"
|
||||
("$zpool_cmd" list "${pool}" >/dev/null) || "$zpool_cmd" import -d ${cfgZfs.devNodes} -N ${optionalString cfgZfs.forceImportAll "-f"} "${pool}"
|
||||
'';
|
||||
};
|
||||
in listToAttrs (map createImportService dataPools) // {
|
||||
|
|
Loading…
Reference in a new issue