Что такое uefi boot — подробное руководство. UEFI Boot — что это такое

Что такое uefi boot — подробное руководство. UEFI Boot — что это такое

Спецификация UEFI (Unified Extensible Firmware Interface, Унифицированный расширяемый микропрограммный интерфейс, унифицированный расширяемый интерфейс прошивки или расширяемый аппаратный интерфейс), ранее известная как Extensible Firmware Interface (EFI ), определяет интерфейс между операционной системой и микрокодом (микропрограммами), управляющим оборудованием. Другими словами, UEFI это интерфейс, который располагается “поверх” аппаратных компонентов компьютера, которые, в свою очередь, функционируют на собственных прошивках (микрокодах).

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

Для большего понимания, UEFI по сравнению с BIOS - это, грубо говоря, новый тип или следующее поколение прошивки, и оно уже не ограничено только лишь персональными компьютерами архитектуры x86 (IBM PC), но и претендует на всеплатформенный стандарт. Однако, в отличии от BIOS, UEFI базируется на принципиально новой топологии кода, которая называется "драйверность".

  • Основное назначение EFI - замена устаревающей (теряющей актуальность) технологии BIOS и связанных с ней ограничений.
  • Основная цель разработки UEFI заключается в стандартизации взаимодействия операционной системы с микропрограммами платформы в ходе процесса загрузки. В классическом BIOS основным механизмом взаимодействия с аппаратурой на этапе загрузки были программные прерывания и порты ввода-вывода, однако современные системы в состоянии обеспечить более эффективное выполнение операций ввода-вывода между оборудованием и программным обеспечением.
  • Основная задача EFI - корректно инициализировать оборудование и передать управление загрузчику операционной системы. В этом плане задача не сильно то и отличается от задачи традиционного BIOS, но алгоритмы принципиально другие.

UEFI можно смело назвать самостоятельной миниатюрной операционной системой, которая представляет собой интерфейс между основной пользовательской операционной системой, функционирующей на компьютере и микрокодом оборудования.

Давайте теперь совершим небольшой экскурс в историю персональных компьютеров, с целью понять причины, которые приводили к попыткам замены стандартного BIOS на что-то принципиально новое.

Старый-добрый BIOS

Основные принципы функционирования BIOS (базовой системы ввода-вывода) для персональных компьютеров были определены еще в конце 70х годов прошлого века. На протяжении довольно большого промежутка времени, прошедшего с той поры, компьютерная отрасль интенсивно развивалась, это приводило к тому, что на определенных этапах возможностей BIOS было недостаточно, поскольку выпускаемые производителями устройства имели на борту новые технологии, часто не совместимые с текущими версиями BIOS. Что бы уйти от подобных проблем, разработчикам приходилось порой довольно существенно модифицировать код BIOS, однако целый ряд ограничений так и остался неизменным до настоящего времени. И, если первоначально архитектура BIOS была достаточно простой, то по прошествии времени, она усложнялась, адаптируясь под все новые и новые технологии, поэтому, к определенному моменту она стала напоминать нагромождение различного рода устаревшего и плохо взаимодействующего между собой кода. Ограничения, которые и по сей день можно встретить в коде BIOS, объясняются необходимостью сохранять совместимость с базовыми функциями, необходимыми для функционирования старого ПО. Всё это привело к тому, что BIOS, по сути, стал самым устаревшим компонентом современных ПК. На данный момент BIOS мало удовлетворяет требованиям новейшего оборудования и имеет следующие недостатки:

  1. 16-битный код, реальный режим. BIOS написан на языке ассемблера и функционирует на 16-битном коде в реальном режиме (real mode) процессора со свойственными ему ограничениями, самое существенное из которых - ограничение адресного пространства памяти объемом 1 Мегабайт.
  2. Отсутствие доступа к 64-битному железу. BIOS не способна напрямую взаимодействовать с 64-битным оборудованием, доминирующим на рынке в настоящее время.
  3. Отсутствие единого стандарта. Для BIOS отсутствует единая спецификация - каждый производитель предлагает собственный вариации реализации.
  4. Сложность разработки. Проблема заключается в том, что практически для каждой очередной модели системной платы производителем разрабатывается собственная версия BIOS, в которой реализуются уникальные технические особенности данного устройства: взаимодействие с модулями чипсета, периферийного оборудования и прч. Разработку BIOS можно разделить на два этапа. На первом этапе создается базовая версия микропрограммы, в которой реализуются те функции, которые не зависят от специфики оборудования. Разработчики подобного кода хорошо известны, это такие компании как American Megatrends (AMIBIOS), Phoenix Technologies (+ приобретенная ею легендарная Award Software (AwardBIOS)) и некоторые другие. На втором этапе к разработке BIOS подключаются программисты производителя материнской платы. Тут уже базовая сборка модифицируется под специфику каждой конкретной модели платы, учитываются ее особенности. После выхода системной платы на рынок, работа над прошивкой продолжается, регулярно выпускаются обновления, в которых исправляются ошибки, добавляется поддержка нового оборудования (например, процессоров) и, иногда даже расширяются функциональные возможности прошивки.

Все эти, а так же некоторые другие, недостатки традиционной модели BIOS и привели к тому, что коалиция производителей аппаратуры и ПО начала работать над созданием спецификации UEFI. Начиная, по собственным наблюдениям, где-то с 2010 года, спецификация UEFI начала массово внедряться во все вновь выпускаемые материнские платы ведущих производителей, поэтому на данный момент найти новый компьютер с традиционным BIOS практически невозможно. Однако, сильно огорчаться из-за этого не стоит, поскольку многие производители в своих системных платах сохраняют совместимость с функционалом традиционных BIOS. К примеру, очень важным моментом является поддержка традиционного режима загрузки при помощи MBR. С этой целью был разработан UEFI-модуль режима эмуляции BIOS, который носит название Compatibility Support Module (CSM). Правда, я так полагаю, со временем все меньше и меньше производителей будут поддерживать в своих прошивках данный режим.

Преимущества UEFI

