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