64 lines
2.7 KiB
Diff
64 lines
2.7 KiB
Diff
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||
|
From: Javier Martinez Canillas <javierm@redhat.com>
|
||
|
Date: Mon, 14 Oct 2019 17:37:26 +0200
|
||
|
Subject: [PATCH] blscfg: Don't hardcode an env var as fallback for the BLS
|
||
|
options field
|
||
|
|
||
|
If the BLS fragments don't have an options field or if this was set to an
|
||
|
environment variable that was not defined in the grubenv file, the blscfg
|
||
|
module searches for an default_kernelopts variable that is defined in the
|
||
|
grub.cfg file.
|
||
|
|
||
|
But the blscfg module shouldn't hardcode fallbacks variables and instead
|
||
|
this logic should be handled in the GRUB config file itself.
|
||
|
|
||
|
Also, add a comment explaining where the kernelopts variable is supposed
|
||
|
to be defined and what is the process for the user to change its value.
|
||
|
|
||
|
Resolves: rhbz#1710483
|
||
|
|
||
|
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
|
||
|
---
|
||
|
grub-core/commands/blscfg.c | 4 ----
|
||
|
util/grub.d/10_linux.in | 12 +++++++++++-
|
||
|
2 files changed, 11 insertions(+), 5 deletions(-)
|
||
|
|
||
|
diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c
|
||
|
index 1ec89870483..471975fd2e5 100644
|
||
|
--- a/grub-core/commands/blscfg.c
|
||
|
+++ b/grub-core/commands/blscfg.c
|
||
|
@@ -733,10 +733,6 @@ static void create_entry (struct bls_entry *entry)
|
||
|
|
||
|
title = bls_get_val (entry, "title", NULL);
|
||
|
options = expand_val (bls_get_val (entry, "options", NULL));
|
||
|
-
|
||
|
- if (!options)
|
||
|
- options = expand_val (grub_env_get("default_kernelopts"));
|
||
|
-
|
||
|
initrds = bls_make_list (entry, "initrd", NULL);
|
||
|
|
||
|
devicetree = expand_val (bls_get_val (entry, "devicetree", NULL));
|
||
|
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
|
||
|
index 0471464e68e..21a6915dca3 100644
|
||
|
--- a/util/grub.d/10_linux.in
|
||
|
+++ b/util/grub.d/10_linux.in
|
||
|
@@ -118,7 +118,17 @@ if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then
|
||
|
populate_header_warn
|
||
|
|
||
|
cat << EOF
|
||
|
-set default_kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||
|
+# The kernelopts variable should be defined in the grubenv file. But to ensure that menu
|
||
|
+# entries populated from BootLoaderSpec files that use this variable work correctly even
|
||
|
+# without a grubenv file, define a fallback kernelopts variable if this has not been set.
|
||
|
+#
|
||
|
+# The kernelopts variable in the grubenv file can be modified using the grubby tool or by
|
||
|
+# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX
|
||
|
+# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both
|
||
|
+# the kernelopts variable in the grubenv file and the fallback kernelopts variable.
|
||
|
+if [ -z "\${kernelopts}" ]; then
|
||
|
+ set kernelopts="root=${LINUX_ROOT_DEVICE} ro ${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}"
|
||
|
+fi
|
||
|
|
||
|
insmod blscfg
|
||
|
blscfg
|