如何检查 GRUB 是否处于 EFI 或 BIOS 模式?

如何检查 GRUB 是否处于 EFI 或 BIOS 模式?

grub shell 中是否有命令可以指示机器是否正在显示 EFI 或 BIOS 固件?

我在 2010 年的 Mac Pro 上使用 GRUB 2.00。这台电脑当然有 EFI 固件。但由于缺少 NVIDIA 显示驱动程序,我已经尝试了几天让它以 BIOS 模拟模式启动 Ubuntu。我的理解是,在 GRUB 运行时,已经做出了使用 EFI 或 BIOS 模拟的决定。那么我该如何从 GRUB 中进行检查呢?

答案1

从 GRUB 2.00 开始,假设 GRUB 运行良好,可以进入正常模式而不是救援模式,echo $grub_platformGRUB shell 将显示pc在 BIOS 模式和efiUEFI 模式下。

BIOS 构建对应于grub-pc包,而 UEFI 构建对应于grub-efi-amd64(或不太常见的grub-efi-ia32)包。

答案2

Grub2 实现了类似 shell 的语法。这将起作用:

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

相关内容