summary refs log tree commit diff
path: root/nixos/modules/system/boot/loader/grub/install-grub.pl
diff options
context:
space:
mode:
authorJoachim Fasting <joachifm@fastmail.fm>2018-06-07 14:23:37 +0200
committerJoachim Fasting <joachifm@fastmail.fm>2018-06-07 14:24:59 +0200
commit2be28b1df547fde6c5f12d840e7564d239545eef (patch)
tree6a5965b66751008f4d3dea7f40988e0f1381493f /nixos/modules/system/boot/loader/grub/install-grub.pl
parent01040d9c27cce96a095dffe8225e220fb8e8dbcc (diff)
downloadnixlib-2be28b1df547fde6c5f12d840e7564d239545eef.tar
nixlib-2be28b1df547fde6c5f12d840e7564d239545eef.tar.gz
nixlib-2be28b1df547fde6c5f12d840e7564d239545eef.tar.bz2
nixlib-2be28b1df547fde6c5f12d840e7564d239545eef.tar.lz
nixlib-2be28b1df547fde6c5f12d840e7564d239545eef.tar.xz
nixlib-2be28b1df547fde6c5f12d840e7564d239545eef.tar.zst
nixlib-2be28b1df547fde6c5f12d840e7564d239545eef.zip
Revert "Merge pull request #38263 from lopsided98/grub-initrd-secrets"
This reverts commit c06d7950f1b97abf510bc70bd2a2b0445e8d36f2, reversing
changes made to 4c25fbe338212f498a34d2a9b4c2072ac96c0e31.

See https://github.com/NixOS/nixpkgs/issues/41608
Diffstat (limited to 'nixos/modules/system/boot/loader/grub/install-grub.pl')
-rw-r--r--nixos/modules/system/boot/loader/grub/install-grub.pl30
1 files changed, 13 insertions, 17 deletions
diff --git a/nixos/modules/system/boot/loader/grub/install-grub.pl b/nixos/modules/system/boot/loader/grub/install-grub.pl
index ed0210d5645d..872261d0edfa 100644
--- a/nixos/modules/system/boot/loader/grub/install-grub.pl
+++ b/nixos/modules/system/boot/loader/grub/install-grub.pl
@@ -49,7 +49,7 @@ my $extraPrepareConfig = get("extraPrepareConfig");
 my $extraPerEntryConfig = get("extraPerEntryConfig");
 my $extraEntries = get("extraEntries");
 my $extraEntriesBeforeNixOS = get("extraEntriesBeforeNixOS") eq "true";
-my $initrdSecrets = get("initrdSecrets");
+my $extraInitrd = get("extraInitrd");
 my $splashImage = get("splashImage");
 my $configurationLimit = int(get("configurationLimit"));
 my $copyKernels = get("copyKernels") eq "true";
@@ -228,6 +228,13 @@ my $grubStore;
 if ($copyKernels == 0) {
     $grubStore = GrubFs($storePath);
 }
+my $extraInitrdPath;
+if ($extraInitrd) {
+    if (! -f $extraInitrd) {
+        print STDERR "Warning: the specified extraInitrd " . $extraInitrd . " doesn't exist. Your system won't boot without it.\n";
+    }
+    $extraInitrdPath = GrubFs($extraInitrd);
+}
 
 # Generate the header.
 my $conf .= "# Automatically generated.  DO NOT EDIT THIS FILE!\n";
@@ -347,23 +354,9 @@ sub addEntry {
 
     my $kernel = copyToKernelsDir(Cwd::abs_path("$path/kernel"));
     my $initrd = copyToKernelsDir(Cwd::abs_path("$path/initrd"));
-
-    # Include second initrd with secrets
-    if ($initrdSecrets) {
-      # Get last element of path
-      $initrd =~ /\/([^\/]+)$/;
-      my $initrdSecretsPath = "$bootPath/kernels/$1-secrets";
-      $initrd .= " $initrd-secrets";
-      my $oldUmask = umask;
-      # Make sure initrd is not world readable (won't work if /boot is FAT)
-      umask 0137;
-      my $initrdSecretsPathTemp = File::Temp::mktemp("$initrdSecretsPath.XXXXXXXX");
-      system("$path/append-initrd-secrets", $initrdSecretsPathTemp) == 0 or die "failed to create initrd secrets\n";
-      rename $initrdSecretsPathTemp, $initrdSecretsPath or die "failed to move initrd secrets into place\n";
-      umask $oldUmask;
-      $copied{$initrdSecretsPath} = 1;
+    if ($extraInitrd) {
+        $initrd .= " " .$extraInitrdPath->path;
     }
-
     my $xen = -e "$path/xen.gz" ? copyToKernelsDir(Cwd::abs_path("$path/xen.gz")) : undef;
 
     # FIXME: $confName
@@ -386,6 +379,9 @@ sub addEntry {
         if ($copyKernels == 0) {
             $conf .= $grubStore->search . "\n";
         }
+        if ($extraInitrd) {
+            $conf .= $extraInitrdPath->search . "\n";
+        }
         $conf .= "  $extraPerEntryConfig\n" if $extraPerEntryConfig;
         $conf .= "  multiboot $xen $xenParams\n" if $xen;
         $conf .= "  " . ($xen ? "module" : "linux") . " $kernel $kernelParams\n";