Есть ли в оболочке grub команда, которая будет указывать, если на компьютере установлена прошивка EFI или BIOS?
Я использую GRUB 2.00 на Mac Pro 2010 года. Этот компьютер, конечно, имеет прошивку EFI. Но я несколько дней пытался заставить его загрузить Ubuntu в режиме BIOS-эмуляции из-за отсутствия драйверов дисплея NVIDIA. Насколько я понимаю, ко времени работы GRUB решение об использовании эмуляции EFI или BIOS уже было принято. Так как я могу проверить из GRUB?
Начиная с GRUB 2.00, предполагая, что GRUB работает достаточно хорошо, чтобы перейти в обычный режим, а не в режим восстановления, «echo $ grub_platform» из оболочки GRUB покажет «pc» в режиме BIOS и «efi» в режиме UEFI.
Сборка BIOS соответствует пакету grub-pc, а сборка UEFI соответствует пакету grub-efi-amd64 (или, реже, grub-efi-ia32).
Grub2 реализует синтаксис, подобный оболочке. Это будет работать:
if test "${grub_platform}" = "pc"; then
menuentry 'XYZ' {
linux ${linux_params}
initrd ${initrd_params}
}
else
menuentry 'XYZ' {
linuxefi ${linux_params}
initrdefi ${initrd_params}
}
fi
# as well as
if [ "${grub_platform}" = "pc" ] ; then
fi
# or
if [ "${grub_platform}" = "pc" ]
then
fi