Как узнать, загружаюсь ли я с помощью UEFI?

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


Если вы загрузились с использованием прошивки UEFI, а не с использованием После прошивки BIOS ваша система должна сделать переменные EFI NVRAM доступными в:

 /sys/firmware/efi/vars/ 

или

 /sys/firmware/efi/efivars/ 

При загрузке с использованием BIOS (или режима эмуляции BIOS UEFI firmware), то эти переменные недоступны.

Фактически, как указал @Santropedro, путь

 /sys/firmware/efi   

отсутствует при загрузке с использованием BIOS, что легче проверить.


Первый способ:

Хорошо, я загрузил свой UEFI, чтобы проверить. Первая подсказка в верхней части dmesg . Этого не должно появляться, если вы загружаетесь через BIOS:

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

Второй способ:

  $ sudo efibootmgrBootCurrent: 0000Timeout: 0 секундBootOrder: 0000Boot0000 * debian  

Если вы не являетесь, то должно появиться следующее:

  $ sudo efibootmgr Переменные EFI не поддерживаются в этой системе.  

Примечание что вам потребуется установить пакет efibootmgr. Вы также можете попытаться перечислить переменные EFI:

  $ efivar -l ... более 100 строк вывода ...  

Третий способ:

Проверьте, есть ли у вас /boot/efi :

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

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

При использовании любого из этих методов соответствующие записи не появляются, скорее всего, вы не используете UEFI.

3



Как узнать, была ли моя система загружена как 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

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

 ... dmesg |  grep -q "EFI v" # -q указать grep ничего не выводить if [$?  -eq 0] # проверить код выхода;  если 0 EFI, иначе BIOS, затем эхо «Вы используете загрузку EFI».  else echo "Вы используете загрузку BIOS" fi ... 

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

7


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

 import os, sysdef main (): if (os.path.exists ("/sys/firmware/efi")): print " n  n Система загружается с uefi!"  else: print " n  n Система загружается с ROM BIOS" main () sys.exit (0) 

Оцените статью
clickpad.ru
Добавить комментарий