Как отключить uefi secure boot: [Ноутбук] Устранение неполадок — сообщение с ошибкой ‘Secure Boot Violation’ в BIOS | Официальная служба поддержки

Содержание

Эксплуатация подписанных загрузчиков для обхода защиты UEFI Secure Boot / Хабр

English version of this article.

Введение

Прошивки современных материнских плат компьютера работают по спецификации UEFI, и с 2013 года поддерживают технологию проверки подлинности загружаемых программ и драйверов Secure Boot, призванную защитить компьютер от буткитов. Secure Boot блокирует выполнение неподписанного или недоверенного программного кода: .efi-файлов программ и загрузчиков операционных систем, прошивок дополнительного оборудования (OPROM видеокарт, сетевых адаптеров).

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

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

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

Мне хотелось сделать загрузочную флешку с различным ПО для восстановления компьютера, которая бы грузилась без отключения Secure Boot. Посмотрим, как это можно реализовать.

Подписанные загрузчики загрузчиков

Итак, чтобы загрузить Linux при включенном Secure Boot, нужен подписанный загрузчик. Microsoft запретила подписывать ПО, лицензированное под GPLv3, из-за запрета тивоизации правилами лицензии, поэтому GRUB подписать не получится.

В ответ на это, Linux Foundation выпустили PreLoader, а Мэтью Гарретт написал shim — маленькие начальные загрузчики, проверяющие подпись или хеш следующего загружаемого файла. PreLoader и shim не используют сертификаты UEFI db, а содержат базу разрешенных хешей (PreLoader) или сертификатов (shim) внутри себя.

Обе программы, помимо автоматической загрузки доверенных файлов, позволяют загружать и любые ранее недоверенные файлы в режиме Secure Boot, но требуют физического присутствия пользователя: при первом запуске необходимо выбрать добавляемый сертификат или файл для хеширования в графическом интерфейсе, после чего данные заносятся в специальную переменную NVRAM материнской платы, которая недоступна для изменения из загруженной операционной системы. Файлы становятся доверенными только для этих пред-загрузчиков, а не для Secure Boot вообще, и запустить их без PreLoader/shim всё равно не получится.

Действия, необходимые при первом запуске недоверенной программы через shim.

Все современные популярные дистрибутивы Linux используют shim, из-за поддержки сертификатов, которая позволяет легко обновлять следующий загрузчик без необходимости взаимодействия с пользователем. Как правило, shim используется для запуска GRUB2 — наиболее популярного бутлоадера в Linux.

GRUB2

Чтобы злоумышленники втихую не наделали делов с помощью подписанного загрузчика какого-либо дистрибутива, Red Hat сделал патчи для GRUB2, блокирующие «опасные» функции при включенном Secure Boot: insmod/rmmod, appleloader, linux (заменён linuxefi), multiboot, xnu, memrw, iorw. К модулю chainloader, загружающему произвольные .efi-файлы, дописали собственный загрузчик .efi (PE), без использования команд UEFI LoadImage/StartImage, а также код валидации загружаемых файлов через shim, чтобы сохранялась возможность загрузки файлов, доверенных для shim, но не доверенных с точки зрения UEFI. Почему сделали именно так — непонятно; UEFI позволяет переопределять (хукать) функции проверки загружаемых образов, именно так работает PreLoader, да и в самом shim такая функция имеется, но по умолчанию отключена.

Так или иначе, воспользоваться подписанным GRUB из какого-то дистрибутива Linux не получится. Для создания универсальной загрузочной флешки, которая бы не требовала добавление ключей каждого загружаемого файла в доверенные, есть два пути:

  • Использование модифицированного GRUB, загружающего EFI-файлы своими силами, без проверки цифровой подписи, и без блокирования модулей;
  • Использование собственного пред-загрузчика (второго), переопределяющего функции проверки цифровой подписи UEFI (EFI_SECURITY_ARCH_PROTOCOL.FileAuthenticationState, EFI_SECURITY2_ARCH_PROTOCOL.FileAuthentication)


Второй вариант предпочтительней — загруженные недоверенные программы тоже смогут загружать недоверенные программы (например, можно загружать файлы через UEFI Shell), а в первом варианте загружать всё может только сам GRUB. Модифицируем PreLoader, убрав из него лишний код и разрешив запуск любых файлов.

