如何确定运行Ubuntu的系统是使用EFI/UEFI还是BIOS引导的?
最简单的方法是检查是否存在/sys/firmware/efi
。如果您使用传统的 BIOS 引导,它将不会显示。
#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
bash
。 - iruvar下面的答案是一种可能不总是有效的方法。
请改用基于/sys/firmware/efi
的Colin的答案。
[ 0.000000] EFI v2.00 by American Megatrends
... dmesg | grep -q "EFI v" # -q告诉grep不输出任何内容 if [ $? -eq 0 ] # 检查退出代码;如果为0,则表示EFI引导,否则为BIOS引导 then echo "您正在使用EFI引导。" else echo "您正在使用BIOS引导。" fi ...源自:若要确定 EFI 系统是否正在使用传统 BIOS 模拟,以及有关测试 EFI 和 EFI 兼容性的更多信息,以及一些 EFI 供应商/版本的字符串,请参阅 Ubuntu Developer Summit for Precise 的此页面。
if dmesg | grep -Fq "EFI v"; then ...
。没必要再运行[``]
命令来测试成功或失败。$?
主要用于检查特定错误。 - geirhals: 无法访问 '/etc/firmware':没有那个文件或目录
,但是 [0.000000] efi: EFI v2.60 by American Megatrends
。这是在Arch上的情况。 - Vorac/sys/firmware/efi
,而不是/etc/firmware
。你有检查过前者是否存在吗? - tgm1024--Monica was mistreated检查系统是否使用UEFI或ROM BIOS引导的Python代码:
import os, sys def main(): if os.path.exists("/sys/firmware/efi"): print("\n\n系统已使用UEFI引导!") else: print("\n\n系统已使用ROM BIOS引导") main() sys.exit(0)