about summary refs log tree commit diff
path: root/nixos/modules/system
diff options
context:
space:
mode:
authorLinus Heckemann <git@sphalerite.org>2019-04-26 00:33:40 +0200
committerLinus Heckemann <git@sphalerite.org>2019-04-26 00:35:10 +0200
commit4d667685c24c3e99cc70156f3172d5ed5f2ceaa6 (patch)
treeef14dd1547213ff59094a07db239c1eca26bd955 /nixos/modules/system
parent2024421f047d43fa6e18893d595ec183be5fbdc0 (diff)
downloadnixlib-4d667685c24c3e99cc70156f3172d5ed5f2ceaa6.tar
nixlib-4d667685c24c3e99cc70156f3172d5ed5f2ceaa6.tar.gz
nixlib-4d667685c24c3e99cc70156f3172d5ed5f2ceaa6.tar.bz2
nixlib-4d667685c24c3e99cc70156f3172d5ed5f2ceaa6.tar.lz
nixlib-4d667685c24c3e99cc70156f3172d5ed5f2ceaa6.tar.xz
nixlib-4d667685c24c3e99cc70156f3172d5ed5f2ceaa6.tar.zst
nixlib-4d667685c24c3e99cc70156f3172d5ed5f2ceaa6.zip
nixos/kexec: don't clobber existing kexec-loaded kernel
Diffstat (limited to 'nixos/modules/system')
-rw-r--r--nixos/modules/system/boot/kexec.nix3
1 files changed, 3 insertions, 0 deletions
diff --git a/nixos/modules/system/boot/kexec.nix b/nixos/modules/system/boot/kexec.nix
index 61f9c6d0e7eb..ecbeea74ab8e 100644
--- a/nixos/modules/system/boot/kexec.nix
+++ b/nixos/modules/system/boot/kexec.nix
@@ -13,6 +13,9 @@
         path = [ pkgs.kexectools ];
         script =
           ''
+            # Don't load the current system profile if we already have a kernel loaded
+            [[ 1 = "$(</sys/kernel/kexec_loaded)" ]] && exit
+
             p=$(readlink -f /nix/var/nix/profiles/system)
             if ! [ -d $p ]; then exit 1; fi
             exec kexec --load $p/kernel --initrd=$p/initrd --append="$(cat $p/kernel-params) init=$p/init"