Как узнать, была ли загружена моя система как EFI / UEFI или BIOS?

83

Как определить, была ли загружена конкретная работающая система Ubuntu с использованием EFI / UEFI или BIOS?

    
задан Omega 11.07.2012 в 23:00
источник

3 ответа

92

Самый простой способ - проверить, существует ли /sys/firmware/efi . Он не появляется, если вы загрузили с использованием традиционного BIOS.

#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
    
ответ дан Colin Ian King 12.07.2012 в 20:11
источник
16
  

Устаревшие

     

Ниже приведен метод, который может не всегда работать. Вместо этого используйте ответ Колина на основе /sys/firmware/efi .

Очень легко узнать, загружена ли система в EFI (или нет, и в этом случае она должна быть BIOS):

Просто используйте dmesg | grep "EFI v"

  • Это вернет строку, подобную этой, если система была загружена с EFI:

    [ 0.000000] EFI v2.00 by American Megatrends
  • Или вернуть ничего, если это не так, и в этом случае он был загружен с BIOS

Пример использования сценария bash на основе кода выхода grep's :

...
dmesg | grep -q "EFI v"    # -q tell grep to output nothing
if [ $? -eq 0 ]      # check exit code; if 0 EFI, else BIOS
then
    echo "You are using EFI boot."
  else
    echo "You are using BIOS boot"
fi
...
  

Источник. Как определить, использует ли система EFI эмуляцию устаревшего BIOS или нет, а также дополнительную информацию о тестировании совместимости EFI и EFI, а также строки для ряда поставщиков / версий EFI, см. этой страницы с Ubuntu Developer Summit for Precise .

    
ответ дан izx 11.07.2012 в 23:36
1

Код Python, чтобы проверить, загружена ли система с UEFI или ROM BIOS:

import os,sys
def main():
    if(os.path.exists("/sys/firmware/efi")):
        print"\n\n System is booted with uefi!"
    else:
        print"\n\n System is booted with rom bios"
main()
sys.exit(0)
    
ответ дан Shruti B 11.10.2015 в 11:18