diff options
-rw-r--r-- | lib/modules.nix | 1 | ||||
-rw-r--r-- | nixos/modules/installer/cd-dvd/installation-cd-base.nix | 9 | ||||
-rw-r--r-- | nixos/modules/installer/cd-dvd/iso-image.nix | 19 | ||||
-rw-r--r-- | nixos/modules/installer/netboot/netboot.nix | 12 |
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 = [ |