Итого, архитектура флешки получилась следующая:

   ______            ______                ______
  ╱│     │          ╱│     │              ╱│     │
 /_│     │    →    /_│     │      →      /_│     │
 │       │    →    │       │      →      │       │
 │  EFI  │    →    │  EFI  │      →      │  EFI  │
 │_______│         │_______│             │_______│
BOOTX64.efi        grubx64.efi        grubx64_real.efi
  (shim)      (FileAuthentication         (GRUB2)
                override)
    ↓↓↓                ↑
                       ↑
   ______              ↑
  ╱│     │             ║
 /_│     │             ║
 │       │  ═══════════╝
 │  EFI  │
 │_______│
MokManager.efi
(Key enrolling
 tool)

Так появился Super UEFIinSecureBoot Disk.

Super UEFIinSecureBoot Disk — образ диска с загрузчиком GRUB2, предназначенным для удобного запуска неподписанных efi-программ и операционных систем в режиме UEFI Secure Boot.

Диск можно использовать в качестве основы для создания USB-накопителя с утилитами восстановления компьютера, для запуска различных Live-дистрибутивов Linux и среды WinPE, загрузки по сети, без отключения Secure Boot в настройках материнской платы, что может быть удобно при обслуживании чужих компьютеров или корпоративных ноутбуков, например, при установленном пароле на изменение настроек UEFI.

Образ состоит из трех компонентов: предзагрузчика shim из Fedora (подписан ключом Microsoft, предустановленным в подавляющее большинство материнских плат и ноутбуков), модифицированного предзагрузчика PreLoader от Linux Foundation (для отключения проверки подписи при загрузке .efi-файлов), и модифицированного загрузчика GRUB2.

Во время первой загрузки диска на компьютере с Secure Boot необходимо выбрать сертификат через меню MokManager (запускается автоматически), после чего загрузчик будет работать так, словно Secure Boot выключен: GRUB загружает любой неподписанный .efi-файл или Linux-ядро, загруженные EFI-программы могут запускать другие программы и драйверы с отсутствующей или недоверенной подписью.

Для демонстрации работоспособности, в образе присутствует Super Grub Disk (скрипты для поиска и загрузки установленных операционных систем, даже если их загрузчик поврежден), GRUB Live ISO Multiboot (скрипты для удобной загрузки Linux LiveCD прямо из ISO, без предварительной распаковки и обработки), One File Linux (ядро и initrd в одном файле, для восстановления системы), и несколько UEFI-утилит.

Диск совместим с UEFI без Secure Boot, а также со старыми компьютерами с BIOS.

Подписанные загрузчики

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

Как оказалось — такие загрузчики есть. Один из них используется в Kaspersky Rescue Disk 18 — загрузочном диске с антивирусным ПО. GRUB с диска позволяет загружать модули (команда insmod), а модули в GRUB — обычный исполняемый код. Пред-загрузчик у диска собственный.

Разумеется, просто так GRUB из диска не загрузит недоверенный код. Необходимо модифицировать модуль chainloader, чтобы GRUB не использовал функции UEFI LoadImage/StartImage, а самостоятельно загружал .efi-файл в память, выполнял релокацию, находил точку входа и переходил по ней. К счастью, почти весь необходимый код есть в репозитории GRUB’а с поддержкой Secure Boot от Red Hat, единственная проблема: код парсинга заголовка PE отсутствует, заголовок парсит и возвращает shim, в ответ на вызов функции через специальный протокол. Это легко исправить, портировав соответствующий код из shim или PreLoader в GRUB.

Так появился Silent UEFIinSecureBoot Disk. Получившаяся архитектура диска выглядит следующим образом:

   ______            ______                ______
  ╱│     │          ╱│     │              ╱│     │
 /_│     │         /_│     │      →      /_│     │
 │       │         │       │      →      │       │
 │  EFI  │         │  EFI  │      →      │  EFI  │
 │_______│         │_______│             │_______│
BOOTX64. efi        grubx64.efi        grubx64_real.efi
(Kaspersky     (FileAuthentication         (GRUB2)
  Loader)        override)
    ↓↓↓                ↑
                       ↑
   ______              ↑
  ╱│     │             ║
 /_│     │             ║
 │       │  ═══════════╝
 │  EFI  │
 │_______│
 fde_ld.efi + custom chain.mod
