我正在尝试为 RHEL 8 创建自定义安装 ISO。
在安装 ISO 上,目录中有 2 个文件EFI/BOOT/
:BOOT.conf
和grub.cfg
.该diff
命令没有显示两者之间有任何区别。我找不到任何讨论的地方BOOT.conf
。
在安装过程中它有什么用?而且,我是否必须grub.cfg
对进行同样的更改BOOT.conf
?
答案1
在 RHEL 9 安装介质上,此类重复不再存在:不再存在EFI/BOOT/BOOT.conf
,只有EFI/BOOT/grub.cfg
.
运行时grep -i BOOT.conf EFI/BOOT/*.efi
,没有命中,但运行时,在和grep -i grub.cfg EFI/BOOT/*.efi
中都找到了匹配项。它表明 GRUB EFI 二进制文件查找而不是查找.grubx64.efi
grubia32.efi
grub.cfg
BOOT.conf
此外,这些 GRUB*.efi
二进制文件是唯一有理由读取该grub.cfg
文件的文件,该文件定义了仅适用于从本地安装介质启动的启动菜单,因为内核启动选项inst.stage2=hd:LABEL=RHEL-8-8-0-BaseOS-x86_64
告诉 initramfs 中的安装程序代码查找本地具有特定卷标的磁盘/光盘。
基于上述所有内容,我的理论是,这BOOT.conf
只是用于创建安装映像的脚本中的一个小错误的结果。
目录的情况isolinux
似乎不同,因为isolinux.cfg
和grub.conf
文件的内容完全不同。
ISOLINUX 引导加载程序有自己的配置语法,它无法理解适用于 GRUB 的配置文件。
此外,该isolinux/grub.conf
文件比EFI/BOOT/grub.cfg
.其全部内容为:
#debug --graphics
default=1
splashimage=@SPLASHPATH@
timeout 60
hiddenmenu
title Install Red Hat Enterprise Linux 8.8
findiso
kernel @KERNELPATH@ @ROOT@ quiet
initrd @INITRDPATH@
title Test this media & install Red Hat Enterprise Linux 8.8
findiso
kernel @KERNELPATH@ @ROOT@ rd.live.check quiet
initrd @INITRDPATH@
注意变量@SPLASHPATH@
、@KERNELPATH@
和@ROOT@
:@INITRDPATH@
这看起来像用于创建非常简约的 GRUB 配置文件的模板用于启动基于 ISO9660 的安装介质。确实如此不是看起来像一个有效的 GRUB 配置文件。
也许 RedHat 也在测试使用 GRUB 作为引导加载程序以从安装介质进行基于 BIOS 的引导的可行性,但后来决定不这样做并继续使用 ISOLINUX,就像在以前的主要版本中一样?当流程更改时,用于创建 GRUB 配置的模板文件意外包含在isolinux
目录中?
从技术上讲,这将是一个错误,但由于该文件很小,并且在当前位置显然完全无效且无害,因此修复它的优先级非常低。