2020-08-10 20:01:43 +00:00
|
|
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
2020-03-17 11:37:40 +00:00
|
|
|
From: Javier Martinez Canillas <javierm@redhat.com>
|
|
|
|
Date: Tue, 14 Jan 2020 17:41:29 +0100
|
2020-08-10 20:01:43 +00:00
|
|
|
Subject: [PATCH] blscfg: Always use the root variable to search for BLS
|
|
|
|
snippets
|
2020-03-17 11:37:40 +00:00
|
|
|
|
|
|
|
The boot and root variables are set by grub2-mkconfig to tell GRUB what
|
|
|
|
are the devices and partitions used as the EFI System Partition (ESP)
|
|
|
|
and to store the /boot directory (or used as the /boot mount point).
|
|
|
|
|
|
|
|
But the boot variable is not needed anymore, this was added because the
|
|
|
|
blscfg module used to search for the BLS snippets in the ESP, but was
|
|
|
|
later changed to always search for the BLS files in /boot even for EFI.
|
|
|
|
|
|
|
|
When doing that change, the logic was made backwards and so the boot
|
|
|
|
variable is wrongly used for legacy BIOS. This only works because this
|
|
|
|
is set to the same value as the root variable.
|
|
|
|
|
|
|
|
So the correct thing to do is to always use the root variable to search
|
|
|
|
the BLS snippets, since that is set to the partition that stores them.
|
|
|
|
|
|
|
|
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
|
|
|
|
---
|
|
|
|
grub-core/commands/blscfg.c | 6 ++----
|
|
|
|
1 file changed, 2 insertions(+), 4 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c
|
|
|
|
index 286a5b88d12..aa4e624905e 100644
|
|
|
|
--- a/grub-core/commands/blscfg.c
|
|
|
|
+++ b/grub-core/commands/blscfg.c
|
|
|
|
@@ -968,14 +968,12 @@ bls_load_entries (const char *path)
|
|
|
|
if (!devid) {
|
|
|
|
#ifdef GRUB_MACHINE_EMU
|
|
|
|
devid = "host";
|
|
|
|
-#elif defined(GRUB_MACHINE_EFI)
|
|
|
|
+#else
|
|
|
|
devid = grub_env_get ("root");
|
|
|
|
-#else
|
|
|
|
- devid = grub_env_get ("boot");
|
|
|
|
#endif
|
|
|
|
if (!devid)
|
|
|
|
return grub_error (GRUB_ERR_FILE_NOT_FOUND,
|
|
|
|
- N_("variable `%s' isn't set"), "boot");
|
|
|
|
+ N_("variable `%s' isn't set"), "root");
|
|
|
|
}
|
|
|
|
|
|
|
|
grub_dprintf ("blscfg", "opening %s\n", devid);
|