Оболочка Uefi что это такое

Обновлено: 21.11.2024

Прошивка UEFI великолепна. Он прост в использовании и прозрачен — загрузка происходит с раздела в формате FAT, называемого системным разделом EFI (ESP). Файлы, которые можно загрузить, имеют исполняемый формат EFI и имеют суффикс .efi. Предполагается, что реализации UEFI предоставляют пользователям встроенный диспетчер загрузки, записи которого хранятся в NVRAM. Этот менеджер загрузки должен разрешать регистрацию и выбор записей. Записи можно настроить с помощью Efibootmgr. Ядро можно настроить с помощью заглушки EFI, которая позволяет напрямую загружать его из встроенного ПО. Таким образом, UEFI фактически сделал отдельные загрузчики устаревшими, по крайней мере, для большинства случаев использования.

У загрузчиков осталось только несколько преимуществ по сравнению с загрузчиками прошивки:

  • согласованность. Реализации UEFI могут сильно различаться по функциональности и соответствию стандартам.
  • решения для восстановления

Хотя GRUB2 предоставляет командную строку grub для восстановления из неправильно настроенной системы, с минимальными усилиями можно обеспечить тот же уровень функциональности с помощью компонентов UEFI. Цель этого руководства — предоставить стандартизированное решение для восстановления на основе UEFI.

Содержание

Оболочка EFI

Часть спецификации UEFI является подспецификацией для оболочки. Эта оболочка основана на оболочках DOS и Unix и предназначена для ручного запуска приложений EFI и взаимодействия с прошивкой. Основные инструкции по использованию оболочки UEFI можно найти в [1]. Для получения более подробной информации лучше всего погрузиться непосредственно в спецификацию [2] .

С этой оболочкой есть две проблемы:

  • поставляется не со всеми распространяемыми прошивками
  • имеет ограниченную поддержку файловой системы

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

Получение/установка оболочки UEFI

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

Проект Tianocore EDKII предоставляет набор инструментов для создания приложений EFI. Он предоставляет исходный код для исполняемого файла оболочки UEFI вместе с его готовыми двоичными версиями. Бинарную версию можно скачать отсюда.

Чтобы установить оболочку, просто поместите ее в раздел ESP. Предполагается наличие записи fstab для этого раздела в стандартном расположении /boot/efi.

Исполняемый файл оболочки был сохранен в папке загрузки по умолчанию для встроенного ПО UEFI. При отсутствии лучшей загрузочной записи поведение по умолчанию заключается в загрузке жесткого диска путем поиска первого ESP и выполнения \EFI\BOOT\BOOTX64.EFI (разделители путей \ и отсутствие учета регистра оба свойства файловой системы FAT).

Получение драйверов файловой системы

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

  • ext4/xfs/btrfs для Linux
  • ufs/zfs для *BSD
  • HFS+ для OSX

Загрузка модулей

Сценарий запуска может загружать драйверы файловой системы при каждом запуске оболочки UEFI. Этот сценарий запуска показан ниже.

Этот скрипт должен находиться в корне раздела ESP, который был смонтирован в /boot/efi

Тестирование в Qemu

Приведенную выше конфигурацию следует протестировать, прежде чем полагаться на нее. К счастью, это можно сделать, не выходя из системы, с помощью Qemu. Сначала нам нужно получить реализацию UEFI для использования с Qemu. Это также предоставляется Tianocore под названием OVMF.

Мы предоставим qemu прямой доступ к ESP, так что давайте сначала создадим его пакет.

Предположим, что блочное устройство, на котором расположен ESP, называется /dev/sda1, следующий вызов qemu позволит нам протестировать наше решение для восстановления:

Новые сборки OVMF доступны в этом репозитории Fedora. Их нужно распаковать с помощью rpm2targz.

Обзор

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

Ссылки

  1. ↑ 1.01.1 Статьи Intel об оболочке UEFI и написании сценариев
  2. ↑ 2.02.1 Спецификация оболочки UEFI v2.0
  • Последний раз эта страница редактировалась 25 июля 2018 г. в 14:53.

© 2001–2022 Gentoo Foundation, Inc.
Gentoo является товарным знаком Gentoo Foundation, Inc.Содержание этого документа, если прямо не указано иное, лицензировано в соответствии с лицензией CC-BY-SA-3.0. Применяются правила использования названия и логотипа Gentoo.

который расположен во встроенной последовательной флэш-памяти SPI. uEFI (Unified Extensible Firmware Interface)/BIOS устанавливается
на заводе в соответствии со стандартной аппаратной конфигурацией системы и нормальными условиями эксплуатации.
Поэтому нет необходимости устанавливать или изменять среду BIOS для работы вашей системы.

Подробное описание BIOS можно найти в руководстве к установленному COMExpress

загрузите соответствующее руководство с нашего веб-сайта

выбрав продукт

