如何判断我的系统是否作为EFI / UEFI或BIOS启动?
如何确定是否使用EFI / UEFI或BIOS引导了特定运行的Ubuntu系统?
最简单的方法是检查/sys/firmware/efi
存在。 如果使用传统BIOS启动,则不会出现此问题。
#!/bin/bash [ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
弃用
下面的答案是一种可能并不总是有效的方法。
而是使用基于/sys/firmware/efi
Colin的答案 。
很容易判断系统是否在EFI中启动(或者不是,在这种情况下它必须是BIOS):
只需使用dmesg | grep "EFI v"
dmesg | grep "EFI v"
-
如果系统从EFI启动,这将返回这样的一行:
[0.000000]美国大趋势的EFI v2.00
-
如果不是,则不返回任何内容,在这种情况下,它是从BIOS启动的
基于grep退出代码的bash脚本使用示例:
... dmesg | grep -q“EFI v”#-q告诉grep什么都不输出 如果[$? -eq 0] #check退出代码; if 0 EFI,否则BIOS 然后 echo“您正在使用EFI启动。” 其他 echo“你正在使用BIOS启动” 科幻 ...
来源:有关如何确定EFI系统是否使用旧版BIOS仿真,以及有关EFI和EFI兼容性测试的更多信息,以及许多EFI供应商/版本的字符串,请参阅此页面Ubuntu精确的开发者峰会 。
用于检查系统是否使用UEFI或ROM BIOS引导的Python代码:
import os,sys def main(): 如果(os.path.exists( “/ SYS /固件/ EFI”)): 打印“\ n \ n系统是用uefi启动的!” 其他: 打印“\ n \ n使用rom bios启动系统” 主要() sys.exit(0)