Гид по технологиям

Как включить UEFI для KVM в Red Hat Enterprise Linux (RHEL)

• 6 min read • Виртуализация • Обновлено 26 Nov 2025
Включение UEFI для KVM в RHEL
Включение UEFI для KVM в RHEL

О содержании

  • Почему стоит включить UEFI для KVM
  • Установка зависимостей для поддержки UEFI
  • Создание UEFI-совместимой ВМ через Cockpit
  • Создание UEFI-совместимой ВМ через командную строку
  • Чек-листы, отладка, альтернативы и частые вопросы

Почему стоит включить UEFI для KVM

UEFI (Unified Extensible Firmware Interface) — современный интерфейс прошивки системы. Коротко: UEFI заменяет BIOS и поддерживает большие разделы, Secure Boot и современные загрузчики.

Преимущества включения UEFI для виртуальных машин KVM:

  • Позволяет устанавливать и тестировать современные ОС (например, Windows 11) в виртуальной среде.
  • Упрощает тестирование схем разметки разделов и поведения загрузчика на «реальном» UEFI-оборудовании.
  • Обеспечивает совместимость с ОС, требующими UEFI-only загрузки.

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

Важно: если планируете использовать Secure Boot в ВМ, дополнительно потребуется настроить соответствующие ключи и использовать Secure Boot совместимую версию OVMF.

Установка зависимостей для поддержки UEFI

Перед началом убедитесь, что система обновлена:

sudo dnf update

Установите базовые пакеты виртуализации и утилиты управления (команды показаны для RHEL/Fedora-подобных дистрибутивов):

sudo dnf install qemu-kvm libvirt virt-install virt-viewer cockpit-machines edk2-ovmf
sudo systemctl enable --now libvirtd
sudo systemctl enable --now cockpit.socket

Примечание: набор пакетов может отличаться в зависимости от вашей подписки RHEL и подключённых репозиториев; при необходимости используйте менеджер пакетов вашего дистрибутива или инструкции Red Hat.

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

sudo reboot

Полезная проверка: после перезагрузки убедитесь, что службы запущены:

systemctl status libvirtd
systemctl status cockpit.socket

Создание UEFI-совместимой ВМ в RHEL Cockpit

  1. Откройте браузер и перейдите на Cockpit: http://localhost:9090

Веб-интерфейс Cockpit для входа в систему.

  1. Войдите под root или пользователем с привилегиями, затем в левом меню выберите «Virtual Machines» (Виртуальные машины).

Пункт меню «Виртуальные машины» в Cockpit выделен на боковой панели.

  1. Нажмите «Create VM» (Создать ВМ).

Кнопка «Create VM» на странице виртуальных машин выделена.

  1. Заполните базовые параметры ВМ (имя, ОЗУ, диск и установочный ISO), затем нажмите «Create and Edit» (Создать и редактировать).

Кнопка «Create and edit» при создании ВМ выделена.

  1. В разделе Overview (Обзор) найдите ссылку BIOS (или Firmware) и выберите UEFI вместо BIOS, затем сохраните.

Секция «Firmware» в обзоре новой ВМ выделена.

Важно: выбор прошивки нужно сделать до первой загрузки ВМ — после первого запуска прошивку менять нельзя.

  1. Создайте каталог NVRAM для вашей ВМ и скопируйте файл переменных OVMF для каждой отдельной ВМ. На хосте выполните:
sudo mkdir -p /var/lib/libvirt/qemu/nvram
sudo cp /usr/share/edk2/ovmf/OVMF_VARS.fd /var/lib/libvirt/qemu/nvram/YOUR-VM-NAME_VARS.fd
sudo chown libvirt-qemu:libvirt-qemu /var/lib/libvirt/qemu/nvram/YOUR-VM-NAME_VARS.fd

Замените YOUR-VM-NAME на имя вашей виртуальной машины (без пробелов). Это создаст отдельный файл NVRAM для указанной ВМ.

  1. Вернитесь в Cockpit и нажмите «Install» (Установить) для загрузки установщика в UEFI-режиме.

