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-mkconfig
eine 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-mkconfig
fü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“ initrd
anstelle von linuxefi
„und initrdefi
“)
Ich denke, das liegt an vier Zeilen im /etc/grub.d/30_os-prober
Like linux ${LKERNEL} ${LPARAMS}
(usw.) - aber warum sollte das so sein? Warum geht os-prober davon aus, dass die anderen Kopien von Linux immer mit linux
statt 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-prober
have linuxefi
und geändert initrdefi
, aber das fühlt sich mehr als nur nach einem kleinen Hack an.