diff --git a/modules/installer/grub/grub.nix b/modules/installer/grub/grub.nix index 97e5f12d048..73841b3778b 100644 --- a/modules/installer/grub/grub.nix +++ b/modules/installer/grub/grub.nix @@ -136,6 +136,14 @@ in ''; }; + ignoreDevicesCheck = mkOption { + default = false; + description = '' + (internal use) Don't throw an error when devices aren't given + useful for building nested child configurations + ''; + }; + splashImage = mkOption { default = if config.boot.loader.grub.version == 1 @@ -197,7 +205,7 @@ in boot.loader.grub.devices = optional (cfg.device != "") cfg.device; - system.build = mkAssert (cfg.devices != []) + system.build = mkAssert (cfg.devices != [] || cfg.ignoreDevicesCheck) "You must set the ‘boot.loader.grub.device’ option to make the system bootable." { menuBuilder = grubMenuBuilder; inherit grub; diff --git a/modules/system/activation/no-clone.nix b/modules/system/activation/no-clone.nix index 74df217a01a..c78086466d1 100644 --- a/modules/system/activation/no-clone.nix +++ b/modules/system/activation/no-clone.nix @@ -6,8 +6,9 @@ with pkgs.lib; { boot.loader.grub.device = mkOverrideTemplate 0 {} ""; - # undefined the obsolete name of the previous option. + # undefine the obsolete name of the previous option. boot.grubDevice = mkOverrideTemplate 0 {} pkgs.lib.mkNotdef; + boot.loader.grub.ignoreDevicesCheck = mkOverrideTemplate 0 {} true; nesting.children = mkOverrideTemplate 0 {} []; nesting.clone = mkOverrideTemplate 0 {} []; }