diff options
Diffstat (limited to 'nixpkgs/nixos/modules/tasks/filesystems.nix')
-rw-r--r-- | nixpkgs/nixos/modules/tasks/filesystems.nix | 45 |
1 files changed, 23 insertions, 22 deletions
diff --git a/nixpkgs/nixos/modules/tasks/filesystems.nix b/nixpkgs/nixos/modules/tasks/filesystems.nix index d68edd8d7d39..318740a44f4a 100644 --- a/nixpkgs/nixos/modules/tasks/filesystems.nix +++ b/nixpkgs/nixos/modules/tasks/filesystems.nix @@ -33,27 +33,27 @@ let mountPoint = mkOption { example = "/mnt/usb"; type = nonEmptyWithoutTrailingSlash; - description = "Location of the mounted the file system."; + description = lib.mdDoc "Location of the mounted the file system."; }; device = mkOption { default = null; example = "/dev/sda"; type = types.nullOr nonEmptyStr; - description = "Location of the device."; + description = lib.mdDoc "Location of the device."; }; fsType = mkOption { default = "auto"; example = "ext3"; type = nonEmptyStr; - description = "Type of the file system."; + description = lib.mdDoc "Type of the file system."; }; options = mkOption { default = [ "defaults" ]; example = [ "data=journal" ]; - description = "Options used to mount the file system."; + description = lib.mdDoc "Options used to mount the file system."; type = types.listOf nonEmptyStr; }; @@ -61,13 +61,13 @@ let default = [ ]; example = [ "/persist" ]; type = types.listOf nonEmptyWithoutTrailingSlash; - description = '' + description = lib.mdDoc '' List of paths that should be mounted before this one. This filesystem's - <option>device</option> and <option>mountPoint</option> are always + {option}`device` and {option}`mountPoint` are always checked and do not need to be included explicitly. If a path is added to this list, any other filesystem whose mount point is a parent of the path will be mounted before this filesystem. The paths do not need - to actually be the <option>mountPoint</option> of some other filesystem. + to actually be the {option}`mountPoint` of some other filesystem. ''; }; @@ -88,25 +88,25 @@ let default = null; example = "root-partition"; type = types.nullOr nonEmptyStr; - description = "Label of the device (if any)."; + description = lib.mdDoc "Label of the device (if any)."; }; autoFormat = mkOption { default = false; type = types.bool; - description = '' + description = lib.mdDoc '' If the device does not currently contain a filesystem (as - determined by <command>blkid</command>, then automatically + determined by {command}`blkid`, then automatically format it with the filesystem type specified in - <option>fsType</option>. Use with caution. + {option}`fsType`. Use with caution. ''; }; formatOptions = mkOption { default = ""; type = types.str; - description = '' - If <option>autoFormat</option> option is set specifies + description = lib.mdDoc '' + If {option}`autoFormat` option is set specifies extra options passed to mkfs. ''; }; @@ -114,7 +114,7 @@ let autoResize = mkOption { default = false; type = types.bool; - description = '' + description = lib.mdDoc '' If set, the filesystem is grown to its maximum size before being mounted. (This is typically the size of the containing partition.) This is currently only supported for ext2/3/4 @@ -125,7 +125,7 @@ let noCheck = mkOption { default = false; type = types.bool; - description = "Disable running fsck on this filesystem."; + description = lib.mdDoc "Disable running fsck on this filesystem."; }; }; @@ -203,7 +203,7 @@ in default = [ ]; example = [ "btrfs" ]; type = types.listOf types.str; - description = "Names of supported filesystem types."; + description = lib.mdDoc "Names of supported filesystem types."; }; boot.specialFileSystems = mkOption { @@ -219,7 +219,7 @@ in default = "5%"; example = "32m"; type = types.str; - description = '' + description = lib.mdDoc '' Size limit for the /dev tmpfs. Look at mount(8), tmpfs size option, for the accepted syntax. ''; @@ -229,7 +229,7 @@ in default = "50%"; example = "256m"; type = types.str; - description = '' + description = lib.mdDoc '' Size limit for the /dev/shm tmpfs. Look at mount(8), tmpfs size option, for the accepted syntax. ''; @@ -239,7 +239,7 @@ in default = "25%"; example = "256m"; type = types.str; - description = '' + description = lib.mdDoc '' Size limit for the /run tmpfs. Look at mount(8), tmpfs size option, for the accepted syntax. ''; @@ -279,8 +279,9 @@ in environment.etc.fstab.text = let - fsToSkipCheck = [ "none" "bindfs" "btrfs" "zfs" "tmpfs" "nfs" "vboxsf" "glusterfs" "apfs" ]; - skipCheck = fs: fs.noCheck || fs.device == "none" || builtins.elem fs.fsType fsToSkipCheck; + fsToSkipCheck = [ "none" "bindfs" "btrfs" "zfs" "tmpfs" "nfs" "vboxsf" "glusterfs" "apfs" "9p" "cifs" "prl_fs" "vmhgfs" ]; + isBindMount = fs: builtins.elem "bind" fs.options; + 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; swapOptions = sw: concatStringsSep "," ( @@ -352,7 +353,7 @@ in unitConfig.DefaultDependencies = false; # needed to prevent a cycle serviceConfig.Type = "oneshot"; }; - in listToAttrs (map formatDevice (filter (fs: fs.autoFormat) fileSystems)) // { + in listToAttrs (map formatDevice (filter (fs: fs.autoFormat && !(utils.fsNeededForBoot fs)) fileSystems)) // { # Mount /sys/fs/pstore for evacuating panic logs and crashdumps from persistent storage onto the disk using systemd-pstore. # This cannot be done with the other special filesystems because the pstore module (which creates the mount point) is not loaded then. "mount-pstore" = { |