Тут я хотел бы определить достоинства интерфейса UEFI:

  1. Поддержка носителей информации (дисков) большого объема. Поддержкой больших дисков UEFI обязан новому стандарту таблиц разделов под названием GPT (GUID Partition Table). Традиционный способ загрузки в BIOS использовал загрузочный сектор Master Boot Record (MBR), содержащий в себе таблицу разделов, которая описывала размещение разделов (партиций) диска. У записей таблицы разделов в MBR имеется один существенный недостаток: номер первого сектора начала раздела в формате LBA (смещение 08h от начала записи о разделе), имеет разрядность всего-лишь 4 байта (32 бита), соответственно, адресовать возможно только 4 миллиарда секторов. А это, при "классическом" размере сектора в 512 байт, всего-лишь ~2 терабайта дискового пространства. UEFI же, при помощи GPT, дает возможность адресовать диски объемом до 18 экзабайт.
  2. Прямая поддержка файловых систем и таблиц разделов. UEFI имеет модули поддержки файловых систем и таблиц разделов, то есть умеет работать как с таблицами разделов, так и с файловыми системами напрямую. Спецификация подразумевает обеспечение поддержки таблицы разделов GPT, файловых системам FAT12 , FAT16 , FAT32 на жестких дисках и файловой системы ISO9660 на CD/DVD дисках. Это избавляет нас от необходимости писать код начальной загрузки (по аналогии с MBR), который будет по цепочке грузить загрузчики различных стадий.
  3. Отсутствие других традиционных ограничений MBR. Например больше не требуется втискивать код начальной загрузки в миниатюрный сектор размером в 512 байт. Можно сосредоточиться на написании единого модуля загрузки, который будет совмещать в себе все необходимые стадии.
  4. Независимые от платформы драйвера оборудования. UEFI имеет доступ к аппаратному обеспечению компьютера посредством платформо-независимых драйверов. Производителю устройства достаточно написать всего-лишь одну версию драйвера для всех платформ (x86, ARM, Itanium, Alpha), а это значительно упрощает разработку и ускоряет процесс выявления ошибок. Спецификация UEFI описывает взаимодействие драйверов UEFI с операционной системой, таким образом, в случае, когда в ОС отсутствует драйвер, к примеру, видеокарты, а в UEFI он присутствует, загружен и функционирует, то ОС имеет возможность выводить данные на монитор посредством стандартных интерфейсов UEFI.
  5. Поддержка стека протоколов TCP: IPv4/IPv6. Позволяет использовать богатые сетевые возможности непосредственно из интерфейса UEFI. Теперь можно разрабатывать различные загрузки по http/ftp протоколам, тут же на ум приходит загрузка с указанием URL, по которому лежит обычный EFI-модуль, либо полноценный ISO-образ. Стало возможным обойти уже успевшую стать единственно-возможным вариантом, загрузку по сети с использованием PXE/TFTP. Некоторые, особенно продвинутые реализации, могут реализовать поддержку PXE через IPv6.
  6. Поддержка традиционной модели BIOS. UEFI не нужен классический BIOS, однако многие производители встраивают код эмуляции BIOS с целью поддержки работоспособности старых операционных систем. Называется этот модуль - модулем поддержки совместимости Compatibility Support Module (CSM). CSM включает 16-битный модуль (CSM16), реализуемый изготовителем BIOS, и слой, связывающий CSM16 с инструментарием (интерфейсом и оборудованием). Совместимость подразумевает поддержку загрузки посредством MBR и поддержку на уровне кода программных прерываний (int 10h - видеосервис, int 13h - сервис работы с диском, int 15h - сервисные функции, int 16h - сервис клавиатуры, int 18h - ROM-BASIC сервис, int 19h - сервис начальной загрузки (bootstrap loader)). Поэтому те ОС и ПО, которым для работы как воздух необходим был старый-добрый BIOS, свободно могут работать и на машинах с UEFI.
  7. Интуитивно-понятный интерфейс UEFI. Так называемая “простота управления”. Достаточно спорный момент, невозможно однозначно отнести его к плюсу или минусу. Утверждается, что управление BIOS было не интуитивно, представляя собой плохо документированный, аскетичный текстовый интерфейс, разобраться в котором мог только подкованный в компьютерных технологиях пользователь. В противовес этому, во многих оболочках UEFI поддерживаются графический интерфейс, манипулятор “мышь”, которые в большинстве BIOS просто не реализованы. Однако, если мне не изменяет память, я еще в 90х годах наблюдал попытки реализации поддержки мыши в BIOS от (кажется) Phoenix. Сам интерфейс может быть графическим, по мнению некоторых - более дружелюбным и интуитивным для большинства, но может быть и традиционным, то есть схожим с классическим текстовым, тут все зависит от предпочтений разработчика и позиционирования оборудования. Имеется возможность поддержки нескольких языков.
  8. Скорость работы UEFI. Утверждается, что код UEFI выполняется быстрее кода традиционного BIOS (хотя и написан на C), за счет того, что целиком написан “с нуля”, без необходимости "волочить" за собой обоз устаревшего кода поддержки различного нестандартного железа и разнообразных логических анахронизмов.
  9. Скорость загрузки ОС. Утверждается, что с UEFI загрузка происходит существенно быстрее. Достигается это за счет распараллеливания инициализации устройств, в противоположность BIOS, который инициализировал оборудование последовательно, а так же уменьшения времени запуска по причине отсутствия необходимости искать загрузчик методом перебора всех устройств (загрузчик указывается в UEFI и вызывается непосредственно). Склонен поверить, поскольку подтвердить либо опровергнуть на данный момент не могу. Однако, если измерить сколько времени уходит на моей старой машинке на Celeron 450/GA-G31M-ES2L с SSD с момента включения и до появления окна авторизации оптимизированной Windows XP, то получится всего 23 секунды. Вероятно, для определенных категорий устройств этого будет недостаточно.
  10. UEFI - мини ОС. Можно, конечно же, обозвать UEFI миниатюрной операционной системой, и это, от части, будет справедливо, но корректнее считать её виртуальной платформой, которая предоставляет интерфейсы к оборудованию. Можно работать только в консоли, а можно написать и полноценный графический интерфейс. UEFI, при наличии модулей необходимого функционала, может, к примеру, помочь разобраться в проблемах загрузки основной ОС, или выполнить другие сервисные функции.
  11. Дополнительные программные модули. Непосредственно до загрузки операционной системы с носителя UEFI позволяет запускать собственные UEFI-модули и драйвера широкого назначения: по работе с сетью, диском (архивация/бэкап/антивирус), конфигурацией параметров, тестированию оборудования. Очевидно, что с популяризацией стандарта список UEFI-приложений будет только расширяться. Уже сейчас можно даже написать полноценную игру, разработать собственную консоль для сервисных нужд в виде отдельного UEFI-модуля (пример: shell.efi), интернет-браузер, обеспечить работу с медиаданными (просмотр фильмов, прослушивание музыки), организовать резервное копирование дисков.
  12. UEFI содержит встроенный менеджер загрузок. То есть, реализует собственный загрузчик кода ОС, который очень функционален и может выступать аналогом знакомых нам по не столь далекому прошлому мультизагрузчиков нескольких операционных систем.
  13. Размер блока ввода-вывода. В UEFI при чтении используется особый размер блока EFI ввода-вывода, позволяющий читать по 1Мб данных (в BIOS ограничение – 64Кб).
  14. Безопасность. Якобы UEFI защищена от вредоносного кода этапа загрузки. Утверждается, что вредоносный код не может загрузить себя до загрузки операционной системы, перехватив тем самым управление. Это достигается и за счет подписывания всего подряд в самой прошивке, так и за счет существования безопасной процедуры загрузки под названием “Secure Boot”.
  15. Простота масштабирования функционала. Прошивка UEFI может легко расширяться - достаточно вставить поддерживаемый накопитель (к примеру USB-флешку). После этого с внешнего устройства можно подключить дополнительные драйверы, приложения UEFI. Если подумать, тем самым открываются прекрасные возможности расширения функционала, которые нельзя было получить с помощью традиционного BIOS, поскольку он был ограничен исключительно зашитым в ROM кодом. В UEFI же можно "подсунуть" драйвер новой железки непосредственно еще на стадии работы UEFI, то есть до начала загрузки операционной системы, и получить доступ к функционалу этого устройства.
  16. Код UEFI функционирует в 32-/64-битном режиме. Со всеми вытекающими.. преимуществами. Если быть уж совсем честным, то всё же UEFI использует реальный режим в самом начале для выполнения некоторых задач инициализации платформы, однако очень быстро уходит в защищенный/длинный режим.
  17. Поддержка альтернативных средств ввода. UEFI обеспечивает поддержку альтернативных средств ввода данных, таких как виртуальные клавиатуры и сенсорные дисплеи. Это достаточно актуально в нашу эпоху различных мобильных гаджетов.

