#!/usr/bin/bash COMMAND="$1" KERNEL_VERSION="$2" BOOT_DIR_ABS="$3" KERNEL_IMAGE="$4" # skip if systemd-boot is used [ "$KERNEL_INSTALL_LAYOUT" = "bls" ] && exit 0 if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then exit 0 fi MACHINE_ID=$KERNEL_INSTALL_MACHINE_ID # with grub2 always /boot BOOT_ROOT="/boot" LOADER_ENTRIES="$BOOT_ROOT/loader/entries" [ -d "$LOADER_ENTRIES" ] || exit 0 [ "$COMMAND" = "add" ] || exit 0 ARCH=`uname -m` pushd "$LOADER_ENTRIES" &> /dev/null for f in `basename "$MACHINE_ID"`-*.conf; do # Skip non-files and rescue entries if [ ! -f "$f" -o "${f: -12}" == "-rescue.conf" ]; then continue fi # Skip boom managed entries if [[ "$f" =~ \w*-[0-9a-f]{7,}-.*-.*.conf ]]; then continue fi if grep -q '\(\s*grub_\)\|\($grub\)' "$f" && [ "${ARCH:0:4}" != "s390" ]; then # grub generated BLS entries detected and not on s390(x) where zipl is used, # there is high chance that variables in BLS entries will be supported (grub # extension is unsupported by zipl) grep -q '^\s*options\s\+.*\$tuned_params' "$f" || sed -i '/^\s*options\s\+/ s/\(.*\)/\1 \$tuned_params/' "$f" grep -q '^\s*initrd\s\+.*\$tuned_initrd' "$f" || sed -i '/^\s*initrd\s\+/ s/\(.*\)/\1 \$tuned_initrd/' "$f" else # BLS entries generated by some unsupported tool or on s390x, unpatch TuneD # variables which could be there from the previous TuneD versions grep -q '^\s*options\s\+.*\$tuned_params' "$f" && sed -i '/^\s*options\s\+/ s/\s\+\$tuned_params\b//g' "$f" grep -q '^\s*initrd\s\+.*\$tuned_initrd' "$f" && sed -i '/^\s*initrd\s\+/ s/\s\+\$tuned_initrd\b//g' "$f" fi done popd &> /dev/null exit 0