Kontron uEFI BIOS имеет встроенную расширенную версию оболочки uEFI. Подробное описание
доступных стандартных сценариев оболочки см. в Руководстве пользователя оболочки EFI. Подробное описание доступных стандартных
команд оболочки см. в Руководстве по командам оболочки EFI. Оба документа можно загрузить с домашней страницы сообщества EFI и
Framework Open Source Community (

Обратите внимание, что не все команды оболочки, описанные в Руководстве по командам оболочки EFI, предоставляются
Kontron uEFI BIOS.

<р>15.1. Введение в оболочку uEFI, основные операции

Оболочка uEFI формирует запись в порядке загрузки uEFI и по умолчанию является первым вариантом загрузки.

15.1.1. Вход в оболочку UEFI

Чтобы войти в оболочку uEFI, выполните следующие действия:

<р>1. Включите питание платы.
2. Игнорируйте сообщение: «Нажмите клавишу».
3. Нажмите клавишу ESC в течение 5 секунд после появления сообщения, подобного приведенному ниже:

Оболочка EFI версии 2.31 [4660.22136]

Текущий режим работы 1.1.2

Таблица сопоставления устройств

:Съемный жесткий диск — псевдоним hd33b0b0b fs0

Acpi(PNP0A03,0)/Pci(1D|7)/Usb(1, 0)/Usb(1, 0)/HD(Part1,Sig17731773)

Нажмите клавишу в течение 5 секунд, чтобы пропустить файл startup.nsh, и любую другую клавишу, чтобы
продолжить.

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

Если клавиша нажата до истечения 5-секундного тайм-аута, отображается приглашение оболочки:
Shell>

15.1.2. Выход из оболочки UEFI

Чтобы выйти из оболочки uEFI, выполните одно из следующих действий:

<р>1. Вызовите команду exit uEFI Shell, чтобы выбрать загрузочное устройство в меню загрузки, с которого будет загружаться ОС.
2. Сбросьте плату с помощью команды reset uEFI Shell.

Это было совсем не так. Я запланировал некоторое время обслуживания для обновления нашего основного HPC, на котором все еще работал RHEL 6. Из-за несоответствия версий нам пришлось реализовать обходные пути для использования, скажем, последней версии gcc. Мягко говоря, это было не идеально. К этому времени я переместил все домашние каталоги наших пользователей в общий ресурс NFS, переместил почти все приложения в модули среды и начал использовать Ansible для настройки, а это означало, что я наконец-то смог выполнить чистую установку новой ОС с минимальной настройкой на компьютере. другая сторона.

В тот день я встал пораньше, чтобы воспользоваться окном, и приступил к работе. Установка прошла довольно гладко, за исключением неотвечающего экрана с Live DVD (известная проблема с системами SGI UV). Что не было известной проблемой, так это то, что загрузчик был неправильно настроен во время установки, и когда система перезагружалась, он останавливался на оболочке UEFI.

Оболочка

Я не из тех, кто уклоняется от оболочек, я действительно предпочитаю их использованию графического интерфейса Linux для большей части моего администрирования сервера, но эта оболочка заставила меня задуматься. Это была не оболочка BASH, которую я ожидал, и не какой-либо другой известный мне вариант (например, csh). Это была оболочка UEFI и команды были крайне ограничены. Мне было предложено:

Несмотря на то, что у меня было много Duck Duck Go-ing (это уже глагол?), я застрял. Получается, что мне пришлось вручную запускать загрузчик grub, но я понятия не имел, как это сделать. Медленно, с помощью различных статей поддержки и потоков Stack Overflow, я собрал решение, которое сработало.

Вперед!

Эта загрузка в RHEL и я был в пути. Однако этот дополнительный шаг усложняет перезагрузку, и когда вы перезагружаете высокопроизводительный компьютер со 120 ядрами и 1,5 ТБ ОЗУ, ваш сердечный ритм уже выше нормы (хотя бы не только из-за тепла, исходящего от серверов), а дополнительная работа не идеальна. . Я скопировал каталог /boot с другой машины SGI UV, работающей под управлением RHEL 7, и это, похоже, сработало как пластырь. Я связался с Red Hat, и они дали мне кое-что попробовать, но у меня не было возможности, так как это потребовало бы перезагрузки рабочей машины.В следующий раз, когда у меня будет свободное время, я попробую и обновлю этот пост с результатами.

На данный момент у меня есть работающая машина с RHEL 7, которая гудит (фактически кричит; вентиляторы никогда не замедляются) в подвале. Как только я загрузил его и установил специальное программное обеспечение SGI, мне потребовалось минимум усилий, чтобы все снова заработало. Большая часть этого была сделана с помощью Ansible, который сэкономил массу времени и позволяет воспроизвести пользовательские добавления и другие изменения для новых узлов в кластере HPC. На данный момент готово. Обновление будет выполнено в 2019 году.

Читайте также: