agama/live/live-root/usr/bin/kernel-cmdline-conf.sh
2026-08-01 08:47:13 +01:00

54 lines
1.6 KiB
Bash
Executable file

#! /bin/bash
# Script to clean kernel command line from agama specific parameters. Result is later used for bootloader proposal.
SOURCE="${1:-/proc/cmdline}"
TARGET="${2:-/run/agama/cmdline.d/kernel.conf}"
write_kernel_args() {
DIR=$(dirname "${TARGET}")
mkdir -p "$DIR"
# ensure that kernel cmdline line is created to avoid reading agama params
# if there is no kernel params
touch "${TARGET}"
# silence the "To read lines rather than words..." hint
# shellcheck disable=SC2013
for _i in $(cat "${SOURCE}"); do
case ${_i} in
# remove all agama kernel params
# Add here also all linuxrc supported parameters
LIBSTORAGE_* | YAST_* | inst* | agama* | live* | Y2* | ZYPP_* | autoyast*)
_found=1
;;
# remove the Kiwi PXE boot options or Live options
rd.kiwi.* | rd.live.* | ramdisk_size=* | initrd=* | BOOT_IMAGE=* | \
iso-scan/filename=* | brd.rd_nr=* | systemd.unit=*)
_found=1
;;
# remove the network configuration options
# https://man7.org/linux/man-pages/man7/dracut.cmdline.7.html
ip=* | rd.route=* | bootdev=* | BOOTIF=* | rd.bootif=* | nameserver=* | \
rd.peerdns=* | rd.neednet=* | vlan=* | bond=* | team=* | bridge=* | ifname=*)
_found=1
;;
# remove the HCN (Hybrid Cloud Network) options, they are only meaningful
# for the installation media, see the 99hcn dracut module
rd.hcn | rd.hcn=* | rd.hcn.*)
_found=1
;;
esac
if [ -z "$_found" ]; then
echo "Using boot parameter \"$_i\""
echo -n " $_i" >>"${TARGET}"
else
echo "Ignoring boot parameter \"$_i\""
fi
unset _found
done
return 0
}
write_kernel_args