43 lines
1.8 KiB
Diff
43 lines
1.8 KiB
Diff
|
From 79fa095319696a9e91ab35cc694cdf9919a3428f Mon Sep 17 00:00:00 2001
|
||
|
From: Javier Martinez Canillas <javierm@redhat.com>
|
||
|
Date: Mon, 22 Feb 2021 19:25:01 +0100
|
||
|
Subject: [PATCH] Determine GRUB directory relative path to use in config file
|
||
|
|
||
|
Currently Anaconda is only checking whether /boot/ is a mount point or not
|
||
|
to use the proper relative path to the GRUB directory. But there are more
|
||
|
cases than this, for example /boot/grub2 could be a symlink or a subvolume
|
||
|
in a btrfs filesystem.
|
||
|
|
||
|
Use the grub2-mkrelpath tool to figure out the actual relative path that
|
||
|
has to be used in the GRUB config file.
|
||
|
|
||
|
Resolves: rhbz#1928588
|
||
|
|
||
|
Signed-off-by: Javier Martinez Canillas <javierm@redhat.com>
|
||
|
---
|
||
|
pyanaconda/modules/storage/bootloader/efi.py | 7 ++++---
|
||
|
1 file changed, 4 insertions(+), 3 deletions(-)
|
||
|
|
||
|
diff --git a/pyanaconda/modules/storage/bootloader/efi.py b/pyanaconda/modules/storage/bootloader/efi.py
|
||
|
index 8c08b8c68d..425cb31954 100644
|
||
|
--- a/pyanaconda/modules/storage/bootloader/efi.py
|
||
|
+++ b/pyanaconda/modules/storage/bootloader/efi.py
|
||
|
@@ -173,10 +173,11 @@ class EFIGRUB(EFIBase, GRUB2):
|
||
|
with open(config_path, "w") as fd:
|
||
|
grub_dir = self.config_dir
|
||
|
fs_uuid = self.stage2_device.format.uuid
|
||
|
- mountpoint = self.stage2_device.format.mountpoint
|
||
|
|
||
|
- if mountpoint != "/" and grub_dir.startswith(mountpoint):
|
||
|
- grub_dir = grub_dir[len(mountpoint):]
|
||
|
+ grub_dir = util.execWithCapture("grub2-mkrelpath", [grub_dir],
|
||
|
+ root=conf.target.system_root)
|
||
|
+ if not grub_dir:
|
||
|
+ raise BootLoaderError("Could not get GRUB directory path")
|
||
|
|
||
|
fd.write("search --no-floppy --fs-uuid --set=dev %s\n" % fs_uuid)
|
||
|
fd.write("set prefix=($dev)%s\n" % grub_dir)
|
||
|
--
|
||
|
2.26.2
|
||
|
|