Встречаем UEFI
Дни старого доброго BIOS сочтены. Unified Extensible Firmware Interface (UEFI) представляет собой более мощную версию, которая лучше соответствует требованиям современного разнообразного “железа”. По своей сути, UEFI является интерфейсом, который отвечает за предзагрузочное окружение операционной системы. Мы вкратце ознакомились с UEFI и обнаружили некоторые проблемы.
Возможно, вы уже слышали об UEFI или EFI, который стал первой реализацией. Intel представила EFI в 2003 году с архитектурой Itanium IA64 под названием Boot Initiative. Концепция затем была передана Unified EFI Forum, который доработал и стал продвигать новый стандарт для всей индустрии. AMD, AMI, Apple, Dell, HP, IBM, Insyde, Intel, Lenovo, Microsoft и Phoenix – все эти компании сегодня можно назвать лидерами рынка. BIOS построен на архитектуре x86 в 16-битном реальном режиме, однако UEFI добавляет полную аппаратную независимость и разделение интерфейса на загрузочные службы и runtime-службы. Целью является высокая степень стандартизации, и вместе с тем предоставление достаточной гибкости для производителей, чтобы они дифференцировали свои продукты.
BIOS: старый, но доминирующий
Лет 25 назад BIOS предназначался для запуска операционной системы. Первый компьютеры использовали перфокарты в качестве загрузочного средства, после чего они были заменены ROM с простым интерпретатором. Сегодня можно выбирать множество загрузочных средств, таких как дискеты, жёсткие диски, оптические приводы и сетевые ресурсы. Но работа с компонентами всё равно выполняется операционной системой через драйверы устройств, в то время как EFI обеспечивает поддержку драйверов, независимых от ОС, с помощью собственной модели драйверов.
Конечно, попытки изменить изначальный принцип BIOS уже предпринимались. IBM представила модифицированный дизайн системы PS/2 ещё в 1988 году, частично чтобы сбросить с рынка компьютеры с клонированным BIOS. 32-битную архитектуру Multi Channel Architecture (MCA) с ABIOS можно рассматривать как способ обхода реализаций клонированных BIOS. Следующая технология Advanced RISC Computing (ARC) нацелилась на объединение загрузочных окружений платформ MIPS и Alpha в 1990-х годах, но ей не хватило эволюционного развития, расширяемости и возможности увеличения числа платформ. PowerPC и SPARC представили собственные решения Open Firmware (OF) и Common Hardware Reference Platform (CHRP), своего рода ответ на ACPI.
Но в конечном итоге BIOS по-прежнему с нами, и эта технология делает то же самое, что и последние 25 лет: гарантирует, что ваша операционная система сможет загрузиться. Технология BIOS никогда не предусматривала современного разнообразия “железа”. BIOS по-прежнему ограничена 16-битным интерфейсом и программными прерываниями, маршрутизацией прерываний и таймерами максимальной точности, ограниченным исполняемым пространством ROM (1 Мбайт) и размером образа, ограниченным числом инициализируемых устройств (что критично для серверной сферы), собственным расширениями и отсутствующей модульностью – и это только часть проблем.
Поддержка UEFI
Операционные системы начали поддерживать новый дизайн интерфейса платформ в 2007 году, но большинство версий Windows, таких как Vista with SP1 и Server 2008, предлагают поддержку только в 64-битных версиях. К сожалению, как мы обнаружили, поддержка UEFI в индустрии всё ещё слабая, и в сфере накопителей по-прежнему есть свои недостатки.
Чем может быть полезна UEFI?
EFI – это программный интерфейс, который работает между операционной системой и прошивкой платформы, что позволяет заменить BIOS. На самом деле, EFI достаточно сложный, чтобы можно было называть его похожим на собственную ОС. Он не только предлагает поддержку драйверов, интерфейсов и служб, но также имеет оболочку, в которой пользователи могут выполнять приложения посредством интерфейса командной строки.
EFI содержит системную информацию, организованную в виде таблиц, здесь есть загрузочные и runtime-службы внутренней операционной системы. Загрузочные службы включают инициализацию, файловые службы и другие подобные, а также текстовые и графические консоли пользователя. Runtime-службы включают сервисы даты, времени и NVRAM. Для поддержки связи между устройствами все драйверы и компоненты EFI поддерживают связь через специальные протоколы. Драйверы тоже очень важны, поскольку окружение устройств EFI (EFI Byte Code, EBC), является независимым от процессора, обеспечивающим как инициализацию, так и работу устройств (за исключением специфического для ОС “железа” с особыми функциями и требованиями поддержки, например, high-end видеокарт).
Ушли времена, когда для старта разных операционных систем требовался определённый загрузчик. EFI реализует собственный загрузчик, отвечающий за эту задачу. У сборщиков систем появляются новые возможности, поскольку можно добавлять расширения EFI из разной энергонезависимой памяти. Это означает, что производитель ПК может использовать материнскую плату и платформу по желанию потребителя, добавляя при этом дополнительные системные функции через EFI, например, через раздел на системном жёстком диске или через закачку в Интернете.
Apple Boot Camp, позволяющий пользователям устанавливать версию Windows рядом с существующей установкой Mac OS без какого-либо вреда последней, на самом деле использует реализацию Intel EFI на компьютерах Mac с процессорами Intel, а не Open Firmware. Функция стала доступной ещё с апреля 2005 года, но на платформах ПК x86 она распространяется нелегко.
Поскольку функция инициализации платформы EFI (Platform Initialization, PI) предлагает режим совместимости Compatibility Support Mode (CSM), через который можно публиковать дополнительные интерфейсы, можно предоставить и наследственный BIOS. Учитывая преимущества, скорая поддержка UEFI оказывается весьма привлекательной для производителей. Но сегодня широкая поддержка существует больше на бумаге.
Источник: Intel/Microsoft. Нажмите на картинку для увеличения.
Нажмите на картинку для увеличения.
Поддержка индустрии? Отсутствует
На странице EFI в Wikipedia показан список систем с поддержкой EFI в 2008 году от IBM, HP и HP Compaq, а в 2009 году выпущено ещё больше систем от IBM и Dell, если верить документации UEFI Forum. Список 2008 года также упоминает материнские платы MSI с ClickBIOS. Поскольку мы теснее общаемся с производителями комплектующих, нежели с поставщиками готовых компьютеров, мы решили узнать у крупных производителей материнских плат ситуацию с поддержкой EFI.
Asus
“Сегодня мы предлагаем решение EFI для материнской платы P5Q Deluxe, но оно всё ещё находится в состоянии бета-версии. Всё будет зависеть от спроса со стороны потребителей. В зависимости от спроса мы решим, будем ли добавлять обновления EFI для других платформ.”
Прошивку Asus EFI для P5Q Deluxe можно скачать здесь: ftp://ftp.asus.com.tw/pub/ASUS/mb/socket775/P5Q_Deluxe/EFI/
Ветвь на форуме Asus, с другой стороны, содержит большое количество сообщений об ошибках.
Foxconn
“Сегодня наши материнские платы не используют интерфейс Unified Extensible Firmware, и мы не имеем продуктов в стадии разработки с BIOS данного типа.”
Gigabyte
“Мы работаем над возможностью представления UEFI для наших продуктов, но пока не можем назвать точных планов.”
Intel
“Увеличивающееся число платформ будет снабжаться технологией UEFI вместо обычного BIOS.”
Впрочем, как мы обнаружили, Intel всё равно добавляет ограничения к разделам свыше 2 Тбайт. Хотя UEFI может выполнять загрузку операционной системы со столь крупного раздела при использовании GPT (GUID Partition Table) вместо MBR, Intel утверждает, что “прошивка RAID позволяет загружаться с томов RAID только меньше 2 Тбайт.”
MSI
“MSI поставляла платформу с поддержкой UEFI и ClickBIOS на основе чипсета P45, но на сегодня этот продукт закончил свой жизненный цикл.”
Что дальше?
Мы знаем, что данная сфера всё ещё новая, но, похоже, что крупные производители материнских плат не очень воодушевлены переходом на новый системный интерфейс. Возможно, дополнительная работа, связанная с таким переходом, весьма сложная. С другой стороны, мы считаем, что сегодня настало прекрасное время для индустрии выполнить такой переход. По крайней мере, для некоторых платформ должна существовать возможность агпрейда на UEFI при необходимости. Иначе мы вряд ли будет рекомендовать к покупке дорогую материнскую плату, зная, что её поддержка долго не продлится.
Функции на основе EFI, такие как интегрированная утилита разгона, пока находятся в доработке, поэтому мы решили не сравнивать материнские платы с поддержкой UEFI между собой и выносить вердикт на основе предварительных решений. Но всё же есть один сценарий, который вскоре потребует поддержки UEFI: если вы захотите загрузиться с раздела больше 2 Тбайт, то вам потребуется поддержка UEFI и GPT.
Сегодня уже можно купить внешние оснастки, которые превосходят ёмкость 2 Тбайт, используя технологию RAID и интерфейс eSATA для загрузки. Мы решили выбрать одну из самых проработанных реализаций UEFI и посмотреть, сможем ли мы или нет загрузиться с ёмких системных разделов.
Тестируемая материнская плата: Intel DP55KG с ограничениями RAID
Нажмите на картинку для увеличения.
Для оценки существующей поддержки накопителей UEFI мы выбрали материнскую плату из серии Intel Desktop. Материнская плата PD55KG предоставлялась Intel во время запуска платформы P55, сокета LGA 1156 и процессоров Core i5/i7. Это современная и полнофункциональная модель, которая полностью использует все возможности чипсета P55. Intel не слишком сильно работала над визуальным улучшением меню системной конфигурации UEFI, поэтому классический стиль меню сохранился. Нам понравилось, что эта платформа полностью поддерживает UEFI 2.1. Другие производители, такие как Asus и MSI, похоже, больше фокусируются на визуальных деталях, чем на полезных функциях. Плата поставляется с флэш-памятью EEPROM на 16 Мбит с поддержкой ACPI 3.0b и “Platform Innovation Framework for EFI Plug & Play.”
Если вы подключите четыре жёстких диска к портам ICH10R SATA/300 для создания большого RAID-массива, то могут возникнуть проблемы. Хотя довольно легко создать большой массив (мы использовали два жёстких диска по 2 Тбайт), вы не сможете загрузиться с него, если используете решение Intel Matrix RAID. Сегодня это не критично, но ёмкие жёсткие диски уже находятся на подходе, и рано или поздно проблемы возникнут. Поэтому для тестов мы решили использовать внешний накопитель от LaCie. Он обеспечивает приличную ёмкость 3 Тбайт в массиве RAID 5 через одно подключение eSATA.
Нажмите на картинку для увеличения.
Нажмите на картинку для увеличения.
Настройки UEFI
Нажмите на картинку для увеличения.
Мы включили функцию загрузки UEFI в системном меню Intel PD55KG.
Встроенный RAID: нет поддержки разделов больше 2 Тбайт
Нажмите на картинку для увеличения.
Если добавить несколько крупных жёстких дисков в RAID 0 для создания большого массива RAID, то массив окажется бесполезным для установки на него операционной системы. Intel Matrix Storage Manager ограничивает загрузочные разделы 2 Тбайт.
Нажмите на картинку для увеличения.
Снижение размера массива приводит к тому, что он становится загрузочным.
Нажмите на картинку для увеличения.
Использование встроенного решения Intel RAID не позволяет создавать крупные разделы, которые функционировали бы в качестве системного диска. Нам пришлось перейти к внешнему решению с ёмкостью больше 2 Тбайт.
Тестовый накопитель: LaCie 4big Quadra (ёмкость 4 Тбайт)
Нажмите на картинку для увеличения.
Мы уже тестировали 4-Тбайт накопитель LaCie eSATA RAID в начале 2009 года. Тогда он обеспечивал просто великолепную ёмкость и приличную производительность для всех пользователей, желающих собрать супермощный домашний компьютер или добавить внешнее хранилище к рабочей станции. Поскольку сегодня уже доступны 2-Тбайт жёсткие диски, данный накопитель можно “набить” ёмкостью до 8 Тбайт. Наш образец использовал 1-Тбайт винчестеры, поэтому массив RAID 5 дал ёмкость 3 Тбайт.
Конечно, лишь немногое пользователи будут загружаться с подобного накопителя, но это одна из немногих опций, которую мы имели под рукой для эмуляции накопителя SATA с ёмкостью более 2 Тбайт для системы. Это заставило нас использовать GPT вместо MBR и позволило посмотреть, сможет или нет UEFI обеспечить загрузку с раздела больше 2 Тбайт. Все системы, использующие традиционный BIOS, это делать не могут.
Нажмите на картинку для увеличения.
Нажмите на картинку для увеличения.
Создаём разделы: проблемы с MBR
Установка Windows автоматически выбирает GPT для разделов больше 2 Тбайт, а если ёмкость раздела меньше, то пользователь может выбирать между MBR и GPT. Это также относится и к утилите управления дисками, если выбудете работать с ними под уже установленной Windows. Многие BIOS, доступные сегодня, уже поддерживают GPT, но система без поддержки UEFI не может загрузить операционную систему с раздела GPT больше 2 Тбайт. Давайте посмотрим, что произойдёт, если вы выберем обычную MBR.
Нажмите на картинку для увеличения.
Если поддержка UEFI отсутствует, то Windows будет всё равно автоматически выбирать GPT для разделов больше 2 Тбайт, но также будет предлагать выбор между GPT и MBR. Если же вы укажете использовать MBR, то вся ёмкость выше 2 Тбайт останется неиспользованной.
Windows Vista сообщает всё чётко и понятно.
Нажмите на картинку для увеличения.
Можно было бы подумать, что получится создать дополнительный раздел после инициализации 2-Тбайт тома на жёстком диске с ёмкостью больше 2 Тбайт. Но это невозможно, поскольку MBR ограничивает весь жёсткий диск только одним разделом с максимальной ёмкостью 2 Тбайт. Оставшееся пространство использовать не получится. Поэтому очень важно инициализировать GPT для ёмких накопителей, чтобы не упереться в порог 2 Тбайт.
Поэтому давайте так и поступим – мы создадим раздел GPT на накопителе LaCie 4big Quadra eSATA.
Создаём разделы GPT и MBR с ESP, MSR
Чтобы получить полную поддержку GPT для накопителей, предлагающих больше 2 Тбайт, вам понадобится 64-битная версия Windows (XP, Vista или 7). GPT предлагает следующие функции.
- Максимальная ёмкость 18 экзабайт;
- до 128 разделов на диске;
- главная и резервная таблицы разделов для избыточности;
- чётко определённый и самораспознающийся формат раздела;
- каждый раздел имеет уникальный ID во избежание одинаковых идентификаторов (таблица “GUID”).
Ниже представлен обзор возможных вариантов создания разделов на GPT и MBR.
32-битная Windows | 64-битная Windows | |||
GPT | MBR | GPT | MBR | |
Загрузка | Нет | Да | Да | Нет |
Чтение | Нет | Да | Да | Да |
Чтение | Нет | Да | Да | Да |
Помните, что поддержка UEFI становится необходимой для жёстких дисков больше 2 Тбайт. UEFI должна поддерживаться вашей системой, чтобы вы смогли загружаться с такого крупного раздела, если другие условия выполняются (64-битная Windows и GPT).
Детали GPT у Windows x64
GPT автоматически установит раздел EFI System Partition (ESP), содержащий загрузчик, драйверы EFI и всю другую необходимую информацию для загрузки системы, такую как boot.ini, HAL и NT Loader. Будет использоваться GUID Partition Table вместо MBR. ESP занимает примерно 1% от ёмкости жёсткого диска или минимум 100 Мбайт и максимум 1000 Мбайт.
Системы GPT также оснащаются разделом MSR, имеющим статус Microsoft reserved (зарезервирован). Поскольку разделы GPT не позволяют использовать скрытые секторы, Windows использует это зарезервированное пространство для нужд операционной системы. Если вы захотите преобразовать простой диск в динамический, то Windows будет использовать раздел MSR, уменьшит его размер и создаст базу данных динамического диска с помощью доступного пространства. На жёстких дисках меньше 16 Гбайт под раздел MSR отводится всего 32 Мбайт. Для более крупных дисков отводится 128 Мбайт.
Нажмите на картинку для увеличения.
Даже если ваша система совместима с GPT, и вы создали необходимый раздел, вам потребуется поддержка UEFI, если вы захотите загружаться с крупного раздела.
Нажмите на картинку для увеличения.
Можно игнорировать предупреждение и устанавливать Windows на незагружаемый раздел, но вас предупредили.
Нажмите на картинку для увеличения.
Если поддержка GPT и UEFI работает должным образом, то Windows 7 автоматически создаст необходимые разделы, такие как 100-Мбайт EFI System Partition (ESP) и 128-Мбайт Microsoft Reserved partition (MSR), после чего ваш ёмкий том действительно станет загрузочным.
Заключение
Индустрия проделала немалый путь с UEFI. Исторически возникали разные подходы для улучшения модульности процесса загрузки и создания гибкого стандарта индустрии. Не все из них оказались успешными, но, похоже, Intel что-то сможет заполучить со своего амбициозного проекта Itanium. Технология EFI, которой сегодня занимается United EFI Industry Forum, отвечает за существующие стандарты UEFI. Extensible Firmware Interface постепенно будет заменять обычную BIOS и предлагать новые интерфейсы для операционной системы, облегчать загрузку и улучшать гибкость через приложения EFI и независимые от ОС драйверы устройств.
Хотя нынешняя спецификация 2.3 уже достаточно хорошо проверена, индустрия пока не приняла новый стандарт. И с пользовательской перспективы это понять сложно. Apple, IBM, HP и некоторые другие производители доказали, что UEFI можно внедрять в производимые системы. Между тем почти весь сектор материнских плат поддерживает UEFI только на бумаге. Мы обнаружили несколько исключений, которые используют UEFI только для улучшения визуальной привлекательности… к сожалению. Даже с учётом того, что функции UEFI более интересны для сборщиков систем, стандарт является единственным вариантом для поддержки жёстких дисков, превышающих ёмкость 2 Тбайт.
Мы не смогли создать 4-Тбайт массив RAID 0 (2 x 2 Тбайт) на материнской плате Intel DP55KG и интегрированным решением Matrix RAID, поскольку сегодня загрузочные массивы ограничены 2 Тбайт. Если же отойти от собственных ограничений Intel, мы успешно создали 3-Тбайт системный раздел под Windows 7 на системе с активной UEFI, используя внешний накопитель LaCie. Данный накопитель использует RAID-массив внутри себя, поэтому он является прекрасным примером того, что случится, когда на рынок выйдут жёсткие диски с большей ёмкостью.
В итоге мы рекомендуем всем внимательно присмотреться к производителям платформ и потребовать от них скорейшей реализации поддержки UEFI. Как вам покупка сегодня новенькой материнской платы на чипсете Intel P55, которая не будет поддерживать в будущем более ёмкие жёсткие диски? Помните, что без UEFI вы не сможете загружаться с разделов больше 2 Тбайт. Впрочем, если вы будете использовать загрузочный диск меньше 2 Тбайт, то дополнительные жёсткие диски можно будет подключать с любой ёмкостью.