![我如何知道我的系统是以 EFI/UEFI 还是 BIOS 启动的?](https://linux22.com/image/821189/%E6%88%91%E5%A6%82%E4%BD%95%E7%9F%A5%E9%81%93%E6%88%91%E7%9A%84%E7%B3%BB%E7%BB%9F%E6%98%AF%E4%BB%A5%20EFI%2FUEFI%20%E8%BF%98%E6%98%AF%20BIOS%20%E5%90%AF%E5%8A%A8%E7%9A%84%EF%BC%9F.png)
如何确定正在运行的特定 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)