From 78a6caa5f808538a0fcae6d02f4eeb3dd2037be0 Mon Sep 17 00:00:00 2001 From: lassulus Date: Sat, 16 Apr 2022 19:09:22 +0200 Subject: [PATCH 1/2] nixosTests.kexec: better test if we are in a new system --- nixos/tests/kexec.nix | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/nixos/tests/kexec.nix b/nixos/tests/kexec.nix index 7e5cc010ef91..7238a9f58e09 100644 --- a/nixos/tests/kexec.nix +++ b/nixos/tests/kexec.nix @@ -1,5 +1,3 @@ -# Test whether fast reboots via kexec work. - import ./make-test-python.nix ({ pkgs, lib, ... }: { name = "kexec"; meta = with lib.maintainers; { @@ -18,13 +16,16 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { node2 = { modulesPath, ... }: { virtualisation.vlans = [ ]; + environment.systemPackages = [ pkgs.hello ]; imports = [ "${modulesPath}/installer/kexec/kexec-boot.nix" + "${modulesPath}/profiles/minimal.nix" ]; }; }; testScript = { nodes, ... }: '' + # Test whether reboot via kexec works. node1.wait_for_unit("multi-user.target") node1.succeed('kexec --load /run/current-system/kernel --initrd /run/current-system/initrd --command-line "$(&2 &", check_return=False) @@ -32,14 +33,17 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: { node1.connect() node1.wait_for_unit("multi-user.target") - # Check the machine with kexec-boot.nix profile boots up + # Check if the machine with kexec-boot.nix profile boots up node2.wait_for_unit("multi-user.target") node2.shutdown() # Kexec node1 to the toplevel of node2 via the kexec-boot script node1.succeed('touch /run/foo') + node1.fail('hello') node1.execute('${nodes.node2.config.system.build.kexecBoot}/kexec-boot', check_return=False) node1.succeed('! test -e /run/foo') + node1.succeed('hello') + node1.succeed('[ "$(hostname)" = "node2" ]') node1.shutdown() ''; From e097044b9209742dfd4b23dcb36726d531a44a65 Mon Sep 17 00:00:00 2001 From: lassulus Date: Mon, 18 Apr 2022 20:34:14 +0200 Subject: [PATCH 2/2] nixos/kexec-boot: auto-detect the right kernel name to support aarch64 --- nixos/modules/installer/kexec/kexec-boot.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/installer/kexec/kexec-boot.nix b/nixos/modules/installer/kexec/kexec-boot.nix index 95ab774468c1..2d062214efc2 100644 --- a/nixos/modules/installer/kexec/kexec-boot.nix +++ b/nixos/modules/installer/kexec/kexec-boot.nix @@ -40,7 +40,7 @@ } { name = "bzImage"; - path = "${config.system.build.kernel}/bzImage"; + path = "${config.system.build.kernel}/${config.system.boot.loader.kernelFile}"; } { name = "kexec-boot";