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-21301
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 c2d08566dd
commit 72f15bdd89
2 changed files with 6 additions and 2 deletions

View File

@ -500,7 +500,7 @@ update_bls_fragment() {
if [[ -n $old_args ]]; then
opts="$(update_args "${old_args}" "${remove_args}" "${add_args}")"
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

View File

@ -1,6 +1,6 @@
Name: grubby
Version: 8.40
Release: 63%{?dist}
Release: 64%{?dist}
Summary: Command line tool for updating bootloader configs
License: GPLv2+
URL: https://github.com/rhinstaller/grubby
@ -131,6 +131,10 @@ current boot environment.
%{_mandir}/man8/*.8*
%changelog
* Wed Jan 10 2024 Marta Lewandowska <mlewando@redhat.com> - 8.40-64
- Do not overwrite all vars that start with GRUB_CMDLINE_LINUX
- Resolves: #RHEL-21301
* Tue Feb 21 2023 Marta Lewandowska <mlewando@redhat.com> - 8.40-63
- remove root= when not copying default
- Resolves: #2127453