uefi

UEFI (Unified Extensible Firmware Interface) — унифицированный расширяемый интерфейс прошивки, спецификация, определяющая, как программное обеспечение низкого уровня инициализирует платформу и передает управление загрузчику операционной системы. Это модульная среда с драйверами, сетевым стеком, сервисами времени выполнения и собственным менеджером загрузки, предназначенная для современных архитектур и носителей 💻⚙️.

Назначение и ключевые особенности 🔧

UEFI решает ограничения исторического BIOS и обеспечивает гибкий, расширяемый и безопасный процесс загрузки. Это включает работу с большими дисками, драйверами в прошивке, графическим интерфейсом, сетевой загрузкой, переменными NVRAM и механизмами доверенной загрузки. UEFI пришёл на смену классическому BIOS и сегодня де-факто стандарт на ПК, серверах и многих ARM-устройствах.

Аспект UEFI Практическое значение
Схема разделов GPT (поддержка MBR через CSM) Диски >2 ТБ и до 128+ разделов без ограничений MBR
Файлы загрузчиков Исполняемые .EFI (PE/COFF) Напр., BOOTX64.EFI, grubx64.efi, bootmgfw.efi
Менеджер загрузки Встроенный, использует переменные NVRAM BootOrder, Boot####, выбор OS без внешнего MBR-кода
Безопасность Secure Boot, db/dbx, KEK/PK, Measured Boot с TPM Цепочка доверия и аттестация состояния платформы
Сетевая загрузка PXE, iSCSI, HTTP(S) Boot Загрузка по сети без локального носителя 🌐
Интерфейс Графическое меню, мышь, локализация Удобная конфигурация и диагностика
Драйверная модель DXE-драйверы, протоколы Расширения от вендоров и Option ROM как UEFI-драйверы
Обновления UEFI Capsule fwupd/LVFS в Linux, средства OEM для Windows 🔁
Совместимость CSM (Legacy) опционально Запуск старых ОС, но всё чаще отключается
Архитектуры x86/x64, ARM, RISC‑V Единый подход к инициализации платформ

Архитектура и стадии инициализации 🧩

  • SEC — первичная инициализация, запуск доверенного кода из ROM.
  • PEI — инициализация памяти и базовых устройств (PEIM-модули).
  • DXE — загрузка DXE-драйверов, публикация протоколов, обнаружение устройств.
  • BDS — политика загрузки, поиск записей Boot#### в NVRAM.
  • Boot Services — сервисы драйверов и устройств до передачи ОС.
  • Runtime Services — сервисы времени, переменные, UEFI variables после старта ОС.

Ключевые данные конфигурации хранятся в NVRAM как переменные UEFI (BootOrder, BootNext, SecureBoot, PlatformKey и др.). Пользователь взаимодействует через меню прошивки, UEFI Shell или инструменты ОС.

EFI System Partition (ESP) 💽

ESP — специальный раздел на диске, содержащий загрузчики, драйверы и конфигурацию. Обычно это FAT32 объёмом 100–600 МБ; для носителей >2 ТБ требуется GPT. Структура каталогов: EFIVendor*.efi.

  • Стандартные пути: EFIBOOTBOOTX64.EFI (фолбэк), EFIMicrosoftBootbootmgfw.efi, EFIubuntugrubx64.efi.
  • Конфигурации: EFIBootbootx64.efi как резервный загрузчик на съёмных носителях.
  • Драйверы UEFI: EFIdrivers*.efi (при необходимости).

Процесс загрузки ОС 🚀

  1. UEFI BDS читает BootOrder из NVRAM и пытается по очереди записи Boot####.
  2. Проверяются носители и файлы .efi на ESP; при неудаче — резервный путь EFIBOOTBOOT{арх}.EFI.
  3. При включённой проверке ключей выполняется верификация подписи загрузчика.
  4. Загрузчик ОС инициализирует ядро; UEFI передаёт управление, завершая Boot Services.

Безопасность и доверенная загрузка 🛡️

Secure Boot строит цепочку доверия: платформа хранит корневой ключ PK, список доверенных ключей/хешей (db), список отозванных (dbx) и KEK для управления обновлениями. Подписанные загрузчики и драйверы UEFI проверяются до их исполнения.

  • TPM/Measured Boot: хеши стадий загрузки измеряются в PCR, что позволяет ОС или средам аттестации подтверждать целостность.
  • MOK (Machine Owner Key): механизм добавления собственных ключей (например, для shim+GRUB в Linux).
  • Пароли и PIN в прошивке: защита конфигурации и отключение отладки.

Совместимость и варианты конфигурации 🔄

CSM (Compatibility Support Module) эмулирует старую модель BIOS/MBR и нужен лишь для старых ОС и некоторых оптических носителей. В современных системах часто отсутствует или отключён по умолчанию. На x64 рекомендуется использовать 64-битный UEFI; 32-битный встречается на отдельных планшетах и встраиваемых системах. На ARM64 UEFI — стандартная основа для Windows и многих дистрибутивов Linux.

Инструменты администрирования и практические приёмы 🧰

  • Linux: efibootmgr (управление BootOrder/Boot####), fwupd (обновления прошивок через LVFS), mokutil (управление MOK), sbverify/sbsign (подпись образов).
  • Windows: bcdedit и bcdboot для записи загрузчиков на ESP и создания записей; PowerShell и средства OEM для Capsule-обновлений.
  • UEFI Shell: команды map, fs0:, bcfg, dmpstore для работы с файловыми системами и переменными NVRAM.

Типичные проблемы и диагностика 🧩

  • После переноса диска отсутствует запись Boot#### — используйте bcdboot/efibootmgr или загрузку с фолбэк EFIBOOTBOOTX64.EFI.
  • Secure Boot блокирует кастомный загрузчик — добавьте ключ через MOK или отключите проверку (если политика безопасности это допускает).
  • ESP повреждён или мал — пересоздайте раздел 200–600 МБ FAT32 и установите загрузчик заново.
  • Смена режима CSM/UEFI ломает загрузку — придерживайтесь единого режима (чистый UEFI + GPT).
  • Обновления прошивки — предпочитайте Capsule через fwupd/Windows Update; избегайте прерываний питания ⚠️.

Стандарт UEFI поддерживается UEFI Forum; версии спецификации описывают протоколы, переменные и поведение сервисов. Ключевые преимущества: масштабируемость под большие носители, расширяемость драйверами и повышенная безопасность цепочки загрузки 🔒.

Оцените:
( Пока оценок нет )
Фотофайл - лучшие картинки и фото
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии
0
Теперь напиши комментарий!x