Як визначити, чи було завантажено певну працюючу систему 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 американськими мегатрендами
Або нічого не повертати, якщо його не було, в такому випадку він був завантажений з BIOS
...
dmesg | grep -q "EFI v" # -q скажіть grep нічого не виводити
якщо [$? -eq 0] # перевірити код виходу; якщо 0 EFI, інакше BIOS
тоді
echo "Ви використовуєте завантаження EFI."
ще
echo "Ви використовуєте завантаження BIOS"
фі
...
Джерело: Про те, як визначити, чи використовує система EFI старі емуляції BIOS чи ні, а також додаткову інформацію про тестування на сумісність із EFI та EFI, а також рядки для ряду постачальників / версій EFI, перегляньте цю сторінку на саміт розробників Ubuntu для точних .
if dmesg | grep -Fq "EFI v"; then .... Крім того, немає сенсу виконувати [команду, а лише перевірити на успіх / невдачу. $?в основному корисний для перевірки на наявність конкретних помилок.