Недостатки UEFI

А теперь хотелось бы осветить недостатки технологии UEFI:

  1. Усложнение архитектуры. Все преимущества EFI не являются настолько уж значимыми перед основным её недостатком - усложнением структуры кода. Значительное увеличение объема кода, его логическое усложнение никак не способствуют облегчению разработки, скорее даже наоборот. А ведь до и параллельно с UEFI, альтернативой устаревшей модели BIOS были открытые реализации, к примеру OpenBIOS, которые были отвергнуты.
  2. Secure Boot. Тут разработчики операционных систем решили сразу несколько проблем: частично проблему пиратства, исключив обход активации путем внедрения активаторов в этапы загрузки, проблему вредоносного кода (вирусов) стадии загрузки и проблему сохраняющих популярность устаревших операционных систем, с которых ну никак не хотят уходить пользователи:) В действительности вышло так, что в отдельных особенно умных устройствах, из-за наличия не отключаемой опции "Secure Boot", зачастую невозможно установить никаких ОС кроме систем линейки Windows версии 8+, поскольку сертифицированные загрузчики на данный момент имеют лишь последние. Согласитесь, смахивает на довольно топорный способ борьбы со скупыми пользователями и конкурентами, хотя сама Microsoft всячески отрицает подобную ситуацию. Одним словом, технология способна доставить массу неудобств, хорошо хоть у большинства вендоров эта опция (пока еще) отключается в настройках.
  3. Невозможность установки старых ОС (в некоторых случаях). Невозможно установить старые системы при отсутствии режима совместимости (CSM).
  4. Отступление от стандарта. Каждый производитель аппаратных компонентов по своему усмотрению модифицирует UEFI, тем самым создавая для пользователя дополнительные трудности, фактически возвращая нас в хаос BIOS? Например, на различных устройствах менеджер загрузки может быть реализован по-разному, при этом иметь достаточно существенные отступления от рекомендаций спецификации UEFI. На практике, иногда попадались забагованные UEFI, которые игнорировали параметры списка загрузки NVRAM и просто грузили код из \EFI\Microsoft\Boot\bootmgfw.efi или EFI/BOOT/bootx64.efi . Или менеджер загрузки в одних реализациях может содержать комбинированный список из MBR и GPT устройств, в других же разные списки загрузки, что вводит некоторую сумятицу.
  5. Внедрение средств контроля контента. Стандарт UEFI предусматривает наличие неких драйверов, которые будут перехватывать вызовы операционной системы, таким образом можно реализовать DRM (Digital Restrictions Management, технические средства защиты авторских прав). Суть алгоритма следующая: человеку, у которого все работает, предлагается за его же счет установить такое программное обеспечение или оборудование, чтобы часть функций в его работающих системах воспроизведения цифрового контента (компьютеры, мультимедиа-плееры и др.) более не работала привычным образом. Существуют небезосновательные опасения, что создание UEFI - это завуалированный способ введения в ПК нежелательных для конечного пользователя функций.
  6. Возможность внедрения нежелательных модулей. Невозможно гарантировать, что операционная система на 100% контролирует компьютер, если она загружается с помощью UEFI!

Алгоритм работы UEFI

