at 16.09-beta 610 B view raw
1{ config, pkgs, ... }: 2 3{ 4 environment.systemPackages = [ pkgs.kexectools ]; 5 6 systemd.services."prepare-kexec" = 7 { description = "Preparation for kexec"; 8 wantedBy = [ "kexec.target" ]; 9 before = [ "systemd-kexec.service" ]; 10 unitConfig.DefaultDependencies = false; 11 serviceConfig.Type = "oneshot"; 12 path = [ pkgs.kexectools ]; 13 script = 14 '' 15 p=$(readlink -f /nix/var/nix/profiles/system) 16 if ! [ -d $p ]; then exit 1; fi 17 exec kexec --load $p/kernel --initrd=$p/initrd --append="$(cat $p/kernel-params) init=$p/init" 18 ''; 19 }; 20 21}