UEFI 系统上的 grub2 配置文件是否有不同的文件位置?

UEFI 系统上的 grub2 配置文件是否有不同的文件位置?

我们的旧脚本之一在两个不同的位置查找 grub.conf 文件:一个是“默认”,另一个是 UEFI

if [ -f /boot/grub/grub.conf ] ; then     
    GRUB_CONF_FILE=/boot/grub/grub.conf
elif [ -f /boot/efi/EFI/redhat/grub.conf ] ; then
    GRUB_CONF_FILE=/boot/efi/EFI/redhat/grub.conf

该脚本现在正在更新以支持使用 grub2,但我不确定是否/在哪里需要查找 /etc/default/grub 和 /boot/grub2/grub.cfg 以及 /etc/grub.d

如果有些措辞不好,我很抱歉。我以前从未享受过玩这些有趣的靴子的乐趣,其中很多对我来说都是新的

答案1

这取决于您如何安装 grub。当然,如果您将其安装在 EFI 系统分区 (ESP) 上,那么这取决于您安装它的位置。在您的脚本的特定情况下,看起来可能期望将 ESP 安装在 /boot/efi 上,并且 /EFI/redhat 目录设置为包含基于 BIOS 的 /boot 中通常包含的内容系统。如果这是正确的,只需在 BIOS 系统上获取 grub2.conf 的位置,并将 /boot 前缀替换为 /boot/efi/EFI/redhat,您就会得到答案,即 /boot/efi/EFI/redhat/grub2 /grub2.conf。 (请注意,/etc/default/grub 不会移​​动,因为它仅用于生成 grub 配置,而不会在启动时使用。)

至少还有两种其他常见的设置 ESP 的方法。一种是将 ESP 直接挂载到 /boot 上。优点是您可以安装 grub 和内核之类的东西,而不必担心 BIOS/UEFI 的区别。缺点是你现在正在用各种特定于 Linux 的文件(例如内核)污染 ESP 的根目录(理论上它是独立于操作系统的),而将所有这些文件放在一个地方会更整洁,例如在 /EFI/redhat 下。

我喜欢的方法(这只是我的意见)是将 ESP 挂载到它自己的目录 (/esp) 上,然后将 ESP 的子目录绑定挂载到 /boot 上。这样您就可以获得整洁的 ESP 的优势以及现有工具在 /boot 中找到所需内容的优势。缺点是 fstab 稍微复杂一些,并且 /boot(FAT 文件系统)中不能有符号链接。以下是具有此设置的计算机上的 /etc/fstab 文件的片段:

/dev/sda2               /esp            vfat            rw,nosuid,nodev,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro       0 2
/esp/EFI/redhat         /boot           none            rw,nosuid,nodev,bind    0 0

相关内容