diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix index 0b6333ab573b..e7494161cb38 100644 --- a/nixos/modules/system/boot/loader/grub/grub.nix +++ b/nixos/modules/system/boot/loader/grub/grub.nix @@ -36,6 +36,7 @@ let grubEfi = f grubEfi; grubTargetEfi = if cfg.efiSupport && (cfg.version == 2) then f (grubEfi.grubTarget or "") else ""; bootPath = args.path; + storePath = config.boot.loader.grub.storePath; efiSysMountPoint = if args.efiSysMountPoint == null then args.path else args.efiSysMountPoint; inherit (args) devices; inherit (efi) canTouchEfiVariables; @@ -163,6 +164,15 @@ in ''; }; + storePath = mkOption { + default = "/nix/store"; + type = types.str; + description = '' + Path to the Nix store when looking for kernels at boot. + Only makes sense when copyKernels is false. + ''; + }; + extraPrepareConfig = mkOption { default = ""; type = types.lines; diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl index fcf5871203d5..9db6249c450a 100644 --- a/nixos/modules/system/boot/loader/grub/install-grub.pl +++ b/nixos/modules/system/boot/loader/grub/install-grub.pl @@ -55,6 +55,7 @@ my $fsIdentifier = get("fsIdentifier"); my $grubEfi = get("grubEfi"); my $grubTargetEfi = get("grubTargetEfi"); my $bootPath = get("bootPath"); +my $storePath = get("storePath"); my $canTouchEfiVariables = get("canTouchEfiVariables"); my $efiSysMountPoint = get("efiSysMountPoint"); $ENV{'PATH'} = get("path"); @@ -210,7 +211,7 @@ sub GrubFs { my $grubBoot = GrubFs($bootPath); my $grubStore; if ($copyKernels == 0) { - $grubStore = GrubFs("/nix/store"); + $grubStore = GrubFs($storePath); } # Generate the header.