Як дізнатися, чи завантажую я за допомогою UEFI?


54

Я шукав, але не знайшов очевидного способу дізнатися, чи GRUB використовує UEFI у завантаженні системи, чи в режимі сумісності BIOS, або у повноцінному BIOS. Я знайшов лише методи Windows . Чи є щось у журналах завантаження GRUB або Kernel, що показує, чи використовую я UEFI, EFI або BIOS?


Не маю часу шукати відповідь, але останнім часом я багато займався вирішенням проблем UEFI. Цей сайт дуже корисний для розуміння UEFI. rodsbooks.com/refind/index.html
0xSheepdog

1
Я не хочу звучати розумно, але для чого встановлено прошивку машини?
ericx

1
@ericx це питання під висловом, що ви не знаєте, як це перевірити. Ось чому всі рішення можна робити за завантаженою системою.
Брайам

Відповіді:


34

Якщо ви завантажилися за допомогою програмного забезпечення UEFI на відміну від використання мікропрограмного забезпечення BIOS, тоді ваша система повинна зробити змінні EFI NVRAM доступними у:

/sys/firmware/efi/vars/

або

/sys/firmware/efi/efivars/

Під час завантаження за допомогою BIOS (або режиму емуляції BIOS прошивки UEFI) ці змінні недоступні.

Насправді, як вказував @Santropedro, шлях

/sys/firmware/efi

відсутня під час завантаження за допомогою BIOS, що легше перевірити.


+1 для методу, який набагато швидше і доходить до точки, а не залежно від конкретного рядкового виводу з мікропрограмного забезпечення або додаткових пакетів, які можуть не мати прямого значення в поточному завантаженні.
підкреслюй_

3
Що означає "змінні недоступні"? Досить перевірити, чи немає папок всередині: / sys / firmware / під назвою "efi"?
Сантропедро

@Santropedro - здається, що так і є. Я відредагую публікацію. Дякую.
garethTheRed

42

Перший метод:

Гаразд, я завантажив свою скриньку UEFI, щоб перевірити. Перший ключ, біля вершини dmesg. Це не повинно з’являтися, якщо ви завантажуєтесь через BIOS:

[    0.000000] efi: EFI v2.31 by American Megatrends
[    0.000000] efi:  ACPI=0xd8769000  ACPI 2.0=0xd8769000  SMBIOS=0xd96d4a98 
[    0.000000] efi: mem00: type=6, attr=0x800000000000000f, range=[0x0000000000000000-0x0000000000001000) (0MB)
⋮


Другий метод:

$ sudo efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000
Boot0000* debian

Якщо ви цього не зробите, то повинно з’явитися наступне:

$ sudo efibootmgr        

EFI variables are not supported on this system.

Зауважте, що вам доведеться встановити пакет efibootmgr. Ви також можете спробувати перерахувати змінні EFI:

$ efivar -l 
... over 100 lines of output ...


Третій метод:

Перевірте, чи є у вас /boot/efi:

$ df -h --local | grep /boot
/dev/sda2       229M   31M  187M  14% /boot
/dev/sda1       120M  250K  119M   1% /boot/efi

Всередині цього розділу повинні бути файли, які UEFI виконує для завантаження.

Якщо при використанні будь-якого з цих методів відповідні записи не відображаються, дуже ймовірно, що ви не використовуєте UEFI.


6
/boot/efiце лише деякий каталог, /bootа решта - це встановлені пакети - все, швидше за все, існуватиме в системі, яка була встановлена ​​в режимі UEFI, але тепер завантажується модулем підтримки сумісності. І все-таки, перший досить впевнений-вогонь ... Ви можете відключити кріплення ефіварфів за допомогою якоїсь параноїдальної опції.
mikeserv

@mikeserv /boot/efiє точка_монтірованіе , що я не впевнена , потреби бути встановлено , навіть якщо відношення до прошивці. так що так, сама наявність папки-заповнювача там мало нічого, і навіть якщо вона містить вміст, вони в даний час можуть не використовуватися.
підкреслюй_

1
Це рішення (90 відгуків) говорить про /sys/firmware/efiнадійний показник ... askubuntu.com/a/162896/479118 - так, можливо, що є більш надійним?
Френк Нокк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.