В процессе разработки UEFI, разработчика, с самого начала, были установлены жесткие рамки для каждого процесса, участвующего в ходе выполнения. Первые три фазы (SEC, PEI, DXE) подготавливают платформу для загрузчика ОС, четвертая фаза (BDS) непосредственно производит загрузку загрузчика ОС. Давайте попробуем разобрать алгоритм работы UEFI и подробнее рассмотреть все его фазы.

  • Фаза SEC. (Security, Безопасность). Фаза безопасности. Все должно быть подписано и проверено иначе не будет запущено!
    • Очистка CPU кэша.
    • Запуск главной процедуры инициализации в ROM.
    • Переход в защищенный режим работы процессора.
    • Инициализируются MTRR (диапазонные регистры типа памяти) для BSP.
    • Запуск патчей микрокода для всех установленных процессоров.
    • Начальная работа с BSP/AP. BSP = Board Support Package. AP = Application Processor. Каждое ядро может быть представлено как BSP + AP. Всем AP рассылается IIPI (Init Inter-processor Interrupt), затем SIPI (Start-up Inter-processor Interrupt).
    • Передача данных и управления в фазу PEI.
  • Фаза PEI. (Pre-EFI Initialization, Пред-EFI Инициализация). Подготовка платформы (памяти и обнаруженных устройств) для главной процедуры инициализации системы в фазе DXE.
    • Перенос данных из ROM в кеш.
    • Инициализация CRTM (Core Root for Trust of Measurement). Это набор инструкций, который запускается платформой в ходе выполнения RTM-операций.
    • Загружается диспетчер PEI. Диспетчер загружает серию модулей (PEIM), которые варьируются в зависимости от платформы. Эти модули завершают оставшиеся задачи PEI. Стадия завершается, когда все модули загружены.
    • PEIM: Загружаются и запускаются модули инициализации процессоров. (пример: модуль кеша процессора, модуль выбора частоты процессора). Инициализируются процессоры.
    • PEIM: Встроенные интерфейсы платформы инициализируются (SMBus). Инициализируются MCH (Memory Controller Hub), ICH (I/O Controller Hub).
    • PEIM: инициализация памяти. Инициализация основной памяти и перенос в нее данных из кэша.
    • Проверка режима S3. Нет - передача управления в фазу DXE. Да - восстановление исходного состояния процессора и всех устройств и переход к ОС.
  • Фаза DXE. (Driver eXecution Environment, Среда загрузки драйверов). Загрузка компонентов этой фазы базируется на ресурсах, которые были инициализированы в фазе PEI. Фаза окончательной инициализации всех устройств. Запуск служб UEFI: Boot Services, Runtime Services и DXE Services.
    • Загружается ядро DXE. Создается инфраструктура DXE: создаются необходимые структуры данных, база данных хендлов. Включает основные интерфейсы DXE. Запускает ряд сервисов: сервисы этапа загрузки (Boot Services), сервисы этапа выпонения (Runtime Services), сервисы фазы DXE (DXE Services).
    • Запуск диспетчера DXE. Посредством переданного из PEI списка Hand-off Block структур (HOB list) определяет доступные Firmware Volume (FV, структурированная база данных исполняемых модулей DXE: драйверов и приложений) и ищет в них драйвера, запускает их, соблюдая зависимости. В этот момент производится активация остальных компонентов, причем одновременно нескольких. Диспетчер грузит все доступные драйвера со всех доступных носителей.
    • Загрузка драйвера SMM Init. Инициирует подфазу. SMM (System management mode) - один из привилегированных режимов исполнения кода x86-процессора, в котором процессор переключается на независимое адресное пространство, сохраняет контекст текущей задачи, затем выполняет необходимый код, затем возвращается в основной режим. Зачем нам SMM? А потому что в этом режиме можно сделать с системой все что угодно и не зависимо от ОС. Код SMM может исполняться и после окончания фазы DXE.
    • Запускается UEFI Boot Manager. Это происходит после запуска всех драйверов. Управление передается в фазу BDS.
  • Фаза BDS. (Boot Device Selection, Выбор устройства загрузки). Реализует политику загрузки платформы. Основная задача - подключить устройства, необходимые для загрузки, выбрать (вручную или автоматически) устройство загрузки и загрузиться с него. Зачастую выполняет рекурсивный поиск по всем доступным FV и пытается найти доступный для загрузки контент.
    • Инициализируются консольные устройства, описываемые переменными окружения ConOut (ConsoleOutHandle), ConIn (ConsoleInHandle), StdErr (StandardErrorHandle).
    • Загружаются UEFI-драйвера устройств, перечисленные в переменной окружения DriverOrder (содержащей опций Driver#### в порядке загрузки).
    • Загружается UEFI-приложение с устройства загрузки Boot#### . Списки устройств содержатся в переменной окружения BootOrder в порядке очередности загрузки.
    • Если не смогли выполнить что-либо из вышеперечисленного, то вызываем диспетчер DXE для проверки обеспечения зависимостей дополнительных драйверов с момента последнего вызова диспетчера. После чего управление опять возвращается в фазу BDS.

Алгоритм работы UEFI Boot Manager

Концепция загрузки UEFI существенно отличается от аналогичной в BIOS. Если вспомнить BIOS, то за загрузку там отвечал код начального загрузчика int 19h (bootstrap loader), задача которого состояла лишь в том, чтобы загрузить главную загрузочную запись (MBR) с устройства загрузки в память и передать ей управление. В UEFI всё несколько интереснее, она содержит свой собственный полноценный встроенный загрузчик, который носит название UEFI Boot Manager (Менеджер загрузки UEFI или просто Boot Manager), имеющий куда более богатый функционал.

UEFI Boot Manager - стандартный типовой модуль UEFI.

Boot Manager реализует довольно широкий набор функций, в число которых входит загрузка таких UEFI-образов, как: UEFI-загрузчиков ОС первой стадии, UEFI-драйверов, UEFI-приложений. Загрузка может производиться из любого UEFI-образа, размещенного на любой поддерживаемой UEFI файловой системе, располагающейся на любом поддерживаемом платформой физическом носителе информации. UEFI Boot Manager имеет свою собственную конфигурацию, параметры которой в виде ряда переменных располагаются в общей NVRAM (Non-volatile RAM).

EFI NVRAM - общая область памяти, предназначенная для хранения параметров конфигурации UEFI, доступная для использования разработчикам прошивки, производителям оборудования, разработчикам операционных систем и пользователям.

Параметры UEFI хранятся в NVRAM в виде переменных, которые классически представлены парой "название параметра" = "значение". Эти переменные содержат большое количество параметров, которые относятся к разным функциональным частям UEFI, то есть, помимо параметров UEFI Boot Manager"а, NVRAM хранит и многие другие параметры UEFI. Однако, в контексте данной главы нас интересуют лишь переменные, относящиеся к UEFI Boot Manager. Это, в первую очередь, переменная BootOrder , которая указывает на переменные дескрипторов загрузки с именами Boot#### . Каждый элемент Boot#### представляет собой указатель на физическое устройство и (опционально) может описывать даже файл, представляющий собой образ UEFI, который должен с этого физического устройства грузиться.

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

Вот так, примерно, я представляю себе алгоритм перебора носителей в процессе работы UEFI:

Как мы видим, UEFI Boot Manager парсит BootOrder , то есть загружает путь устройства каждого элемента Boot#### в порядке, заданном в переменной BootOrder и пытается выполнить загрузку с указанного устройства. В случае ошибки менеджер загрузки переходит к следующему элементу. Кроме этого, формируется так называемый список загрузки. Этот список актуален для интерфейса настроек UEFI и выглядит как привычное стандартное меню загрузки (Boot Menu). UEFI Boot List формируется на основе переменной BootOrder и используется для внесения пользователем изменений в очередность и конфигурацию устройств загрузки.
А как же формируется сам BootOrder ? А очень просто, например в процессе установки операционной системы Windows, инсталлятор создает раздел ESP (в случае его отсутствия) на установочном диске, форматирует данный раздел в файловую систему FAT, затем помещает свой загрузчик (для Windows 7+ это файл bootmgfw.efi ) и некоторые другие файлы по пути \EFI\Microsoft\Boot\ . По окончании установки ОС, инсталлятор Windows создает переменную в EFI NVRAM с именем Boot#### (где #### - шестнадцатеричный номер), ссылающуюся на менеджер загрузки Windows с именем bootmgfw.efi . Затем, правит переменную BootOrder ?

Требования к загрузочным носителям UEFI

Спецификация UEFI, наряду с прочим, описывает и определенные требования к правилам размещения разделов и загрузчиков на носителях. И для различных классов устройств, как мы увидим далее, они существенно отличаются.

Требования для жестких дисков

Каждый загрузочный жесткий диск должен содержать специальный раздел EFI System Partition (ESP). В разделе ESP должна соблюдаться предопределенная стандартом иерархия директорий (структура): в корне раздела ESP должна размещаться директория /EFI . В папке /EFI , в свою очередь, должны располагаться подкаталоги вендоров операционных систем, производителей оборудования, общего инструментария и драйверов:

\EFI \<директория вендора ОС 1> <файл-загрузчик-ОС1>.efi \<директория вендора ОС 2> <файл-загрузчик-ОС2>.efi . . . \<директория вендора ОС N> <файл-загрузчик-ОСN>.efi \<директория производителя оборудования (OEM)> .efi \<директория BIOS вендора> <приложение-BIOS-вендора>.efi \<директория вендора стороннего ПО> <стороннее-приложение>.efi \BOOT BOOT{тип_архитектуры}.efi

\<директория вендора ОС 1>

<файл-загрузчик-ОС1>.efi

\<директория вендора ОС 2>

Реестре поддиректорий .

Вендоры, директории которых не описаны в поддиректории вендоров и которые не имеют собственных поддиректорий в папке /EFI , зачастую размещают свой загрузчик как "загрузчик по-умолчанию". К примеру, для x64 систем по пути: /EFI/Boot/bootx64.efi .

Файл загрузчика (boot loader) является типовым UEFI-приложением, имеет формат PE32+ и содержит код начальной стадии загрузки операционной системы, то есть начинает процесс загрузки ОС. Его цель - подготовить структуры данных, загрузить ядро ОС в память и передать ему управление.
В спецификации описана поддиректория /EFI/Boot . Данная поддиректория используется как расположение "по умолчанию", то есть в ситуации, когда по каким-либо причинам в NVRAM сбивается (не настроен) какой-либо загрузчик. Для подобного случая в данной директории располагается так называемый "загрузчик по-умолчанию" (fallback boot loader), который имеет стандартизованное наименование BOOT{тип_архитектуры}.efi

Некоторые старые реализации UEFI были "забагованы", они попросту игнорировали список загрузки в NVRAM и грузили напрямую модули либо /EFI/BOOT/bootx64.efi . Другие же, не менее "прямые" варианты UEFI не поддерживали меню загрузки и тоже всегда загружали /EFI/Boot/bootx64.efi либо /EFI/Microsoft/Boot/bootmgfw.efi в зависимости от своих таинственных предпочтений.

Загрузка в Legacy-режиме

UEFI не запускает никакого кода из классического MBR, вне зависимости от того, присутствует сектор на установленных в системе носителях или нет. Исключение составляют версии UEFI с реализацией поддержки "режима совместимости". В следствии этого, для традиционной (legacy) загрузки операционных систем, совместимых со стандартом разметки MBR, в UEFI предусмотрены специальные модули, которые могут быть (по усмотрению вендора) включены в прошивку. Узнать поддерживает ли конкретно Ваша UEFI-прошивка "режим совместимости" можно поискав в интерфейсе UEFI такие параметры как Legacy , Legacy CSM , Launch CSM , CSM Boot , CSM OS , Запуск CSM или CSM Support . Надо отметить что в подавляющем большинстве прошивок данный режим присутствует, что сильно упрощает жизнь пользователей, купивших новые ноутбуки или материнские платы, но так и не изменивших своих привычек в использовании "старых" операционных системам от MS:)
Логично предположить, что в случае наличие CSM модуля, код прошивки при загрузке в традиционном режиме должен максимально приближаться к аналогичным функциональным особенностям традиционных BIOS, попросту эмулируя ключевые технологии. Давайте посмотрим, какие действия производит модуль поддержки совместимости (CSM) UEFI при загрузке в традиционном режиме.
Приведу здесь пока лишь абстрактно-условный алгоритм загрузки в режиме Legacy/Compatibility Support Module (CSM):

  1. Требуется ли загрузка в традиционном (legacy) режиме? Если нет, то уходим на обычную цепочку UEFI Boot.
  2. Загружаем модуль Legacy Driver.
  3. Загружаем модуль Legacy BIOS.
  4. Требуется ли поддержка традиционных функций видео-BIOS (реализация функций прерывания int 10h)? Да - загружаем.
  5. Требуется ли поддержка остальных традиционных расширений BIOS (int 13h..)? Да - загружаем.
  6. Загружаем традиционную (legacy) ОС? Нет - уходим на нормальную загрузку UEFI.
  7. Формируем SMBIOS структуры.
  8. Формируем структуры Legacy Device.
  9. Формируем структуру прерывания int 15h, структуру BBS (BIOS Boot Specification) API.
  10. Формируем ACPI RSD PTR.
  11. Загружаем совместимый SMM код.
  12. Загружаем код из MBR и передаем ему управление.

