summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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"