为什么 grub 的 os-prober 添加带有“linux”而不是“linuxefi”的条目

为什么 grub 的 os-prober 添加带有“linux”而不是“linuxefi”的条目

在我的系统上,我安装了两个 CentOS 7 副本和一个 Windows 10 Pro 副本。每个系统都可以启动并正常运行,并且完全是最新的(内核、软件包、功能)。

当我grub2-mkconfig在 CentOS 的任一副本中运行时(出于某些原因,一个主机名为pingu,另一个主机pinga名为 ),都会创建一个新的 grub 配置。其中一部分是通过 os-prober 模板生成的。

grub2-mkconfig我启动并启动的 CentOS 副本所生成的条目grub2-mkconfig from是正确的。也就是说,它们具有包含如下行的菜单条目:

linuxefi /vmlinuz-5.4.147-1.el7.elrepo.x86_64 root=/dev/mapper/pinga-root ro crashkernel=auto spectre_v2=retpoline
initrdefi /initramfs-5.4.147-1.el7.elrepo.x86_64.img

但是,为 CentOS 7 的另一个副本生成的条目将如下所示:

linux /vmlinuz-5.4.147-1.el7.elrepo.x86_64 root=/dev/mapper/pingu-root ro crashkernel=auto spectre_v2=retpoline
initrd /initramfs-5.4.147-1.el7.elrepo.x86_64.img

(请注意,用linuxandinitrd代替linuxefiand initrdefi

/etc/grub.d/30_os-prober我认为这是由于类似(etc.)中的四行所致linux ${LKERNEL} ${LPARAMS}- 但为什么会这样呢?为什么 os-prober 假设 Linux 的其他副本应该始终以linux而不是来启动linuxefi

我是否缺少一些可以解决此问题的设置或覆盖?

现在,我只是简单地将这些行改为30_os-prober具有linuxefiinitrdefi,但是感觉有点像是黑客行为。

相关内容