Как определить, была ли загружена конкретная работающая система 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 от American Megatrends
Или ничего не вернуть, если его не было, и в этом случае он был загружен из BIOS
... Dmesg | grep -q "EFI v" # -q сказать grep ничего не выводить если [$? -eq 0] # проверить код выхода; если 0 EFI, остальное BIOS тогда echo "Вы используете загрузку EFI." еще echo "Вы используете загрузку BIOS" фи ...
Источник: Чтобы узнать, использует ли система EFI устаревшую эмуляцию BIOS или нет, а также дополнительную информацию о тестировании на совместимость с EFI и EFI, а также строки для ряда поставщиков / версий EFI, см. Эту страницу на странице Ubuntu Developer Summit для точных .
if dmesg | grep -Fq "EFI v"; then ...
. Кроме того, нет смысла выполнять [
команду, просто для проверки на успех / неудачу. $?
в основном полезно для проверки конкретных ошибок.