Кнопка «Install» для запуска установки ВМ выделена.

  1. После загрузки внутри ВМ проверьте, что система запущена в режиме UEFI:
ls /sys/firmware/efi

Если каталог существует и возвращает содержимое — ВМ работает в EFI-режиме.

Виртуальная машина запущена в режиме UEFI, на экране видны элементы прошивки.

Примечание для Windows: в Windows 10/11 можно открыть «msinfo32.exe» и посмотреть строку «BIOS Mode», где будет указано «UEFI».

Создание UEFI-совместимой ВМ через командную строку

Иногда удобнее не устанавливать дополнительные GUI-пакеты и создавать ВМ из терминала.

  1. Скопируйте файл переменных OVMF в каталог NVRAM для каждой ВМ (см. раздел выше):
sudo mkdir -p /var/lib/libvirt/qemu/nvram
sudo cp /usr/share/edk2/ovmf/OVMF_VARS.fd /var/lib/libvirt/qemu/nvram/YOUR-VM-NAME_VARS.fd
sudo chown libvirt-qemu:libvirt-qemu /var/lib/libvirt/qemu/nvram/YOUR-VM-NAME_VARS.fd
  1. Пример команды virt-install для создания ВМ с UEFI-загрузкой (отформатировано для читаемости):
sudo virt-install \
  --name=YOUR-VM-NAME \
  --memory=4096 \
  --vcpus=2 \
  --disk size=40 \
  --boot uefi \
  --graphics vnc \
  --cdrom=/PATH/TO/YOUR/INSTALLER/FILE.iso

Замените параметры на нужные (имя ВМ, путь к ISO, объём ОЗУ в МБ, число vCPU и размер диска в ГБ). Примечание: –memory указывается в мегабайтах, –disk size — в гигабайтах.

  1. После запуска virt-install откройте графический доступ к ВМ через virt-viewer:
sudo virt-viewer YOUR-VM-NAME
  1. Внутри ВМ снова проверьте наличие /sys/firmware/efi, чтобы убедиться в EFI-загрузке.

Fedora 39 запущена в UEFI-режиме в виртуальной машине.

Проверка содержимого каталога efi внутри ВМ.

Дополнительно: шаблоны, чек-листы и отладка

Быстрый чек-лист перед установкой

  • Система обновлена (sudo dnf update).
  • Установлены qemu-kvm, libvirt, virt-install, virt-viewer, edk2-ovmf, cockpit-machines.
  • Службы libvirtd и cockpit.socket включены и запущены.
  • Создан отдельный файл NVRAM для каждой ВМ в /var/lib/libvirt/qemu/nvram.
  • Выбрана прошивка UEFI в настройках ВМ до первой загрузки.

Критерии приёмки

  • ВМ успешно загружается из установочного ISO в режиме UEFI.
  • Внутри гостевой ОС команда ls /sys/firmware/efi возвращает содержимое каталога.
  • Для Windows — в msinfo32 указано «BIOS Mode: UEFI».
  • NVRAM-файл существует и имеет корректные права доступа для процесса libvirt.

Частые ошибки и как их исправить

  • Проблема: «No such file or directory» при копировании OVMF_VARS.fd. Решение: проверьте, установлен ли пакет edk2-ovmf и корректен ли путь /usr/share/edk2/ovmf/OVMF_VARS.fd.

  • Проблема: ВМ всё ещё загружается в BIOS-режиме. Решение: убедитесь, что прошивка ВМ в настройках установлена на UEFI до первого старта, и что указан файл NVRAM для этой ВМ.

  • Проблема: права доступа к файлу NVRAM мешают запуску. Решение: выполните sudo chown libvirt-qemu:libvirt-qemu /var/lib/libvirt/qemu/nvram/YOUR-VM-NAME_VARS.fd (имя группы/пользователя может отличаться в вашей системе).