(Kaspersky GRUB2)

Заключение

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

С помощью подписанных файлов Kaspersky Rescue Disk мы добились «тихой» загрузки любых недоверенных .efi-файлов при включенном Secure Boot, без необходимости добавления сертификата в UEFI db или shim MOK.

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

Предполагаю, что сертификат Касперского долго не проживет, и его добавят в глобальный список отозванных сертификатов UEFI, который установят на компьютеры с Windows 10 через Windows Update, что нарушит загрузку Kaspersky Rescue Disk 18 и Silent UEFIinSecureBoot Disk. Посмотрим, как скоро это произойдет.

Скачать Super UEFIinSecureBoot Disk: https://github.com/ValdikSS/Super-UEFIinSecureBoot-Disk

Скачать Silent UEFIinSecureBoot Disk в сети ZeroNet Git Center: http://127.0.0.1:43110/1KVD7PxZVke1iq4DKb4LNwuiHS4UzEAdAv/

Про ZeroNet

ZeroNet — очень мощная система создания децентрализованных распределенных динамических веб-сайтов и сервисов. При посещении какого-либо ресурса, пользователь начинает его скачивать и раздавать, как в BitTorrent. При этом, возможно создание полноценных ресурсов: блогов с комментариями, форумов, видеохостингов, wiki-сайтов, чатов, email, git.

ZeroNet разделяет понятия кода и данных сайта: пользовательские данные хранятся в .json-файлах, а при синхронизации импортируются в sqlite-базу данных сайта со стандартизированной схемой, что позволяет делать умопомрачительные вещи: локальный поиск текста по всем когда либо открытым сайтам за миллисекунды, автоматический real-time аналог RSS для всех сайтов разом.

Стандартизированная система аутентификации и авторизации (похожа на OAuth), поддержка работы за NAT и через Tor.

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

Я считаю ZeroNet очень недооцененной системой, и намеренно публикую Silent-версию только в ZeroNet Git, для привлечения новых пользователей.

Как отключить Secure Boot | remontka.pro

  |  Статью загрузил: itsfox  |  

Категория: Windows 10 / 11   |  
Комментарии: 0   |  
Читали: 299 раз

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

Как уже было сказано, в некоторых случаях возникает необходимость отключить Secure Boot в UEFI (ПО настройки оборудования, использующийся в настоящее время вместо БИОС на материнских платах): например, данная функция может мешать загрузке с флешки или диска, при установке Windows 7, XP или Ubuntu и в других случаях. Один из самых распространенных случаев — сообщение «Безопасная загрузка Secure Boot настроена неправильно» на рабочем столе Windows 8 и 8.1. О том, как это отключить эту функцию в разных вариантах интерфейса UEFI и пойдет речь в этой статье.

Примечание: если вы попали на эту инструкцию с целью исправить ошибку Secure Boot настроена неправильно, то рекомендую сначала ознакомиться с этой информацией.

Шаг 1 — зайдите в настройки UEFI

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

Способ 1. Если на вашем компьютере установлена ОС Windows 8 или 8. 1, то вы можете зайти в правой панели в Параметры — Изменение параметров компьютера — Обновление и восстановление — Восстановление и нажать кнопку «Перезагрузить» в особых вариантах загрузки. После этого, выбрать дополнительные параметры — Настройки ПО UEFI, компьютер перезагрузится сразу в необходимые настройки. Подробнее: Как зайти в БИОС в Windows 8 и 8.1, Способы зайти в БИОС в Windows 10.

Способ 2. При включении компьютера нажать Delete (для настольных компьютеров) или F2 (для ноутбуков, бывает — Fn+F2). Я указал обычно используемые варианты клавиш, однако для некоторых материнских плат они могут отличаться, как правило эти клавиши указаны на начальном экране при включении.

Примеры отключения Secure Boot на разных ноутбуках и материнских платах

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

Материнские платы и ноутбуки Asus