Мультизагрузка в UEFI

С самого начала массового распространения персональных компьютеров, время от времени вставала задача развертывания нескольких операционных систем на одном ПК, в котором мог размещаться один или несколько физических носителей. Не так давно ситуацию существенно изменило открытие технологии виртуализации, но полностью проблему это не сняло. В классическом своём понимании, применительно к станциям, загружающимся по традиционному способу PC/AT BIOS с использованием классической разметки MBR, мультизагрузка представляла собой сторонний код в главном загрузочном секторе (MBR), который загружает так называемый менеджер загрузки (мультизагрузчик), хранящий настройки для каждой установленной на компьютере операционной системы и предоставляющий меню выбора загрузки той или иной ОС. Если говорить про наше время, то есть про мультизагрузку применительно к носителя, разбитым уже при помощи GPT разметки, то теперь многое изменилось. Как мы уже отмечали, UEFI напрямую умеет работать с GPT-дисками, поэтому задача по установке нескольких операционных систем существенно упрощается. Теперь все функции мультизагрузчика берет на себя встроенный UEFI Boot Manager, принципы функционирования которого мы описали выше. Инсталлятору ОС достаточно лишь сделать то, с чем он и так прекрасно справляется: разместить загрузчик на специальный раздел ESP в "свою" иерархию директорий, после чего этот загрузчик становится "видимым" в настройках UEFI. Помимо установщика ОС, теперь и сам пользователь при помощи настроек (графического/текстового интерфейса UEFI) может вручную добавить загрузчик, находящийся на любом подключенном и видимом системой физическом носителе. Все эти добавленные различными способами загрузчики становятся доступными через Меню загрузки, которое пользователь может настраивать/вызывать непосредственно во время работы UEFI, то есть на начальной стадии загрузки ПК. Другими словами, мультизагрузка в UEFI просто вопрос запуска UEFI-приложений (загрузчиков конкретных ОС), размещающихся на подключенных носителях на специальном разделе ESP в иерархии директорий с корнем в /EFI .

Большинство пользователей обновили свои компьютеры: приобрели новые системным блоки, материнские платы или ноутбуки в последние года четыре.

Примечательностью новых машин является то, что устаревшая система ввода-вывода больше не используется, её место заняла усовершенствованная прошивка под названием UEFI.

Она обладает огромными количеством преимуществ над BIOS, которые сегодня и рассмотрим.

Более подробно же остановимся на : узнаем, что это и почему его так не любят пользователи.

Эволюция системного программного обеспечения

Более двух десятилетий в качестве ПО низкого уровня, используемого при старте компьютера для тестирования его оборудования, передачи управления железом главной , которая выбирает и запускает загрузчик нужной операционной системы, использовался BIOS.

C его помощью пользователи могут управлять огромным количеством параметров аппаратных компонентов.

CMOS – электронный элемент с независимым питанием в виде батарейки, где и хранится вся текущая конфигурация компьютера.

BIOS появился еще в конце 80-х годов. Да, он регулярно усовершенствовался и обновлялся, модифицировался под потребности пользователей и разработчиков, давая им возможность управлять режимами работы оборудования и электропитанием, но всему когда-то приходит конец. Тем более, что система ввода/вывода – тот компонент, который меньше всего претерпел изменения за почти три десятка лет в области информационных технологий.

BIOS обладает массой недостатков:

  • он не поддерживает загрузку из жестких дисков объёмом больше 2 ТБ – купили вы новый винчестер на 3 или 4 ТБ, а установить операционную систему на него не сможете, это технологическое ограничение главной загрузочной записи (никто в 80-х и не подумывал, что HDD могут быть столь неимоверного объема);
  • BIOS функционирует в 16-ти битном режиме (при том, что фактически все современные процессоры являются 64 и 32-х битными) при использовании всего 1024 КБ памяти;
  • процесс одновременной инициализации нескольких устройств поддерживается, но он весьма неотлажен и проблематичен, что снижает скорость запуска компьютера (каждый аппаратный компонент и интерфейс инициализируется отдельно);
  • БИОС – рай для пиратов – он не имеет никаких защитных механизмов, что позволяет загружать любые операционные системы и драйверы, в том числе с изменённым кодом и неподписанные (нелицензионные).

Первая версия UEFI разработана корпорацией Intel для Itanium, но позже была портирована на IBM PC.

Это самостоятельная операционная система с графическим интерфейсом, состоящая из множества модулей и имеющая неограниченный доступ к ресурсам аппаратных компонентов.