Роль‑ориентированные задачи

  • Для администратора:

    • Обновить хост и установить необходимые пакеты.
    • Настроить репозитории RHEL (если требуется подписка).
    • Настроить SELinux/права для NVRAM-файлов при необходимости.
  • Для инженера тестирования:

    • Создать отдельные NVRAM-файлы для тестовых ВМ.
    • Тестировать разные комбинации прошивок и схем разделов.
  • Для разработчика ПО:

    • Автоматизировать создание ВМ через скрипты с virt-install и cloud-init, если нужно массовое тестирование.

Шаблон команды virt-install (cheat sheet)

# Пример: 4GB RAM, 2 vCPU, 40GB диск, загрузка с ISO в режиме UEFI
sudo virt-install \
  --name=my-uefi-vm \
  --memory=4096 \
  --vcpus=2 \
  --disk size=40 \
  --boot uefi \
  --os-variant=generic \
  --cdrom=/home/user/isos/windows11.iso \
  --graphics spice

Когда UEFI не нужен — альтернативы

  • BIOS (legacy boot) по-прежнему подходит для лёгких гостевых ОС и старых образов.
  • Для простых сценариев на рабочей станции можно использовать VirtualBox (Type‑2 гипервизор).
  • Для контейнеризации и лёгких изолированных сред лучше использовать Podman/containers.

Небольшая методология тестирования (mini-methodology)

  1. Создайте ВМ с базовыми параметрами и пустым NVRAM-файлом.
  2. Загрузите установщик ОС и убедитесь в присутствии EFI-панели прошивки.
  3. Выполните установку ОС, затем перезагрузку и проверьте /sys/firmware/efi.
  4. Повторите тесты с разными комбинациями дисковых схем и Secure Boot (при необходимости).

Решение на уровне принятия решения (Mermaid)

flowchart TD
  A[Нужен ли UEFI?] -->|Да| B{Поддерживает ли ОС UEFI-only?}
  B -- Да --> C[Выберите UEFI и настройте NVRAM]
  B -- Нет --> D[Можно использовать BIOS]
  A -->|Нет| D
  C --> E[Тестирование и валидация]
  D --> E

(Если ваш просмотрщик не поддерживает mermaid, используйте простую блок-схему в голове: нужна ли UEFI? → да → настройка NVRAM и OVMF; нет → BIOS.)

Частые вопросы (FAQ)

Нужно ли для каждой ВМ отдельное NVRAM-файл?

Да. Для корректной работы и чтобы состояние переменных прошивки не пересекалось между ВМ, для каждой ВМ создавайте отдельный файл в /var/lib/libvirt/qemu/nvram.

Можно ли использовать Secure Boot с edk2-ovmf?

Да, но потребуется дополнительная настройка ключей Secure Boot и использование соответствующей версии OVMF, поддерживающей Secure Boot. Для тестирования без Secure Boot копируйте файл OVMF_VARS.fd как приведено выше.

Можно ли переключить прошивку ВМ с BIOS на UEFI после первой загрузки?

Нет. Libvirt/KVM не позволяет сменить прошивку после первой загрузки ВМ — измените прошивку до первоначального старта или создайте новую ВМ.

Риски и рекомендации безопасности

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

Локальные нюансы для RHEL (советы для региона/локали)

  • На RHEL может потребоваться подписка и подключение соответствующих репозиториев для установки некоторых пакетов (edk2-ovmf и cockpit-machines). Проверьте вашу подписку Red Hat и используйте rhsm или репозитории, разрешённые вашей организацией.

Краткое резюме

  • UEFI в KVM даёт лучшую совместимость с современными ОС и возможностями загрузчика.
  • Установите edk2-ovmf и cockpit-machines, создайте отдельные NVRAM-файлы для каждой ВМ.
  • Выбирайте UEFI в настройках ВМ до первой загрузки; проверяйте /sys/firmware/efi внутри гостя.

Изображения и скриншоты: все изменения и иллюстрации сделаны для наглядности. Изображение на обложке — фотография рабочего стола с ПК.

Image credit: Sanni Sahil via Unsplash. All alterations and screenshots by Ramces Red.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро