Ich denke nicht, dass es eine gute Idee ist, die aktuellen Befehlszeilenargumente wie jetzt zu verwenden. Ich empfehle, stattdessen die GRUB-Konfiguration zu überprüfen, vorausgesetzt, Sie haben GRUB eingerichtet. Mit dem grubby
Befehl können Sie die erforderlichen Informationen erhalten. Das genaue Ausgabeformat von grubby --info
ist etwas inkonsistent, reicht aber aus, um verwendbar zu sein.
# cat /usr/local/bin/kexec-load #!/bin/sh set -eu index=$(grubby --default-index) grubby --info="$index" | { IFS== while read field value do case $value in \"*\") eval "$field=$value" ;; *) eval "$field=\$value" ;; esac done unset IFS set -x kexec -l --initrd="$initrd" --append="root=$root $args" -- "$kernel" }
Hierbei wird nicht der aktuellste verfügbare Kernel verwendet, sondern der in Grub konfigurierte Kernel wird standardmäßig als Kernel verwendet. Sie verfügen bereits über Code, um den zuletzt installierten Kernel zu ermitteln, und Sie können den Code einfach ändern --info="$index"
, --info=$latestkernel
wenn Sie ihn stattdessen verwenden möchten.