EFI

Extensible Firmware Interface (EFI) ( «Расширяемый интерфейс прошивки») — интерфейс между операционной системой и микропрограммами, управляющими низкоуровневыми функциями оборудования, его основное предназначение: корректно инициализировать оборудование при включении системы и передать управление загрузчику операционной системы. EFI предназначен для замены BIOS — интерфейса, который традиционно используется всеми IBM PC-совместимыми персональными компьютерами. Первая спецификация EFI была разработана Intel, позднее от первого названия отказались и последняя версия стандарта носит название Unified Extensible Firmware Interface (UEFI). В настоящее время разработкой UEFI занимается Unified EFI Forum.https://ru.wikipedia.org/wiki/Extensible_Firmware_Interface

https://habrahabr.ru/post/197438/ <----------

http://ustanovka-linux-na-noutbuk-s-uefi.html

http://blackdiver.net/it/linux/1702

http://help.ubuntu.ru/wiki/_efi

Загрузка в UEFI

С GPT-раздела с идентификатором EF00 и файловой системой FAT32, по умолчанию загружается и запускается файл:

\efi\boot\boot[название архитектуры].efi например: \efi\boot\bootx64.efi

То есть чтобы, например, создать загрузочную флешку с Windows, достаточно просто разметить флешку в GPT, создать на ней активный FAT32-раздел и скопировать все файлы с компакт-диска с дистрибутивом операционной системы

Пример создания GPT диска в Linux:

  1. gdisk: Создайте раздел, указав тип EFI System (EFI System in fdisk or ef00 in gdisk).

  2. Отформатируйте его в файловую систему FAT32 командой mkfs.fat -F32 /dev/<раздел диска>

  3. GNU Parted: Создайте FAT32 раздел и затем установите (активируйте) the boot flag (not legacy_boot flag) на этот раздел.

Также в большинстве реализаций UEFI возможна загрузка в режиме совместимости с диска с разметкой MBR. Спецификация EFI не включает описание для файловых систем, однако реализации EFI обычно поддерживают FAT32 как файловую систему. Совместимость с ОС для платформы x86, требующими для работы интерфейса «legacy BIOS», достигается с помощью модуля поддержки совместимости (CSM). CSM включает 16-битную программу (CSM16), реализуемую изготовителем BIOS, и слой, связывающий CSM16 с инструментарием. https://habrahabr.ru/post/185492/

Загрузчик в UEFI

В отличии от BIOS, UEFI загружает образ загрузчика из файла, и поэтому предъявляет определённые требования к таблице разделов, разделу, файловой системе, и к содержимому загружаемого файла.

Таблица разделов

Большинство реализаций UEFI поддерживает таблицы разделов GPT и MBR. Некоторые, однако, могут не поддерживать MBR, а некоторые могут поддерживать другие таблицы разделов, специфичные для производителя.

Загрузочный раздел

Загрузочный раздел UEFI называется "EFI system partition", он же ESP, он же EFISYS. На каждом диске может быть не более одного такого раздела. В GPT он должен иметь тип EF00 (GUID=C12A7328-F81F-11D2-BA4B-00A0C93EC93B), и может располагаться в любом месте диска под любым номером. К загрузочному разделу в MBR требования более жесткие: он должен одновременно иметь тип EF, флаг "bootable", и быть первым.

Файловая система

Большинство реализаций UEFI работают с загрузочным разделом с файловой системой FAT любой разрядности – FAT12, FAT16 и FAT32. Некоторые реализации могут требовать только FAT32, некоторые могут поддерживать другие ФС, специфичные для производителя.

Загрузочный образ

Загружаемый файл должен быть оформлен как EFI-приложение, а значит иметь унаследованный от DOS и Windows бинарный формат MZ/PE (Portable Executable) и соответствовать архитектуре UEFI. Все реализации UEFI для платформы PC имеют архитектуру x86_64, а значит и сборка загрузчика обязательно должна быть под эту архитектуру. Сборка загрузчика под i386 может быть полезна только на некоторых специфических машинах, в основном это старые компьютеры фирмы Apple, а также некоторые миниатюрные устройства на мобильных SoC производства Intel.

Имя файла по-умолчанию

UEFI архитектуры x86_64 автоматически находит на загрузочном разделе и запускает файл \EFI\BOOT\BOOTX64.EFI, который может быть стартовым образом загрузчика.

Загрузочные записи

На загрузочный раздел можно записать больше одного EFI-приложения, каждое под своим именем и в свой каталог. Чтобы можно было запускать их при старте, UEFI обычно предоставляет через специальный программный интерфейс доступ к загрузочным записям – особым переменным (UEFI Variables), хрянящимся в энергонезависимой памяти материнской платы (NVRAM). Каждая загрузочная запись содержит:

    • видимый в пользовательском интерфейсе UEFI заголовок,

    • тип таблицы разделов,

    • ID таблицы разделов,

    • расположение и размер загрузочного раздела,

    • путь к исполняемому файлу EFI-приложения.

Кроме самих загрузочных записей, в NVRAM задаётся порядок их проверки при загрузке, который может быть изменён пользователем.

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