В моей системе установлены две копии CentOS 7 и одна копия Windows 10 Pro. Каждая система загружается и работает правильно, и полностью обновлена (ядра, пакеты, работа).
Когда я бегу grub2-mkconfig
в любой копии CentOS (один хост с именем пингу
, другой пинга
, по причинам) создается новая конфигурация grub. Часть его генерируется через шаблон os-prober.
Записи, сгенерированные grub2-mkconfig
для копии CentOS, в которую я загрузился и начал grub2-mkconfig из
верны. То есть у них есть пункты меню с такими строками:
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
(Обратите внимание линукс
и initrd
вместо линуксфи
и initrdefi
)
Я думаю, это из-за четырех строк в /etc/grub.d/30_os-prober
нравиться линукс ${LKERNEL} ${LPARAMS}
(и т. д.) - но почему это так? Почему os-prober предполагает, что другие копии Linux всегда должны запускаться с линукс
вместо линуксфи
?
Я пропустил какую-то настройку или переопределение, которое исправило бы это?
На данный момент я просто изменил эти строки в 30_os-пробер
иметь линуксфи
и initrdefi
, но это больше похоже на взлом.