Для того, чтобы отключить Secure Boot на оборудовании Asus (современных его вариантах), в настройках UEFI зайдите на вкладку Boot (Загрузка) — Secure Boot (Безопасная загрузка) и в пункте OS Type (Тип операционной системы) установите «Other OS» (Другая ОС), после чего сохраните настройки (клавиша F10).

На некоторых вариантах материнских плат Asus для этой же цели следует зайти на вкладку Security или Boot и установить параметр Secure Boot в значение Disabled.

Отключение Secure Boot на ноутбуках HP Pavilion и других моделях HP

Для отключения безопасной загрузки на ноутбуках HP проделайте следующее: сразу при включении ноутбука, нажимайте клавишу «Esc», должно появиться меню с возможностью входа в настройки БИОС по клавише F10.

В БИОС перейдите на вкладку System Configuration и выберите пункт Boot Options. В этом пункте найдите пункт «Secure Boot» и установите его в состояние «Disabled». Сохраните сделанные настройки.

Ноутбуки Lenovo и Toshiba

Для отключения функции Secure Boot в UEFI на ноутбуках Lenovo, и Toshiba, зайдите в ПО UEFI (как правило, для этого при включении нужно нажать клавишу F2 или Fn+F2).

После этого зайдите на вкладку настроек «Security» и в поле «Secure Boot» установите «Disabled». После этого сохраните настройки (Fn + F10 или просто F10).

На ноутбуках Dell

На ноутбуках Dell c Insydeh3O настройка Secure Boot находится в разделе «Boot» — «UEFI Boot» (см. Скриншот).

Для отключения безопасной загрузки, установите значение в «Disabled» и сохраните настройки, нажав клавишу F10.

Отключение Secure Boot на Acer

Пункт Secure Boot на ноутбуках Acer находится на вкладке Boot настроек БИОС (UEFI), однако по умолчанию вы не можете его отключить (поставить из значения Enabled в Disabled). На настольных компьютерах Acer эта же функция отключается в разделе Authentication. (Также возможен вариант нахождения в Advanced — System Configuration).

Для того, чтобы изменение этой опции стало доступным (только для ноутбуков Acer), на вкладке Security вам необходимо установить пароль с помощью Set Supervisor Password и только после этого станет доступным отключение безопасной загрузки. Дополнительно может потребоваться включение режима загрузки CSM или Legacy Mode вместо UEFI.

Gigabyte

На некоторых материнских платах Gigabyte отключение Secure Boot доступно на вкладке BIOS Features (настройки БИОС).

Для запуска компьютера с загрузочной флешки (не UEFI) также потребуется включить загрузку CSM и прежнюю версию загрузки (см. скриншот).

Еще варианты отключения

На большинстве ноутбуков и компьютеров вы увидите те же варианты нахождения нужной опции, что и в уже перечисленных пунктах. В некоторых случаях некоторые детали могут отличаться, например, на некоторых ноутбуках отключение Secure Boot может выглядеть как выбор операционной системы в БИОС — Windows 8 (или 10) и Windows 7. В таком случае выбираем Windows 7, это равнозначно отключению безопасной загрузки.

Если у вас возникнет вопрос по какой-то конкретной материнской плате или ноутбуку, можете задать его в комментариях, надеюсь, я смогу помочь.

Дополнительно: как узнать включена или отключена безопасная загрузка Secure Boot в Windows

Для проверки, включена ли функция Secure Boot в Windows 8 (8.1) и Windows 10, вы можете нажать клавиши Windows + R, ввести msinfo32 и нажать Enter.

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

Скачать:


Предыдущая публикация

Следующая публикация

Важно:

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


Заходи на mc. foxygame.ru:25565

Скопировано в буфер обмена

Lenovo устраняет проблемы прошивки UEFI, которые могут отключить безопасную загрузку

Новости вычислительной техники

Дев Кундалия

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

Поделись этим

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

Всего уязвимыми являются 25 различных моделей ноутбуков, в том числе различные модели ноутбуков ThinkBook, IdeaPad и Yoga.

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

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

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

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

Исправленные уязвимости Lenovo UEFI были обнаружены, когда компания непреднамеренно включила ранний драйвер разработки в коммерческие версии своего программного обеспечения.

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

«Затронутые драйверы должны были использоваться только в процессе производства, но были ошибочно включены в производство», — поясняется в сообщении ESET в Твиттере.

