如何确定正在运行的特定 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)