答案1
系统可以拥有 UEFI 固件,但仍以传统 BIOS 模式启动操作系统。在这种情况下,启动的操作系统无法确定硬件是否确实支持 UEFI,因为 BIOS 不向前兼容 UEFI。
如果有任何与 UEFI 相关的内容,您仍然可以查看固件接口,但这是特定于供应商的并且不一致。所以那边也没有明确的答案。
证明 x86(_64) 内核是从 UEFI 启动的规范方法:
$ dmesg | grep 'EFI v'
[ 0.000000] efi: EFI v2.31 by EDK II
内核将在以下位置打印这样的消息主要入口点EFI启动。内核通过 UEFI 启动当且仅当存在这样的消息。
其他信息性内容:
$ dmesg | grep 'efi: mem'
[ 0.000000] efi: mem00: type=7, attr=0xf, range=[0x0000000000000000-0x00000000000a0000) (0MB)
...
这是从 EFI 固件传递到内核的内存映射。
$ ls -F /sys/firmware/efi
efivars/ systab vars/
这些是与 EFI 相关的内核 ABI。efivars
(3.8+) 并且vars
是 EFI NVRAM 的内核 ABI,因此您可以使用它们更改启动选项。
但缺乏这些线索并不能证明该系统只是BIOS。
根据经验,最近的笔记本电脑都具有 UEFI 固件。最新的服务器正在迁移到 UEFI 固件。
编辑:rEFInd 的作者有更彻底的解释。步骤是一样的。
此外,Ubuntu 的固件测试套件可能会检测您的 UEFI 固件是否具有旧版 BIOS 的兼容性功能。虽然它没有解决在 BIOS 模式下检测支持 UEFI 的固件启动的问题。
答案2
当您进入“BIOS”(实际上是 EFI)时,可启动项列表中的一项应该是EFI启动提示,如果是UEFI系统。这有时称为 EFI shell。它很像 Unix 命令提示符的精简版本。通常您不希望它出现在启动列表中,但它在初始设置和故障排除过程中可能很有用。
我认为 UEFI 系统可以在没有该功能的情况下制作,但是您将放弃很多 EFI 的要素,嗯,EFI 这样做。