Warum fügt Grubs OS-Prober Einträge mit „linux“ statt „linuxefi“ hinzu?

Warum fügt Grubs OS-Prober Einträge mit „linux“ statt „linuxefi“ hinzu?

Auf meinem System sind zwei Kopien von CentOS 7 und eine Kopie von Windows 10 Pro installiert. Jedes System ist bootfähig, funktioniert einwandfrei und ist auf dem neuesten Stand (Kernel, Pakete usw.).

Wenn ich grub2-mkconfigeine der beiden CentOS-Kopien ausführe (ein Host heißt aus bestimmten Gründen pingu, der andere pinga), wird eine neue Grub-Konfiguration erstellt. Ein Teil davon wird durch die Vorlage os-prober generiert.

Die Einträge, die grub2-mkconfigfür die CentOS-Kopie, die ich gebootet und gestartet habe, generiert wurden grub2-mkconfig from, sind korrekt. Das heißt, sie haben Menüeinträge mit Zeilen wie diesen:

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

Für die andere Kopie von CentOS 7 generierte Einträge sehen jedoch folgendermaßen aus:

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

(beachten Sie das linux„und“ initrdanstelle von linuxefi„und initrdefi“)

Ich denke, das liegt an vier Zeilen im /etc/grub.d/30_os-proberLike linux ${LKERNEL} ${LPARAMS}(usw.) - aber warum sollte das so sein? Warum geht os-prober davon aus, dass die anderen Kopien von Linux immer mit linuxstatt mit gestartet werden sollten linuxefi?

Übersehe ich eine Einstellung oder Außerkraftsetzung, die das Problem beheben würde?

Vorerst habe ich diese Zeilen einfach in 30_os-proberhave linuxefiund geändert initrdefi, aber das fühlt sich mehr als nur nach einem kleinen Hack an.

verwandte Informationen