summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/modules.nix1
-rw-r--r--nixos/modules/installer/cd-dvd/installation-cd-base.nix9
-rw-r--r--nixos/modules/installer/cd-dvd/iso-image.nix19
-rw-r--r--nixos/modules/installer/netboot/netboot.nix12
4 files changed, 17 insertions, 24 deletions
diff --git a/lib/modules.nix b/lib/modules.nix
index ab2bc4f7f8e..b124ea000a2 100644
--- a/lib/modules.nix
+++ b/lib/modules.nix
@@ -710,6 +710,7 @@ rec {
 
   mkOptionDefault = mkOverride 1500; # priority of option defaults
   mkDefault = mkOverride 1000; # used in config sections of non-user modules to set a default
+  mkImageMediaOverride = mkOverride 60; # image media profiles can be derived by inclusion into host config, hence needing to override host config, but do allow user to mkForce
   mkForce = mkOverride 50;
   mkVMOverride = mkOverride 10; # used by ‘nixos-rebuild build-vm’
 
diff --git a/nixos/modules/installer/cd-dvd/installation-cd-base.nix b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
index ec837b432ce..618057618d0 100644
--- a/nixos/modules/installer/cd-dvd/installation-cd-base.nix
+++ b/nixos/modules/installer/cd-dvd/installation-cd-base.nix
@@ -30,11 +30,10 @@ with lib;
   # Add Memtest86+ to the CD.
   boot.loader.grub.memtest86.enable = true;
 
-  # On a fresh machine, before formatting, an installation
-  # media cannot assume an existing file system layout such
-  # as might be defined by the encapsulated host config.
-  swapDevices = mkOverride 60 [ ];
-  fileSystems = mkOverride 60 config.lib.isoFileSystems;
+  # An installation media cannot tolerate a host config defined file
+  # system layout on a fresh machine, before it has been formatted.
+  swapDevices = mkImageMediaOverride [ ];
+  fileSystems = mkImageMediaOverride config.lib.isoFileSystems;
 
   boot.postBootCommands = ''
     for o in $(</proc/cmdline); do
diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix
index 1f59e8cb34d..78cbf14bbaf 100644
--- a/nixos/modules/installer/cd-dvd/iso-image.nix
+++ b/nixos/modules/installer/cd-dvd/iso-image.nix
@@ -614,14 +614,11 @@ in
     };
 
   };
-  # store them in lib so we can set the same fileSystems with a
-  # higher prio on installation media
-  # This module is often over-layed onto an existing host config
-  # that defines `fileSystems`. We use mkOverride 60 to override
-  # standard values, but at the same time leave room for mkForce
-  # values targeted at the image build.
+
+  # store them in lib so we can mkImageMediaOverride the
+  # entire file system layout in installation media (only)
   config.lib.isoFileSystems = {
-    "/" = mkOverride 60
+    "/" = mkImageMediaOverride
       {
         fsType = "tmpfs";
         options = [ "mode=0755" ];
@@ -630,7 +627,7 @@ in
     # Note that /dev/root is a symlink to the actual root device
     # specified on the kernel command line, created in the stage 1
     # init script.
-    "/iso" = mkOverride 60
+    "/iso" = mkImageMediaOverride
       { device = "/dev/root";
         neededForBoot = true;
         noCheck = true;
@@ -638,20 +635,20 @@ in
 
     # In stage 1, mount a tmpfs on top of /nix/store (the squashfs
     # image) to make this a live CD.
-    "/nix/.ro-store" = mkOverride 60
+    "/nix/.ro-store" = mkImageMediaOverride
       { fsType = "squashfs";
         device = "/iso/nix-store.squashfs";
         options = [ "loop" ];
         neededForBoot = true;
       };
 
-    "/nix/.rw-store" = mkOverride 60
+    "/nix/.rw-store" = mkImageMediaOverride
       { fsType = "tmpfs";
         options = [ "mode=0755" ];
         neededForBoot = true;
       };
 
-    "/nix/store" = mkOverride 60
+    "/nix/store" = mkImageMediaOverride
       { fsType = "overlay";
         device = "overlay";
         options = [
diff --git a/nixos/modules/installer/netboot/netboot.nix b/nixos/modules/installer/netboot/netboot.nix
index adcaf9d1a33..28b6c39b29d 100644
--- a/nixos/modules/installer/netboot/netboot.nix
+++ b/nixos/modules/installer/netboot/netboot.nix
@@ -29,31 +29,27 @@ with lib;
           then []
           else [ pkgs.grub2 pkgs.syslinux ]);
 
-    # This module is often over-layed onto an existing host config
-    # that defines `fileSystems`. We use mkOverride 60 to override
-    # standard values, but at the same time leave room for mkForce
-    # values targeted at the image build.
-    fileSystems."/" = mkOverride 60
+    fileSystems."/" = mkImageMediaOverride
       { fsType = "tmpfs";
         options = [ "mode=0755" ];
       };
 
     # In stage 1, mount a tmpfs on top of /nix/store (the squashfs
     # image) to make this a live CD.
-    fileSystems."/nix/.ro-store" = mkOverride 60
+    fileSystems."/nix/.ro-store" = mkImageMediaOverride
       { fsType = "squashfs";
         device = "../nix-store.squashfs";
         options = [ "loop" ];
         neededForBoot = true;
       };
 
-    fileSystems."/nix/.rw-store" = mkOverride 60
+    fileSystems."/nix/.rw-store" = mkImageMediaOverride
       { fsType = "tmpfs";
         options = [ "mode=0755" ];
         neededForBoot = true;
       };
 
-    fileSystems."/nix/store" = mkOverride 60
+    fileSystems."/nix/store" = mkImageMediaOverride
       { fsType = "overlay";
         device = "overlay";
         options = [