Особенности новой EFI с графическим интерфейсом:

  • её код написан полностью на , что позволяет увеличить производительность во время загрузки ПК посредством задействования возможностей 64-разрядных центральных процессоров;
  • адресного пространства операционной системы хватает для поддержки 8*10 18 байт дискового пространства (такого запаса хватит на несколько десятилетий) при том, что весь объем цифровой информации на данный момент почти на три порядка ниже;
  • адресация оперативной памяти – теоретические расчёты показывают, что UEFI позволит устанавливать до 16 эксабайт оперативной памяти (на 9 порядков больше, чем в мощных современных ПК);
  • ускоренная загрузка ОС осуществляется благодаря параллельной инициализации аппаратных компонентов и загрузке драйверов;
  • драйверы подгружаются в оперативную память ещё до запуска операционной системы, причём они не являются платформозависимыми;
  • вместо старой схемы разметки разделов используется прогрессивная GPT, однако для её задействования придётся ;
  • удобная и симпатичная графическая оболочка поддерживает управление посредством мыши;
  • есть встроенные утилиты для диагностики, изменения конфигурации и обновления прошивок аппаратных компонентов;
  • поддержка макросов в формате.nsh;
  • модульная архитектура – позволяет загружать собственные драйверы или скачанные из интернета;
  • одно из самых значимых и важнейших изменений (в частности для Microsoft), которые привнесла UEFI – наличие . Она вызвана оберегать Bootloader от выполнения вредоносного кода, защитить операционную систему от вирусов ещё до её запуска посредством эксплуатации цифровых подписей.

О последней функции поговорим подробнее.

Secure Boot

Название технологии переводится как «безопасная загрузка» и представляет собой протокол, который является составляющей спецификации графической EFI.

Рис.4 – Проверка режима работы Secure Boot через командную строку в Windows 10

В этой статье мы познакомимся с понятием UEFI и применением этой технологии в Windows 8. то такое технология UEFI ? Аббревиатура UEFI расшифровывается как Unified Extensible Firmware Interface (унифицированный расширяемый интерфейс прошивки). Эта технология предназначена для преобразования традиционной системы загрузки компьютеров и должна прийти на смену устаревшей системе BIOS . Однако это не просто модернизация старой технологии, а принципиально новый подход к технологии загрузки компьютера и запуска ОС. По сути, UEFI практически не имеет ничего общего с системой PC BIOS.

Если BIOS – это код (жесткий и фактически неизменный), прошитый в специальном BIOS -чипе на системной плате, то UEFI – гибкий программируемый интерфейс, расположенный поверх всего аппаратных компонентов компьютера с их собственными прошивками. Код UEFI (намного больший по размеру, чем загрузочный код BIOS) находится в специальном каталоге /EFI/, который может храниться в самых различных местах: от отдельной микросхемы на системной плате, до раздела на жестком диске или сетевом хранилище. По сути – UEFI – это самостоятельная легкая операционная система, представляющая собой интерфейс между основной ОС и микропрограммами, управляющих аппаратным низкоуровневыми функциями оборудования, которая должна корректно инициализировать оборудование и передать управление загрузчику основной («большой») ОС, установленной на компьютере.

В состав UEFI входят сервисы тестирования железа, загрузочные и тестовые сервисы, а также реализации стандартных протоколы взаимодействия (в том числе сетевых), драйверы устройств, функциональные расширения и даже собственная EFI-оболочку, в которой можно запускать собственные EFI-приложения. Т.е. уже на уровне UEFI можно выйти в интернет, или организовать бэкап жесткого диска с помощью привычного пользователям графического GUI.

Спецификация UEFI в ближайший год-два станет использоваться во всех новых материнских платах ведущих производителей, и найти новый компьютер с обычным BIOS станет практически невозможно. Одними из наиболее востребованными особенностями UEFI, которые можно реализовать на работающем под ней компьютере являются: «безопасная загрузка» (), низкоуровневая криптография, сетевая аутентификация, универсальные графические драйверы и еще многое другое. UEFI поддерживает 32-х и 64-х битные процессоры и может быть использована на системах с процессорами Itanium, x86, x64 и ARM

Все современные операционных систем (Windows, Linux, OS X) поддерживают загрузку через UEFI.

Однако если использование UEFI в Mac OS X (загрузочный менеджер Bootcamp) и Linux достаточно поверхностное, в Windows 8 преимущества среды UEFI уже можно использовать по полной программе.

Кстати, для возможности загрузки старых ОС, поддерживающих только BIOS, в UEFI существует режим эмуляции BIOS, который называется Compatibility Support Module (CSM).

Поддержка UEFI и Windows 8

Какие же преимущества можно получить при совместном использовании UEFI и Windows 8?

Одно из главных преимуществ – возможность безопасной загрузки (safe boot) – технологии, позволяющей предотвратить выполнение нежелательных программ во время инициализации компьютера (более подробно технология безопасной загрузки в UEFI будет рассмотрена в отдельной статье).

Благодаря UEFI Windows 8 можно устанавливать на диски объёмом 3 ТБ и больше, и, соответственно, загружаться с этих дисков. Это связано с переходом от таблицы разделов MBR в (BIOS) к GPT (UEFI).

Использование UEFI вместо BIOS, – это один из ключевых компонентов, обеспечивающих быструю загрузку Windows 8 (код UEFI работает быстрее за счет того, что целиком писался с нуля, без необходимостей тянуть за собой шлейф древних правил и совместимостей). Кроме того, в UEFI при чтении используется особый размер блока EFI I/O, позволяющий читать по 1 мб данных за раз (в BIOS – 64кб). Кроме того уменьшение времени запуска достигается за счет того, что нет необходимости искать загрузчик на всех устройствах: загрузочный диск назначается в UEFI на этапе установки ОС.

Итак, мы отметили, что Windows 8 поддерживает загрузку UEFI, однако есть ряд особенностей:

  • Компьютер должен совместим с UEFI v2.3.1
  • UEFI поддерживается только в 64 разрядной версии Windows 8. 32-битные версии Windows не поддерживают функции UEFI (на новых компьютерах этой ОС придется работать в режиме эмуляции CSM).
  • Windows 8 для ARM (Windows RT) не будет работать на оборудовании, не поддерживающем UEFI, или позволяющим отключить Secure Boot

В последующих версиях Windows (и ближайшем Windows 8 SP1) разработчики планируют внедрение множества других функций UEFI, таких как: Rootkit prevention (обнаружение руткитов в процессе загрузки), Network authentication (аутентификация при загрузке, особенно актуальная в сценариях удаленного разворачивания ОС) и т.д.

Доступ к настройкам UEFI из Windows 8

Стоит отметить, что на новых компьютерах с предустановленной Windows 8, который использует UEFI, чтобы попасть в меню настройки UEFI (замены старичка BIOS), привычный способ нажатия на клавишу Delete или F2 (или другой клавиши заданной вендором) не сработает. Т.к. Windows 8 (особенно на SSD) грузится очень быстро, сложно успеть за это время нажать клавишу для входа в режим настройки UEFI. Где-то писалось, что Windows 8 на SSD с UEFI ждет нажатия клавиши всего 200мс. Поэтому существует процедура вызова программы настроек параметров UEFI из загрузочного меню Windows 8.

Попасть в загрузочное меню Windows 8 можно одним из трех способов:


После перезагрузки автоматически откроется меню загрузки Windows 8, в котором необходимо выбрать пункты Troubleshoot ->Advanced options . В окне расширенных опций есть отдельная кнопка UEFI Firmware Settings , позволяющая после перезагрузки ПК попасть прямиком в BIOS компьютера (на самом деле это UEFI, настройки в котором эквивалентны традиционному BIOS компьютеров).

