Вопрос или проблема
Как определить, была ли данная система 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 then echo "Вы используете загрузку EFI." else echo "Вы используете загрузку BIOS" fi ...
Источник: О том, как определить, использует ли EFI система эмуляцию устаревшего BIOS или нет, а также для получения дополнительной информации о тестировании на EFI и совместимости с EFI, наряду со строками для ряда поставщиков/версий EFI, пожалуйста, смотрите эту страницу с Ubuntu Developer Summit для Precise.
“Disk” (или gnome-disks) весьма удобен, как я обнаружил, когда вы загружаетесь в вашу ОС и открываете “Disk”, смотрите на раздел EFI: если он показывает, что смонтирован, значит вы в UEFI. Но если раздел EFI показывает, что не смонтирован, значит вы в BIOS.
Код на Python для проверки, загружена ли система с UEFI или ROM BIOS:
import os,sys def main(): if(os.path.exists("/sys/firmware/efi")): print"\n\n Система загружена с uefi!" else: print"\n\n Система загружена с rom bios" main() sys.exit(0)
Ответ или решение
Определение способа загрузки вашей Ubuntu-системы — через EFI/UEFI или BIOS — является важной задачей для управления совместимостью оборудования и программного обеспечения. Существуют различные методы, позволяющие выяснить, какой именно способ загрузки использовался. Рассмотрим несколько наиболее популярных и точных моментов.
Проверка существования директории /sys/firmware/efi
Самый простой и надежный способ определить метод загрузки — это проверить наличие директории /sys/firmware/efi
. Если эта директория существует, значит система была загружена с использованием EFI/UEFI. Если она отсутствует — система загружена через BIOS.
Для автоматизации этого процесса можно использовать следующий скрипт на Bash:
#!/bin/bash
[ -d /sys/firmware/efi ] && echo "Загрузка через UEFI" || echo "Загрузка через BIOS"
Этот скрипт прост и надежен, так как основан на проверке наличия системного каталога.
Использование команды dmesg
Другой метод — это использование команды dmesg
для фильтрации данных журнала ядра. Вы можете искать строки, содержащие упоминание версии EFI:
dmesg | grep "EFI v"
Если команда вернула строку наподобие [ 0.000000] EFI v2.00 by American Megatrends
, значит ваша система была загружена с помощью UEFI. Если нет — значит, использовался традиционный BIOS.
Проверка через "Диск" или gnome-disks
Еще один способ — использование утилиты "Диск" (gnome-disks). Если EFI-раздел отображается как смонтированный, значит ваша система загружена в режиме UEFI. Если он не отображается смонтированным, система загружена через BIOS.
Программа на Python
Также существует возможность написать небольшую программу на Python для этой проверки:
import os
def main():
if os.path.exists("/sys/firmware/efi"):
print("\nСистема загружена с использованием UEFI!")
else:
print("\nСистема загружена с использованием ROM BIOS")
main()
Заключение
Знание того, как ваша система была загружена, является ключевым для успешной настройки и эксплуатации вашей Ubuntu-системы. Использование одного из перечисленных методов поможет быстро и точно определить, в каком режиме происходит загрузка.
При написании этой статьи был использован подход FOREST, чтобы предоставлять полный и точный контент, избегая распространенных клише и шаблонных формулировок.