From 3754de550f8cb0d1b8f79b40d2865db07c8cdf53 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Sat, 13 Jun 2015 15:00:43 +0200 Subject: [PATCH 1/2] nixos/grub: allow customization of the nix store path --- nixos/modules/system/boot/loader/grub/grub.nix | 10 ++++++++++ nixos/modules/system/boot/loader/grub/install-grub.pl | 3 ++- 2 files changed, 12 insertions(+), 1 deletion(-) 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. From c3e832b323deced79b49ecf42a06714e2aa661e9 Mon Sep 17 00:00:00 2001 From: Luca Bruno Date: Sat, 13 Jun 2015 15:02:41 +0200 Subject: [PATCH 2/2] stage-1: mkdir -p /mnt-root, it may be created earlier by some hooks --- nixos/modules/system/boot/stage-1-init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh index 5af644279e5f..e8d276920a83 100644 --- a/nixos/modules/system/boot/stage-1-init.sh +++ b/nixos/modules/system/boot/stage-1-init.sh @@ -317,7 +317,7 @@ mountFS() { # Try to find and mount the root device. -mkdir /mnt-root +mkdir -p $targetRoot exec 3< @fsInfo@