Большинство современных компьютеров вместо привычной всем первичной системы ввода/вывода оснащается новейшим управляющим инструментом, получившим название UEFI. Что это такое, пока еще знают далеко не все пользователи компьютеров и ноутбуков. Далее будут рассмотрены некоторые важные аспекты, связанные с этой разработкой. Кроме того, кратко коснемся вопросов, касающихся инсталляции операционных систем через этот интерфейс с помощью загрузочных USB-носителей, а также определим, как отключить UEFI, если использование этой системы по каким-то причинам является нецелесообразным. Но для начала разберемся в первичном понимании того, что это за система.

UEFI: что это такое?

Многие пользователи привыкли к тому, что для настройки первичных параметров компьютерной системы еще до старта ОС нужно использовать BIOS. По сути, режим UEFI, который используется вместо BIOS, представляет собой практически то же самое, но сама система выстроена на основе графического интерфейса.

При загрузке этой системы, которую, кстати, многие называют своеобразной мини-ОС, сразу же обращает внимание на себя факт поддержки мыши и возможность установки для интерфейса регионального языка. Если пойти дальше, можно заметить, что, в отличие от BIOS, UEFI может работать с поддержкой сетевых устройств и отображать оптимальные режимы работы некоторых компонентов установленного оборудования.

Некоторые данную систему называют сдвоенным термином - BIOS UEFI. Хотя это и не противоречит логике программного-аппаратного обеспечения, тем не менее такое определение является несколько некорректным. Во-первых, UEFI является разработкой корпорации Intel, а BIOS-системы разрабатываются множеством других брендов, хотя кардинально между собой не отличаются. Во-вторых, BIOS и UEFI функционируют по несколько отличающимся принципам.

Основные отличия UEFI от BIOS

Теперь еще один взгляд на UEFI. Что это в более четком понимании, можно определить, выяснив отличия этой системы от BIOS. Как считается, UEFI позиционируется как некая альтернатива BIOS, поддержка которой сегодня заявлена многими производителями материнских плат. А вот отличия лучше рассматривать на основе минусов устаревающих систем BIOS.

Самое первое отличие состоит в том, что первичные системы ввода/вывода BIOS не позволяют корректно работать с жесткими дисками, объем которых составляет 2 Тб и более, что состоит в том, что система не имеет возможности полноценного использования дискового пространства.

Второй момент касается того, что для BIOS-систем установлено ограничение по работе с дисковыми разделами, в то время как UEFI поддерживает до 128 разделов, что становится возможным, благодаря наличию таблицы разделов стандарта GPT.

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

Немного истории

Такова система UEFI. Что это такое, уже немного понятно. Теперь посмотрим, с чего же все начиналось. Ошибочно считать, что UEFI является относительно недавней разработкой.

Создание UEFI и универсального интерфейса началось еще в начале 90-годов. Как тогда оказалось для серверных платформ Intel возможностей стандартных BIOS-систем оказалось недостаточно. Поэтому была разработана совершенно новая технология, которая впервые была внедрена в платформе Intel-HP Itanium. Сначала она называлась Intel Boot Initiative, а вскоре была переименована в Extensible Firmware Interface или EFI.

Первая модификация версии 1.02 была представлена в 2000 году, в 2002 году вышла версия 1.10, а с 2005 года новой разработкой стал заниматься сформированный тогда альянс из нескольких компаний, получивший название Unified EFI Forum, после чего и сама система стала называться UEFI. На сегодняшний день в составе разработчиков можно встретить многие именитые бренды, как Intel, Apple, AMD, Dell, American Megatrends, Microsoft, Lenovo, Phoenix Technologies, Insyde Software и др.

Система безопасности UEFI

Отдельно стоит остановиться на механизмах системы защиты. Если кто не знает, сегодня существует особый класс вирусов, которые способны прописывать собственные вредоносные коды при внедрении в саму микросхему, изменяя начальные алгоритмы системы ввода/вывода, что приводит к появлению возможности запуска основной операционной системы с расширенными правами по управлению. Именно таким образом вирусы могут получить несанкционированный доступ ко всем компонентам ОС и средствам управления ей, не говоря уже о пользовательской информации. Установка UEFI полностью исключает появление таких ситуаций за счет реализации режима безопасной загрузки под названием Secure Boot.

Не вдаваясь в технические аспекты, стоит отметить только то, что сам алгоритм защиты (безопасной загрузки) основан на использовании особых сертифицированных ключей, поддерживаемых некоторыми известными корпорациями. Но, как почему-то считается, данную опцию поддерживают только операционные системы Windows 8 и выше, а также некоторые модификации Linux.

Чем UEFI лучше BIOS?

То, что UEFI по своим возможностям превосходит BIOS, отмечается всеми специалистами. Дело в том, что новая разработка позволяет решать некоторые задачи даже без загрузки операционной системы, старт которой, кстати, при установленном оптимальном режиме работы основных «железных» компонентов вроде процессора или оперативной памяти, происходит намного быстрее. По некоторым данным, та же Windows 8 загружается в течение 10 секунд (правда, показатель этот является явно условным, поскольку нужно учитывать общую конфигурацию оборудования).

Однако поддержка UEFI имеет и ряд неоспоримых преимуществ, среди которых можно выделить следующие:

  • простой интуитивно понятный интерфейс;
  • поддержка региональных языков и управления мышью;
  • работа с дисками 2 Тб и выше;
  • наличие собственного загрузчика;
  • возможность работы на базе процессоров с архитектурой x86, x64 и ARM;
  • возможность подключения к локальным и виртуальным сетям с доступом в интернет;
  • наличие собственной системы защиты от проникновения вредоносных кодов и вирусов;
  • упрощенное обновление.

Поддерживаемые операционные системы

К сожалению, далеко не все операционные системы поддерживают работу с UEFI. Как уже говорилось, в основном такая поддержка заявлена для некоторых модификаций Linux и Windows, начиная с восьмой версии.

Теоретически можно установить и Windows 7 (UEFI инсталляционный дистрибутив распознает). Но вот полной гарантии, что установка будет завершена успешно, никто не даст. К тому же в случае использования Windows 7 UEFI-интерфейс и все сопутствующие возможности новой системы останутся просто невостребованными (а часто и недоступными). Таким образом, на компьютер или ноутбук с поддержкой UEFI ставить именно эту систему нецелесообразно.

Особенности режима загрузки Secure Boot

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

Когда для операционной системы производится повторная установка через UEFI, проблем не будет при условии, что инсталлируемая система приближена к оригиналу установленной ранее по максимуму. В противном случае (что не редкость) может быть выдан запрет на установку. Однако и тут выход есть, поскольку сам режим Secure Boot можно отключить в настройках. Об этом будет сказано отдельно.

Нюансы доступа и настройки UEFI

Самих версий UEFI существует достаточно много, и разные производители компьютерной техники устанавливают собственные варианты запуска первичной системы. Но иногда при попытке доступа к интерфейсу могут возникать проблемы вроде того, что не отображается главное меню настроек.

В принципе, для большинства компьютеров и ноутбуков с поддержкой UEFI можно использовать универсальное решение - нажатие клавиши Esc при входе в систему. Если такой вариант не срабатывает, можно воспользоваться и собственными средствами Windows.

Для этого необходимо войти в раздел параметров, выбрать меню восстановления и в строке особых вариантов загрузки кликнуть по ссылке «перезагрузить сейчас», после чего на экране появится несколько вариантов старта.

