特定の実行中のUbuntuシステムがEFI/UEFIまたはBIOSを使用して起動されたかどうかを確認するにはどうすればよいですか?
最も簡単な方法は、/sys/firmware/efi
が存在するかどうかを確認することです。従来のBIOSを使用して起動した場合は表示されません。
#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
非推奨
以下の答えは、常に機能するとは限らない方法です。
代わりに/sys/firmware/efi
に基づくColinの回答 を使用します。
システムがEFIでブートされたかどうかを知るのは非常に簡単です(またはそうでない場合、mustBIOSである必要があります):
dmesg | grep "EFI v"
を使用するだけです
システムがEFIから起動された場合、これは次のような行を返します。
[0.000000] American MegatrendsによるEFI v2.00
そうでない場合は何も返さず、その場合はBIOSから起動されました
... 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のこのページ 。
システムが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)