Как определить, была ли загружена конкретная работающая система Ubuntu с использованием EFI / UEFI или BIOS?
Как определить, была ли загружена конкретная работающая система Ubuntu с использованием EFI / UEFI или BIOS?
Самый простой способ - проверить, существует ли /sys/firmware/efi
. Он не появляется, если вы загрузили с использованием традиционного BIOS.
#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
Устаревшие
Ниже приведен метод, который может не всегда работать. Вместо этого используйте ответ Колина на основе
/sys/firmware/efi
. р>
Очень легко узнать, загружена ли система в EFI (или нет, и в этом случае она должна быть BIOS):
Просто используйте dmesg | grep "EFI v"
Это вернет строку, подобную этой, если система была загружена с EFI:
[ 0.000000] EFI v2.00 by American Megatrends
Или вернуть ничего, если это не так, и в этом случае он был загружен с BIOS
... 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 .
Код 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)