mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-12 04:35:41 +03:00
nixos/filesystems: don't silently ignore label when device is set (#361418)
This commit is contained in:
commit
74454e41a5
1 changed files with 4 additions and 3 deletions
|
@ -4,6 +4,8 @@ with lib;
|
||||||
with utils;
|
with utils;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
# https://wiki.archlinux.org/index.php/fstab#Filepath_spaces
|
||||||
|
escape = string: builtins.replaceStrings [ " " "\t" ] [ "\\040" "\\011" ] string;
|
||||||
|
|
||||||
addCheckDesc = desc: elemType: check: types.addCheck elemType check
|
addCheckDesc = desc: elemType: check: types.addCheck elemType check
|
||||||
// { description = "${elemType.description} (with check: ${desc})"; };
|
// { description = "${elemType.description} (with check: ${desc})"; };
|
||||||
|
@ -136,6 +138,8 @@ let
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
config.device = lib.mkIf (config.label != null) "/dev/disk/by-label/${escape config.label}";
|
||||||
|
|
||||||
config.options = let
|
config.options = let
|
||||||
inInitrd = utils.fsNeededForBoot config;
|
inInitrd = utils.fsNeededForBoot config;
|
||||||
in mkMerge [
|
in mkMerge [
|
||||||
|
@ -196,11 +200,8 @@ let
|
||||||
];
|
];
|
||||||
isBindMount = fs: builtins.elem "bind" fs.options;
|
isBindMount = fs: builtins.elem "bind" fs.options;
|
||||||
skipCheck = fs: fs.noCheck || fs.device == "none" || builtins.elem fs.fsType fsToSkipCheck || isBindMount fs;
|
skipCheck = fs: fs.noCheck || fs.device == "none" || builtins.elem fs.fsType fsToSkipCheck || isBindMount fs;
|
||||||
# https://wiki.archlinux.org/index.php/fstab#Filepath_spaces
|
|
||||||
escape = string: builtins.replaceStrings [ " " "\t" ] [ "\\040" "\\011" ] string;
|
|
||||||
in fstabFileSystems: { }: concatMapStrings (fs:
|
in fstabFileSystems: { }: concatMapStrings (fs:
|
||||||
(if fs.device != null then escape fs.device
|
(if fs.device != null then escape fs.device
|
||||||
else if fs.label != null then "/dev/disk/by-label/${escape fs.label}"
|
|
||||||
else throw "No device specified for mount point ‘${fs.mountPoint}’.")
|
else throw "No device specified for mount point ‘${fs.mountPoint}’.")
|
||||||
+ " " + escape fs.mountPoint
|
+ " " + escape fs.mountPoint
|
||||||
+ " " + fs.fsType
|
+ " " + fs.fsType
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue