如何判断我的系统是否作为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)