如果我在启用 GPT 的分区上使用 GRUB2,加载程序如何“知道”在哪里可以找到它的配置文件和其他第二阶段的文件?
注意:我发现了一些关于配置文件的提及,该文件与 GRUB 的 EFI 加载器位于同一文件夹中,并且包含从指定分区链式加载的“主要”配置文件,但这绝对不是真的 - 只有一个“东西”。 efi”文件。
最佳答案
有几种实际情况可能会发生这种情况:
grub-mkimage
(由 grub-install
调用)执行时决定的路径加载配置文件。 后者可能是您真正需要的功能 - 它是默认配置文件名(
grub.cfg
)、前缀(默认 /boot/grub
,但可以明确指定给 grub-mkimage
)和 grub 分区名称的组合前缀位于。如果我在当前工作站上运行
strings /boot/efi/EFI/debian/grubx64.efi | tail -1
,它会打印出存储值: (,gpt2)/boot/grub
,告诉 grubx64.efi
在 GPT 分区 2 的/boot/grub 中查找其配置文件。逗号前的位(GRUB 磁盘设备名称)被填充在运行时基于 grubx64.efi
图像本身是从哪个磁盘加载的。动态加载的模块也将在此位置下搜索,但在特定于架构/平台的目录中 - 在本例中为
/boot/grub/x86_64-efi
。关于boot - GRUB2 UEFI 加载程序如何知道在哪里查找配置文件(或第二阶段的文件所在的位置)?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35269943/