From c219fdffad3fa76c43824bee34d5fb424ff95b87 Mon Sep 17 00:00:00 2001 From: David Arnold Date: Tue, 27 Jul 2021 20:56:48 -0500 Subject: [PATCH] nixos/installer: force root fs type installer media can be used on top of existing host configs. In such scenarions, root fs types will already be defined. Before this change, this will inevitably lead to the following error: ```console error: The option `fileSystems./.fsType' has conflicting definition values: - In `/nix/store/2nl5cl4mf6vnldpbxhrbzfh0n8rsv9fm-source/DevOS/os/hardware/common.nix': "ext4" - In `/nix/store/jbch90yqx6gg1h3fq30jjj2b6h6jfjgs-source/nixos/modules/installer/cd-dvd/iso-image.nix': "tmpfs" ``` With this patch, the installers will override those values according to their own local requirement. Use `mkOverride 60` so that conscientious overriding specially targeted at the installer, e.g. with `mkForce` is still straight forward. --- nixos/modules/installer/cd-dvd/iso-image.nix | 6 +++++- nixos/modules/installer/netboot/netboot.nix | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/nixos/modules/installer/cd-dvd/iso-image.nix b/nixos/modules/installer/cd-dvd/iso-image.nix index d94af0b5bf74..f03845132476 100644 --- a/nixos/modules/installer/cd-dvd/iso-image.nix +++ b/nixos/modules/installer/cd-dvd/iso-image.nix @@ -654,7 +654,11 @@ in ]; fileSystems."/" = - { fsType = "tmpfs"; + # This module is often over-layed onto an existing host config + # that defines `/`. We use mkOverride 60 to override standard + # values, but at the same time leave room for mkForce values + # targeted at the image build. + { fsType = mkOverride 60 "tmpfs"; options = [ "mode=0755" ]; }; diff --git a/nixos/modules/installer/netboot/netboot.nix b/nixos/modules/installer/netboot/netboot.nix index 238ab6d0617b..f7543fdf4a23 100644 --- a/nixos/modules/installer/netboot/netboot.nix +++ b/nixos/modules/installer/netboot/netboot.nix @@ -30,7 +30,11 @@ with lib; else [ pkgs.grub2 pkgs.syslinux ]); fileSystems."/" = - { fsType = "tmpfs"; + # This module is often over-layed onto an existing host config + # that defines `/`. We use mkOverride 60 to override standard + # values, but at the same time leave room for mkForce values + # targeted at the image build. + { fsType = mkOverride 60 "tmpfs"; options = [ "mode=0755" ]; };