54 lines
1.6 KiB
Bash
Executable file
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
|