為什麼 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我認為這是由於類似的四行linux ${LKERNEL} ${LPARAMS}(等等) - 但為什麼會出現這種情況?為什麼 os-prober 假設 Linux 的其他副本應該總是以 開頭linux而不是linuxefi

我是否缺少一些可以解決此問題的設定或覆蓋?

現在,我只是將這些行更改為30_os-proberhaslinuxefiinitrdefi,但這感覺就像是駭客。

相關內容