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

Когда это произошло со мной, потому что процесс обновления имел «слишком много ошибок» (что бы это ни значило), я сделал следующее.

Загрузите режим восстановления любого ядра, которое все еще работает. Ваш раздел / будет установлен как доступный только для чтения, поскольку вы загрузились в режиме восстановления. Запустите fsck Check all file systems из меню восстановления. Надеемся, он завершится успешно, после чего ваш установочный раздел будет перемонтирован как чтение / запись. Enable networking, чтобы вы могли получить доступ к Интернету при попытке исправить свои пакеты. Попытка Repair broken packages

Возможно, это не будет более успешным, чем ваши предыдущие попытки исправить пакеты. Но я подумал, что стоит попробовать. Кажется, это сработало для меня.

1
задан 12 March 2016 в 22:35

2 ответа

Устаревший Ответ ниже - это метод, который может не всегда работать. Вместо этого используйте ответ Колина на основе /sys/firmware/efi.

Очень легко сказать, была ли загружена система в EFI (или нет, и в этом случае она должна быть BIOS):

Просто используйте

Это вернет строку, подобную этой, если система была загружена с EFI: [ 0.000000] EFI v2.00 by American Megatrends Или ничего не вернуть, если это не так, и в этом случае она была загружена с BIOS

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

... dmesg | grep -q "EFI v" # -q tell grep to output nothing if [ $? -eq 0 ] # check exit code; if 0 EFI, else BIOS then echo "You are using EFI boot." else echo "You are using BIOS boot" fi ...

Ниже приведен метод, который может не всегда работать. Вместо этого используйте ответ Колина на основе /sys/firmware/efi.

16
ответ дан 25 May 2018 в 08:45
  • 1
    Я упростил бы это до if dmesg | grep -Fq "EFI v"; then .... Нет смысла запускать команду [, кроме того, чтобы проверить успех / неудачу. $? в основном полезен для проверки конкретных ошибок. – geirha 12 July 2012 в 15:50
  • 2
    Это хрупкое, так как нет никакой гарантии, что искомая строка генерируется желаемой функцией. – Thorbjørn Ravn Andersen 13 July 2012 в 06:28
  • 3
    @izx, любой скрипт может произойти, чтобы написать " EFI v " как часть чего-то другого. Если это произойдет на компьютере с BIOS, это будет ложным. – Thorbjørn Ravn Andersen 13 July 2012 в 06:37
  • 4
    Лучше не использовать grep для текста в журнале ядра, он может быть изменен. Лучше всего посмотреть / sys / firmware / efi – Colin Ian King 27 July 2012 в 23:24
  • 5
    Я хотел бы упомянуть, однако, что это отличный способ получить версию EFI! – Omega 3 September 2012 в 07:01

Код Python для проверки загрузки системы с UEFI или ROM BIOS:

import os,sys def main(): if(os.path.exists("/sys/firmware/efi")): print"\n\n System is booted with uefi!" else: print"\n\n System is booted with rom bios" main() sys.exit(0)
1
ответ дан 25 May 2018 в 08:45

Другие вопросы по тегам:

Похожие вопросы: