Bagaimana saya bisa tahu apakah sistem saya di-boot sebagai EFI / UEFI atau BIOS?


Jawaban:



16

Usang

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 .


2
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)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.