web-dev-qa-db-ja.com

システムがEFI / UEFIまたはBIOSとして起動したかどうかを確認するにはどうすればよいですか?

特定の実行中のUbuntuシステムがEFI/UEFIまたはBIOSを使用して起動されたかどうかを確認するにはどうすればよいですか?

119
Omega

最も簡単な方法は、/sys/firmware/efiが存在するかどうかを確認することです。従来のBIOSを使用して起動した場合は表示されません。

#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
131
Colin Ian King

非推奨

以下の答えは、常に機能するとは限らない方法です。
代わりに /sys/firmware/efiに基づくColinの回答 を使用します。


システムがEFIでブートされたかどうかを知るのは非常に簡単です(またはそうでない場合、mustBIOSである必要があります):

dmesg | grep "EFI v"を使用するだけです

  • システムがEFIから起動された場合、これは次のような行を返します。

    [0.000000] American MegatrendsによるEFI v2.00
  • そうでない場合は何も返さず、その場合はBIOSから起動されました

grepの終了コードに基づくbashスクリプトの使用例:

 ... 
 dmesg | grep -q "EFI v"#-q何も出力しないようにgrepに指示する
 if [$? -eq 0]#終了コードを確認します。 if 0 EFI、else BIOS 
 then 
 echo "EFIブートを使用しています。" 
 else 
 echo "BIOSブートを使用しています" 
 fi 
 ... 

出典:EFIシステムがレガシーBIOSエミュレーションを使用しているかどうかを判断する方法、およびEFIとEFIの互換性のテストに関する詳細、および多くのEFIベンダー/バージョンの文字列については、 Ubuntu Developer Summit for Preciseのこのページ

16
ish

システムが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)
0
Shruti B