Что касается основных настроек, от стандартных систем BIOS они практически не отличаются. Отдельно можно отметить наличие режима эмулятора BIOS, который в большинстве случаев может называться либо Legacy, либо Launch CSM.

Кроме того, стоит обратить внимание на то, что при переходе на режим работы Legacy при первом удобном случае следует снова задействовать настройки UEFI, поскольку операционная система может и не загрузиться. Кстати сказать, отличия между разными версиями UEFI состоят в том, что в одних предусмотрен гибридный режим запуска либо эмулятора BIOS, либо UEFI, в других же такая возможность при работе в штатном режиме отсутствует. Иногда это может касаться и невозможности отключения безопасной загрузки Secure Boot.

Загрузочная флешка UEFI: обязательные условия для создания

Теперь посмотрим, как создать загрузочный USB-носитель для последующей установки операционной системы с использованием интерфейса UEFI. Первое и главное условие состоит в том, что загрузочная флешка UEFI должна иметь объем не менее 4 Гб.

Вторая проблема касается файловой системы. Как правило, Windows-системы по умолчанию производят форматирование съемных накопителей с использованием NTFS. А вот UEFI USB-носители с файловыми системами, отличными от FAT32, не распознает. Таким образом, на первом этапе следует произвести форматирование именно с применением такого параметра.

Форматирование и запись образа дистрибутива

Теперь самый главный момент. Форматирование лучше всего производить из командной строки (cmd), запущенной с правами администратора.

В ней сначала вводится команда diskpart, после чего прописывается строка list disk, и командой select disk N, где N - порядковый номер USB-флешки, выбирается нужное устройство.

Далее для полной очистки используется строка clean, а затем командой create partition primary создается первичный раздел, который активируется командой active. После этого используется строка list volume, строкой select volume N (вышеуказанный порядковый номер раздела) выбирается флешка, а затем командой format fs=fat32 активируется старт процесса форматирования. По окончании процесса командой assign носителю можно присвоить определенную литеру.

После этого на носитель записывается образ будущей системы (можно использовать либо обычное копирование, либо создание загрузочной флешки в программах вроде UltraISO). При перезагрузке выбирается нужный носитель, и производится инсталляция ОС.

Иногда может появиться сообщение о том, что установка в выбранный раздел MBR невозможна. В этом случае нужно зайти в настройки приоритета загрузки UEFI. Там отобразится не одна, а две флешки. Старт загрузки нужно произвести с того устройства, в названии которого отсутствует сокращение EFI. При этом отпадает необходимость преобразования MBR в GPT.

Обновление прошивки UEFI

Как оказывается, обновить прошивку UEFI намного проще, чем выполнять аналогичные операции для BIOS.

Достаточно просто на официальном сайте разработчика найти и скачать самую свежую версию, после чего запустить загруженный файл от имени администратора в среде Windows. Процесс обновления пройдет после перезагрузки системы без участия пользователя.

Отключение UEFI

Наконец, посмотрим, как отключить UEFI, например, для случаев, когда загрузка со съемного носителя оказывается невозможной только по причине того, что само устройство не поддерживается.

Сначала нужно зайти в раздел безопасности Security и отключить режим безопасной загрузки Secure Boot (если это возможно), установив для него параметр Disabled. После этого в загрузочном меню Boot в строке приоритета Boot Priority следует выставить значение Legacy First. Далее из списка нужно выбрать устройство, которое будет первым для загрузки (жесткий диск) и выйти из настроек, предварительно сохранив изменения (Exit Saving Changes). Процедура полностью аналогична настройкам BIOS. Вместо команд меню можно использовать клавишу F10.

Краткие итоги

Вот кратко и все о системах UEFI, которые пришли на смену BIOS. Преимуществ у них, как уже можно было заметить, достаточно много. Многих пользователей особо радует графический интерфейс с поддержкой родного языка и возможность управления при помощи мыши. Впрочем, поклонников седьмой версии Windows придется огорчить. Ее установка в компьютерные системы с поддержкой UEFI выглядит не то что нецелесообразной, а иногда становится и вовсе невозможной. В остальном же использование UEFI выглядит очень простым, не говоря о некоторых дополнительных функциях, которые можно задействовать даже без загрузки операционной системы.

Персонального компьютера, несмотря на постоянные обновления, «двойные» реализации и прочие новшества, по сути, так и оставался наиболее устаревшим компонентом современных компьютеров. Начиная с самых первых ПК в BIOS ничего кардинально не менялось. Его долгое время всерьез не трогали производители, опасаясь за то, что нарушится преемственность базовых функций, необходимых для правильного функционирования старых операционных систем.

Но старые системы ушли в прошлое, а те, что все еще используются, можно запускать с помощью программных эмуляторов. Поэтому бороться со старыми привычками BIOS стало не особо нужно. В самом деле, при загрузке с помощью BIOS не получить даже отображения национальных алфавитов, не говоря уже о поддержке сетевых устройств, оптимальных режимов работы оборудования, удобных решений по обновлению и т.п.

Рассказ о том, что такое UEFI, лучше начать с истории возникновения данной технологии.

История UEFI начинается в середине 90-х годов. Уже тогда для мощных серверных платформ было недостаточно возможностей стандартного BIOS. Поэтому для первых систем Intel-HP Itanium была разработана новая технология, которая получила название Intel Boot Initiative. Немного позже название было сменено на EFI или Extensible Firmware Interface.

Первой официальной спецификацией стала EFI 1.02, которая появилась на свет 12 декабря 2000 года. В начале 2002 года появилась спецификация 1.10. А уже в 2005 году был сформирован альянс компаний под названием Unified EFI Forum или UEFI Forum, а сама технология сменила название с EFI на UEFI. Сейчас разработкой UEFI занимается UEFI Forum, в состав, которого входят такие компании как AMD, Apple, Dell, HP, American Megatrends, IBM, Intel, Lenovo, Insyde Software, Microsoft и Phoenix Technologies. Последней спецификацией UEFI является спецификация под номером 2.3.1, которая была опубликована альянсом UEFI Forum в апреле 2011 года.

Преимущества UEFI

Очевидно, что UEFI это новый шаг в развитии персональных компьютеров. Но, какие реальные преимущества представляет использование данной технологии вместо старого доброго BIOS?

  • UEFI позволяет выполнять загрузку операционной системы с жестких дисков большого объема. Используя BIOS нельзя загрузить операционную систему с объемом больше 2 Тб.
  • UEFI не зависит от архитектуры процессора и может использоваться как с x86 процессорами, так и с процессорами на базе архитектуры ARM. В то время как BIOS поддерживает только .
  • UEFI позволяет использовать графическую оболочку с поддержкой мышки, которая намного удобней аскетичного интерфейса BIOS. При этом, оболочка UEFI позволяет выполнять многие задачи без использования операционной системы. Например, подключаться к локальной сети выходить в интернет.
  • UEFI позволяет загружать операционную систему значительно быстрее. Благодаря параллельному тестированию компонентов компьютера, время, которое проходит от момента включения компьютера до момента начала работы операционной системы может быть уменьшено до 2-х секунд.
  • UEFI оснащена менеджером загрузки и позволяет пользователю выбирать какую операционную систему он хочет загрузить. При этом исчезает необходимость использования специального механизма для выбора операционной системы внутри самого загрузчика операционной системы.
  • UEFI оснащена новыми способами защиты от вредоносных программ.


© 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows