Вопрос Как узнать, загружена ли моя система как EFI / UEFI или BIOS?


Как определить, была ли загружена конкретная работающая система Ubuntu с использованием EFI / UEFI или BIOS?


102
2017-07-11 21:00


происхождения


Интересный вопрос. Не точный обман, но попробуйте ответить Вот, к аналогичному вопросу. - Tom Brossman
unix.stackexchange.com/questions/148356/... - Ciro Santilli 新疆改造中心 六四事件 法轮功


ответы:


Самый простой способ - проверить, можно ли /sys/firmware/efi существует. Он не появляется, если вы загрузились с использованием традиционного BIOS.

#!/bin/bash
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS

117
2017-07-12 18:11



Протестировано на QEMU 2.0.0, OVFM и Ubuntu 14.04: github.com/cirosantilli/runlinux/tree/... - Ciro Santilli 新疆改造中心 六四事件 法轮功
Работает на Ubuntu 16.04 и Fedora 24 - geek1011


Устаревшие

Ответ ниже - это метод, который может не всегда работать.
 Вместо этого используйте Ответ Колина основанный на /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, чтобы ничего не выводить
если [$? -eq 0] # проверить код выхода; если 0 EFI, иначе BIOS
тогда
    echo «Вы используете загрузку EFI».
  еще
    echo "Вы используете загрузку BIOS"
фи
...

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


16
2017-07-11 21:36



Я бы упростил это if dmesg | grep -Fq "EFI v"; then ..., Нет смысла запускать [ кроме того, просто чтобы проверить успех / неудачу. $? в основном полезен для проверки конкретных ошибок. - geirha
Это хрупкое, так как нет никакой гарантии, что искомая строка генерируется желаемой функцией. - Thorbjørn Ravn Andersen
@izx, любой скрипт может произойти, чтобы написать «EFI v» как часть чего-то другого. Если это произойдет на компьютере с BIOS, это будет ложным. - Thorbjørn Ravn Andersen
Лучше не использовать grep для текста в журнале ядра, он может быть изменен. Лучше всего посмотреть / sys / firmware / efi - Colin Ian King
Я хотел бы упомянуть, однако, что это отличный способ получить версию EFI! - Omega


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

import os, sys
def main ():
    если (os.path.exists ( "/ SYS / прошивки / EFI")):
        print "\ n \ n Система загружается с помощью uefi!"
    еще:
        print "\ n \ n Система загружается с помощью rom bios"
главный()
sys.exit (0)

1
2017-10-11 09:18