Jawaban di bawah adalah metode yang mungkin tidak selalu berhasil. Alih-alih gunakan jawaban Colin berdasarkan /sys/firmware/efi.
Sangat mudah untuk mengetahui apakah sistem di-boot di EFI (atau tidak, dalam hal ini harusnya BIOS):
Gunakan saja dmesg | grep "EFI v"
Ini akan mengembalikan garis seperti ini, jika sistem di-boot dari EFI:
[0,000000] EFI v2.00 oleh American Megatrends
Atau mengembalikan apa pun jika bukan, dalam hal ini boot dari BIOS
Contoh penggunaan skrip bash berdasarkan kode keluar grep :
...
dmesg | grep -q "EFI v" # -q beri tahu grep untuk tidak menghasilkan apa-apa
jika [$? -eq 0] # periksa kode keluar; jika 0 EFI, BIOS lain
kemudian
echo "Anda menggunakan boot EFI."
lain
echo "Anda menggunakan boot BIOS"
fi
...
Sumber: Untuk cara menentukan apakah sistem EFI menggunakan emulasi legacy-BIOS atau tidak, serta informasi lebih lanjut tentang pengujian kompatibilitas EFI dan EFI, bersama dengan string untuk sejumlah vendor / versi EFI, silakan lihat halaman ini dari KTT Pengembang Ubuntu untuk Precise .
Saya akan menyederhanakannya if dmesg | grep -Fq "EFI v"; then .... Tidak ada gunanya menjalankan [perintah di samping, hanya untuk menguji keberhasilan / kegagalan. $?terutama berguna untuk memeriksa kesalahan tertentu.
geirha
3
Ini rapuh, karena tidak ada jaminan bahwa string yang dicari dihasilkan oleh fitur yang diinginkan.
Thorbjørn Ravn Andersen
1
@izx, skrip apa pun dapat terjadi untuk menulis "EFI v" sebagai bagian dari sesuatu yang lain. Jika itu terjadi pada mesin BIOS, ini akan menjadi false positive.
Thorbjørn Ravn Andersen
2
Lebih baik tidak menerima teks dalam log kernel, itu dapat berubah. Terbaik untuk melihat / sys / firmware / efi
Colin Ian King
1
Namun saya ingin menyebutkan bahwa ini adalah cara terbaik untuk mendapatkan versi EFI!
Omega
0
Kode python untuk memeriksa apakah sistem di-boot dengan UEFI atau ROM BIOS:
impor os, sys
def main ():
if (os.path.exists ("/ sys / firmware / efi")):
print "\ n \ n Sistem di-boot dengan uefi!"
lain:
print "\ n \ n Sistem di-boot dengan rom bios"
utama()
sys.exit (0)
Jawaban:
Cara termudah adalah memeriksa untuk melihat apakah
/sys/firmware/efi
ada. Itu tidak muncul jika Anda boot menggunakan BIOS tradisional.sumber
Sangat mudah untuk mengetahui apakah sistem di-boot di EFI (atau tidak, dalam hal ini harusnya BIOS):
Gunakan saja
dmesg | grep "EFI v"
Ini akan mengembalikan garis seperti ini, jika sistem di-boot dari EFI:
Atau mengembalikan apa pun jika bukan, dalam hal ini boot dari BIOS
Contoh penggunaan skrip bash berdasarkan kode keluar grep :
sumber
if dmesg | grep -Fq "EFI v"; then ...
. Tidak ada gunanya menjalankan[
perintah di samping, hanya untuk menguji keberhasilan / kegagalan.$?
terutama berguna untuk memeriksa kesalahan tertentu.Kode python untuk memeriksa apakah sistem di-boot dengan UEFI atau ROM BIOS:
sumber