Команда #ESETResearch обнаружила и сообщила производителю о 3 уязвимостях в прошивке #UEFI нескольких ноутбуков Lenovo. Уязвимости позволяют отключить UEFI Secure Boot или восстановить заводские базы данных Secure Boot по умолчанию (включая dbx): все просто из ОС. @smolar_m 1/9

— Исследование ESET (@ESETresearch) 9 ноября 2022 г.

Первая проблема, исправленная Lenovo и проиндексированная как CVE-2022-3430, существует в драйвере установки WMI на некоторых потребительских ноутбуках Lenovo. Это может позволить злоумышленнику с повышенными привилегиями изменить параметры безопасной загрузки, изменив переменную NVRAM.

Второй исправленной уязвимостью является CVE-2022-3431, которая может позволить злоумышленнику с повышенными правами изменить конфигурацию безопасной загрузки.

Существует также третья проблема подобного рода, которая затрагивает только Ideapad Y700-14ISK и отслеживается под идентификатором CVE-2022-3432. Lenovo заявила, что не будет исправлять этот недостаток, поскольку срок службы уязвимого продукта подошел к концу.

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

Первоначально эта статья появилась на дочернем сайте CRN, Computing.

Узнать больше:

Кибербезопасность

RHEL Загрузка виртуальной машины с UEFI, но без безопасной загрузки

О безопасной загрузке с помощью libvirt в дистрибутивах типа RHEL

RPM RHEL/CentOS/Fedora по умолчанию предоставляют файл прошивки UEFI с именем /usr/доля/edk2/ovmf/OVMF_CODE. secboot.fd . Фактическая прошивка может быть настроена на принудительную безопасную загрузку или ее игнорирование. Подробнее об этом позже.

Прошивка собрана в RPM edk2-ovmf-... :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 
 # об/мин -qa | грэп овмф
edk2-ovmf-20200602gitca407c7246bf-4.el8.noarch
# rpm -ql edk2-ovmf-20200602gitca407c7246bf-4.el8.noarch
/USR/доля/OVMF
/usr/доля/OVMF/OVMF_CODE.secboot.fd
/usr/доля/OVMF/OVMF_VARS.fd
/usr/доля/OVMF/OVMF_VARS.secboot.fd
/usr/доля/OVMF/UefiShell.iso
/usr/доля/doc/edk2-ovmf
/usr/доля/doc/edk2-ovmf/README
/usr/share/doc/edk2-ovmf/ovmf-whitepaper-c770f8c.txt
/USR/доля/edk2
/USR/доля/edk2/ovmf
/usr/доля/edk2/ovmf/EnrollDefaultKeys.efi
/usr/доля/edk2/ovmf/OVMF_CODE.secboot.fd
/usr/доля/edk2/ovmf/OVMF_VARS.fd
/usr/доля/edk2/ovmf/OVMF_VARS.secboot.fd
/usr/доля/edk2/ovmf/Shell.efi
/usr/доля/edk2/ovmf/UefiShell.iso
/USR/доли/лицензии/edk2-ovmf
/usr/доля/лицензии/edk2-ovmf/ЛИЦЕНЗИЯ. openssl
/usr/share/licenses/edk2-ovmf/License-History.txt
/usr/доля/лицензии/edk2-ovmf/License.OvmfPkg.txt
/usr/доли/лицензии/edk2-ovmf/License.txt
/USR/доля/кему
/usr/доля/qemu/прошивка
/usr/доля/qemu/прошивка/40-edk2-ovmf-sb.json
/usr/доля/qemu/прошивка/50-edk2-ovmf.json
 

При создании домена с virt-install конфигурация по умолчанию включает безопасную загрузку:

 virt-install --name f34-uefi --network network=management --ram 2048 --disk size=20 --boot uefi --location https://dl.fedoraproject.org/pub/ fedora/linux/releases/34/Server/x86_64/os/ --dry-run --print-xml
 

XML будет содержать следующее:

 1
2
3
4
5
6 
 <ОС>
    hvm
    /usr/share/edk2/ovmf/OVMF_CODE.secboot.fd
    /var/lib/libvirt/qemu/nvram/f34-uefi_VARS. fd
    
  
 

