Merge pull request #60237 from mayflower/kexec-no-clobber
nixos/kexec: don't clobber existing kexec-loaded kernel
This commit is contained in:
commit
864f4f084a
@ -13,8 +13,18 @@
|
|||||||
path = [ pkgs.kexectools ];
|
path = [ pkgs.kexectools ];
|
||||||
script =
|
script =
|
||||||
''
|
''
|
||||||
|
# Don't load the current system profile if we already have a kernel loaded
|
||||||
|
if [[ 1 = "$(</sys/kernel/kexec_loaded)" ]] ; then
|
||||||
|
echo "kexec kernel has already been loaded, prepare-kexec skipped"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
p=$(readlink -f /nix/var/nix/profiles/system)
|
p=$(readlink -f /nix/var/nix/profiles/system)
|
||||||
if ! [ -d $p ]; then exit 1; fi
|
if ! [[ -d $p ]]; then
|
||||||
|
echo "Could not find system profile for prepare-kexec"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Loading NixOS system via kexec."
|
||||||
exec kexec --load $p/kernel --initrd=$p/initrd --append="$(cat $p/kernel-params) init=$p/init"
|
exec kexec --load $p/kernel --initrd=$p/initrd --append="$(cat $p/kernel-params) init=$p/init"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user