Снова об UEFI

May 06, 2015 04:23

Вот теперь пришло время поговорить об UEFI.

Дело в том, что классическая для винтов MBR, в силу ограничений разрядности не может быть использована для винтов размером более 2ТБ (при секторе 512Б) - не хватает разрядов, чтобы присвоить номер сектору. Поэтому, предполагая появление этой проблемы при разработке UEFI, который является более расширенным аналогом BIOS (описание упрощено), решили перейти на новый формат разбивки дисков. Этот формат, кроме ограничения в размере, снимает и ряд других ограничений, которые, в общем, мало кому интересны. Называется он GUID Partition Table (GPT). Главная загрузочная запись (MBR) при этом присутствует, но лишь для защиты винта от кривых ручонок - при не поддерживаемом GPT, программы думают, что на винте есть 1 раздел и не начинают сразу предлагать устроить разбивку диска на разделы. Кроме того, она может содержать измененный загрузчик, который при использовании BIOS способен загрузить ОС поддерживающую GPT.
Таким образом, структура винта такова:
Защитная MBR->Заголовок GPT->Таблица разделов в формате GPT->Сами разделы-> Копия таблицы разделов->Заголовок GPT.
Разделов может быть до 128 и все они основные. Уже вроде нет нужды в расширенных разделах и логических томах в них. Все разделы имеют свой идентификатор и тем поделены на типы.
Процесс загрузки ОС при UEFI происходит иначе, чем у BIOS. Так как UEFI является гораздо более расширенным комплексом программ, то он способен сам найти нужный раздел и запустить загрузчик.
Напоминаю как было. BIOS после начального тестирования системы и других необходимых операций находит устройство, с которого настроено загружаться, обращается к MBR и передает управление записанному там загрузчику. Загрузчик MBR рассматривает таблицу разделов, находит активный (первый активный) и запускает находящийся в начале этого раздела загрузчик PDR. Тот в свою очередь ищет в корневом каталоге загрузчик системы, на который настроен, и запускает его. Загрузчик системы, находящийся в корневом каталоге, ищет свои настройки и в соответствии с ними запускает менеджер загрузки системы или (если он универсален и настроен) загрузчик одной из систем из своих настроек. При этом он может запускать загрузчики из других не обязательно активных разделов. Иногда схема непринципиально меняется. Например, загрузчик MBR может сразу обращаться к файлу загрузчика системы на разделе. Или загрузчик PDR настроен так, что запускает файл загрузчика системы не из корневого каталога. Но такие варианты - редкость и поддерживаются не на всяком железе.
Теперь UEFI: Аналогично он тестирует, применяет настройки и проводит иные стартовые действия. Но UEFI более расширен и включает в себя кучу небольших подпрограмм. Поэтому он находит винт (иной носитель) с GPT, читает там таблицу разделов и находит «Системный раздел EFI» или иначе «Extensible Firmware Interface System Partition» (системный раздел расширяемого интерфейса прошивки, ESP). Там он находи загрузчик и передает ему управление. Таким образом, убирается 1 этап. Кроме того, UEFI поддерживает классический способ загрузки с винтов MBR.
Системный раздел EFI. Информация по нему несколько противоречива. Итак, это единственный тип разделов к которому UEFI обращается для загрузки системы. Размер его на винтах обычно колеблется в пределах 100…260МБ. Англоязычные источники (Вики) твердят, что он может быть отформатирован в FAT12/16/32. В то же время русскоязычные источники утверждают, что он должен быть только FAT32. Насколько я понял, FAT32 нужен лишь для винтов и большого системного раздела EFI. При использовании GPT на других устройствах (например, флешках) размер системного раздела EFI может быть гораздо меньше и там может применяться более старая ФС. Выбор ФС не очень понятен. Она хоть поддерживается повсеместно, но не очень надежна. Кроме того следует заметить, что системный раздел EFI не обязательно должен находиться в начале винта. Во многих источника в первую очередь для Windows он идет вторым.
Таке же UEFI поддерживает загрузки с ФС ISO 9660, то есть с CD/DVD.
Из Windows загрузку UEFI поддерживает начиная с Win 7 ( на самом деле Win Server 2008) и лишь 64 битные. Вроде бы 8.1 и 32битная как-то может грузиться.
UEFI использует для хранения загрузчиков каталог EFI/boot, находящийся в корне системного раздела EFI. По умолчанию должен загружаться файл /EFI/boot/bootx64.efi
Если загружаемый диск размечен в стиле MBR, то наличие файловой системы FAT32 на первом разделе (если их несколько) и файла с загрузчиком, лежащего по дефолтному пути, являются единственными условиями загрузки с этого носителя (CD/DVD тоже поддерживаются). В случае, если диск размечен в стиле GPT, раздел необязательно должен быть первым, но у него хотя бы должен присутствовать флаг boot.

компьютеры

Previous post Next post
Up