Согласно https://libvirt.org/formatdomain.html#elementsOSBIOS, безопасную загрузку нельзя отключить, просто установив безопасный='нет' .

Создание виртуальной машины с UEFI

Для всех следующих тестов нам понадобится виртуальная машина с включенным UEFI.

Используйте virt-install для создания XML для вашей виртуальной машины, например:

 virt-install --name f34-uefi --network network=management --ram 2048 --disk size=20 --boot uefi --location https://dl.fedoraproject.org/pub/ fedora/linux/releases/34/Server/x86_64/os/ --dry-run --print-xml > vm.xml
 

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

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

 1
2
3
4
5
6 
 <ОС>
    hvm
    /usr/share/edk2/ovmf/OVMF_CODE.secboot.fd
    /var/lib/libvirt/qemu/nvram/f34-uefi_VARS.fd
    
  
 

Определите виртуальную машину с помощью virsh define ... , как только XML покажется вам хорошим.

Тестирование UEFI и безопасной загрузки в действии

Загрузите Alpine Linux с https://alpinelinux.org/downloads/

 curl -O https://dl-cdn.alpinelinux.org/alpine/v3.14/releases/x86_64/alpine-extended-3.14.0-x86_64.iso
 

Теперь запустите виртуальную машину с Alpine ISO в качестве первой записи в порядке загрузки:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12 
 <устройства>
(. ..)
    <тип диска='файл' устройство='cdrom'>
      <имя драйвера='qemu' тип='raw'/>
      <исходный файл='/var/lib/libvirt/images/alpine-extended-3.14.0-x86_64.iso'/>
      
      <только для чтения/>
      <порядок загрузки='1'/>
      
(...) 9] BdsDxe: загрузка Boot0001 "UEFI QEMU DVD-ROM QM00001" из PciRoot(0x0)/Pci(0x1F,0x2)/Sata(0x0,0xFFFF,0x0) BdsDxe: не удалось загрузить Boot0001 «UEFI QEMU DVD-ROM QM00001» из PciRoot (0x0)/Pci (0x1F, 0x2)/Sata (0x0,0xFFFF, 0x0): доступ запрещен

Отключение безопасной загрузки

Оставьте все как есть, но не забудьте перезаписать nvram виртуальной машины, который находится в /var/lib/libvirt/qemu/nvram/f34-uefi_VARS.fd , с переменными без безопасной загрузки, чтобы отключить эту функцию. Напоминаю, из XML-файла виртуальной машины:

 1
2
3
4
5
6 
 <ОС>
     2.0'>hvm
    /usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd
    /var/lib/libvirt/qemu/nvram/f34-uefi_VARS.fd
    
  
 

Используйте nvram без безопасной загрузки:

 \cp /usr/share/edk2/ovmf/OVMF_VARS.fd /var/lib/libvirt/qemu/nvram/f34-uefi_VARS.fd
 

Теперь виртуальная машина будет загружаться без проблем.

Использование пользовательской прошивки UEFI из восходящего потока

Если вы любите приключения, вы можете загрузить прошивку UEFI вышестоящей версии из проекта OVMF без безопасной загрузки:

 компакт-диск /etc/yum.repos.d/
завиток -O https://www.kraxel.org/repos/firmware.repo
yum установить edk2.git-ovmf-x64 -y
 

XML по умолчанию будет содержать следующее:

 1
2
3
4
5
6 
 <ОС>
     2.0'>hvm
    /usr/share/edk2/ovmf/OVMF_CODE.secboot.fd
    /var/lib/libvirt/qemu/nvram/f34-uefi_VARS.fd
    
  
 

Измените это, чтобы обратиться к вышестоящей прошивке:

 1
2
3
4
5
6 
 <ОС>
    hvm
    /usr/share/edk2.git/ovmf-x64/OVMF_CODE-pure-efi.fd
    /var/lib/libvirt/qemu/nvram/f34-uefi_VARS.fd
    
  
 

И обязательно скопируйте соответствующий файл *_VARS.fd :

 cp /usr/share/edk2.git/ovmf-x64/OVMF_VARS-pure-efi.fd /var/lib/libvirt/qemu/nvram/f34-uefi_VARS.fd
 

Источники

  • https://github.com/tianocore/tianocore.github.

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