理解 grub.cfg 中 search.fs_uuid 行时遇到的问题

理解 grub.cfg 中 search.fs_uuid 行时遇到的问题

在学习和调整我的启动设置时,我仍然不明白我的驱动器的 EFI 分区上的 grub.cfg 中的内容:

search.fs_uuid <uuid> root hd8,gpt5
set prefix=($root)'/boot/grub'

我的直觉是,这会找到一个特定的 UUID,将其设置为 root,然后将 root 设置为 hd8,gpt5,然后使用该 root-var 设置设置前缀,以便在正确的位置找到 grub 加载程序。

现在 hd8、gpt5 和 uuid 是我的麻烦。我的驱动器带有此 grub.cfg 和 EFI 文件夹,在第五个分区上有 /boot/grub,并且是 gpt 驱动器 - 因此 gpt5 似乎没问题。

hd8 看起来很奇怪,因为我确实启动了这个驱动器,我本来希望它是 hd0。

我认为 uuid 应该是 gpt5 分区的 uuid,但也许这应该是驱动器的 uuid?!

有人能解释一下这里发生了什么吗? gpt 驱动器第五个分区上的 /boot/grub 的正确值应该是什么吗?谢谢!

答案1

hd8,gpt5只是 GRUB 的一个提示,在uuid多次找到时(多个分区具有相同的 UUID)使用它。

第一行的完整版本可能如下所示:

search --set=root --fs-uuid <uuid> --hint hd8,gpt5

在大多数情况下,可以安全地省略该提示(或修复为实际值,而不会导致系统无法启动的风险)。

答案2

ESP(EFI 分区)上的 grub.cfg 内容

ESP(EFI 分区)上的 grub.cfg 内容

UUID 是唯一的分区指南,如中所述UEFI 规范第 5 部分

正如您在图像中看到的,根分区有一个 16 字节的唯一 GUID,并且当 BIOS 在 ESP 中查找 bootmanger/bootloader/OS 加载器时,它会找到根分区。/boot/grub提到grub.cfg在加载 Ubuntu OS 的情况下加载 bootmanager/bootloader。

希望这个解释有帮助。

相关内容