No meu sistema, tenho duas cópias do CentOS 7 instaladas e uma cópia do Windows 10 Pro. Todo sistema é inicializável e funciona corretamente, e está totalmente atualizado (kernels, pacotes, obras).
Quando executo grub2-mkconfig
qualquer cópia do CentOS (um host chamado pingu
e o outro pinga
, por motivos), uma nova configuração do grub é criada. Parte dele é gerada através do modelo os-prober.
As entradas geradas grub2-mkconfig
para a cópia do CentOS em que inicializei e iniciei grub2-mkconfig from
estão corretas. Ou seja, eles possuem entradas de menu com linhas como estas:
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
No entanto, as entradas geradas para a outra cópia do CentOS 7 ficarão assim:
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
(observe o linux
e initrd
em vez de linuxefi
e initrdefi
)
Acho que isso se deve a quatro linhas semelhantes /etc/grub.d/30_os-prober
( linux ${LKERNEL} ${LPARAMS}
etc.) - mas por que seria esse o caso? Por que o os-prober assume que as outras cópias do Linux devem sempre ser iniciadas em linux
vez de linuxefi
?
Estou faltando alguma configuração ou substituição que resolveria isso?
Por enquanto, simplesmente mudei essas linhas 30_os-prober
para have linuxefi
e initrdefi
, mas isso parece mais do que um truque.