我如何知道我的系统是以 EFI/UEFI 还是 BIOS 启动的?

我如何知道我的系统是以 EFI/UEFI 还是 BIOS 启动的?

如何确定正在运行的特定 Ubuntu 系统是使用 EFI/UEFI 还是 BIOS 启动的?

答案1

最简单的方法是检查是否/sys/firmware/efi存在。如果您使用传统 BIOS 启动,则不会出现。

#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

答案2

已弃用

以下答案是一种可能并不总是有效的方法。
相反,使用Colin 的回答基于/sys/firmware/efi


很容易判断系统是否在 EFI 中启动(如果是,则必须是BIOS):

只需使用dmesg | grep "EFI v"

  • 如果系统是从 EFI 启动的,这将返回如下一行:

    [ 0.000000] American Megatrends 的 EFI v2.00
  • 如果不是,则不返回任何内容,在这种情况下,它是从 BIOS 启动的

基于 bash 脚本用法的示例grep 的退出代码:

...
dmesg | grep -q "EFI v" # -q 告诉 grep 不输出任何内容
if [ $? -eq 0 ] # 检查退出代码;如果为 0 EFI,否则为 BIOS
然后
    echo "您正在使用 EFI 启动。"
  别的
    echo "您正在使用 BIOS 启动"
...

来源:有关如何确定 EFI 系统是否正在使用旧式 BIOS 模拟,以及有关测试 EFI 和 EFI 兼容性的更多信息,以及许多 EFI 供应商/版本的字符串,请参阅这是 Ubuntu 开发者峰会上的 Precise 页面

答案3

用于检查系统是否通过 UEFI 或 ROM BIOS 启动的 Python 代码:

导入操作系统,系统
定义主要():
    如果(os.path.存在(“/ sys / firmware / efi”)):
        print"\n\n系统已通过 uefi 启动!"
    别的:
        打印“\n\n系统已使用 rom bios 启动”
主要的()
系统.退出(0)

相关内容