Don't overwrite vars that start with GRUB_CMDLINE_LINUX

When updating args for ALL kernels, grubby clobbers all variables
in /etc/default/grub that start with GRUB_CMDLINE_LINUX and renders
that line multiple times, for each variable that exists. This breaks
using recovery mode. Fix so this doesn't happen anymore.

Resolves: #RHEL-12853
Signed-off-by: Marta Lewandowska <mlewando@redhat.com>
Signed-off-by: Nicolas Frayer <nfrayer@redhat.com>
This commit is contained in:
Marta Lewandowska 2024-01-11 10:07:32 +01:00 committed by Nicolas Frayer
parent 1c226c8702
commit 693ac2964d
2 changed files with 6 additions and 2 deletions

View File

@ -500,7 +500,7 @@ update_bls_fragment() {
if [[ -n $old_args ]]; then if [[ -n $old_args ]]; then
opts="$(update_args "${old_args}" "${remove_args}" "${add_args}")" opts="$(update_args "${old_args}" "${remove_args}" "${add_args}")"
opts="$(echo "$opts" | sed -e 's/\//\\\//g')" opts="$(echo "$opts" | sed -e 's/\//\\\//g')"
sed -i -e "s/^GRUB_CMDLINE_LINUX.*/GRUB_CMDLINE_LINUX=\\\"${opts}\\\"/" "${grub_etc_default}" sed -i -e "s/^GRUB_CMDLINE_LINUX=.*/GRUB_CMDLINE_LINUX=\\\"${opts}\\\"/" "${grub_etc_default}"
fi fi
fi fi

View File

@ -1,6 +1,6 @@
Name: grubby Name: grubby
Version: 8.40 Version: 8.40
Release: 48%{?dist} Release: 49%{?dist}
Summary: Command line tool for updating BootLoaderSpec files Summary: Command line tool for updating BootLoaderSpec files
License: GPLv2+ License: GPLv2+
URL: https://github.com/rhinstaller/grubby URL: https://github.com/rhinstaller/grubby
@ -169,6 +169,10 @@ current boot environment.
%{_mandir}/man8/*.8* %{_mandir}/man8/*.8*
%changelog %changelog
* Wed Jan 10 2024 Marta Lewandowska <mlewando@redhat.com> - 8.40-49
- Do not overwrite all vars that start with GRUB_CMDLINE_LINUX
- Resolves: #RHEL-12853
* Tue Feb 21 2023 Marta Lewandowska <mlewando@redhat.com> - 8.40-48 * Tue Feb 21 2023 Marta Lewandowska <mlewando@redhat.com> - 8.40-48
- Apply Marta's default args fix - Apply Marta's default args fix
- Resolves: #1900829 - Resolves: #1900829