LinuxRuLinux без лишней теории
Виртуализация

Виртуальная машина в Linux: KVM с virt-manager или VirtualBox для Windows 11

Редакция LinuxRu7 мин чтенияИнструкции

Виртуальная машина в Linux создаётся либо через KVM с графической оболочкой virt-manager, либо через VirtualBox. KVM встроен в ядро и не ломается после обновлений, VirtualBox проще для новичка и переносим между системами. Ниже установка обоих, Windows 11 с TPM 2.0 и Secure Boot, общие папки и проброс USB.

Виртуальная машина в Linux: KVM с virt-manager или VirtualBox для Windows 11
Фото: Diego Carvalho, CC BY-SA 4.0, Wikimedia Commons
Содержание
  1. KVM или VirtualBox
  2. Проверка CPU
  3. Установка KVM
  4. Windows 11 в KVM
  5. VirtualBox
  6. Общие папки
  7. Проброс USB
  8. Типичные сбои
  9. Частые вопросы

KVM с virt-manager или VirtualBox: что выбрать

Обе программы запускают Windows и другие Linux внутри основной системы, но устроены по-разному. KVM - гипервизор в самом ядре Linux, а virt-manager только графическая оболочка к нему через libvirt. VirtualBox от Oracle ставит собственные модули ядра и работает одинаково на Linux, Windows и macOS.

KVM + virt-managerVirtualBox 7.2
Где берётсярепозиторий любого дистрибутиварепозиторий или virtualbox.org
Модули ядрауже в ядреvboxdrv, пересборка при обновлении ядра
Secure Boot на хостеработает без настройкинужно подписать модули ключом MOK
Windows 11 (TPM, UEFI)swtpm и OVMFвстроенные TPM 2.0 и EFI
Общие папкиvirtiofsGuest Additions, настраивается мышкой
Проброс USBUSB host device или перенаправление SPICEфильтры USB в настройках ВМ
Порог входавыше, больше терминологииниже, привычный интерфейс

Если вы на Linux надолго и хотите, чтобы виртуалки не ломались после каждого обновления ядра, берите KVM. Если машины нужно переносить между Windows и Linux или вы следуете учебному курсу, где всё показано в VirtualBox, ставьте его. Держать оба можно, но запускать одновременно нельзя, об этом ниже.

Проверка аппаратной виртуализации

Без Intel VT-x или AMD-V виртуальные машины либо не запустятся, либо будут работать очень медленно. Проверка:

# больше нуля - процессор умеет виртуализацию
grep -cE 'vmx|svm' /proc/cpuinfo
# загружены ли модули KVM
lsmod | grep kvm
# Ubuntu: понятный вердикт
sudo apt install cpu-checker
kvm-ok

Если grep вернул 0, включите виртуализацию в BIOS или UEFI. Пункт называется Intel Virtualization Technology, VT-x, SVM Mode или AMD-V и обычно спрятан в разделе Advanced или CPU Configuration.

Установка KVM и virt-manager в Ubuntu, Fedora и Arch

# Ubuntu 26.04, Debian 13
sudo apt install qemu-system-x86 libvirt-daemon-system virt-manager ovmf swtpm-tools
# Fedora 44
sudo dnf install @virtualization swtpm swtpm-tools
# Arch Linux
sudo pacman -S qemu-full libvirt virt-manager dnsmasq edk2-ovmf swtpm
sudo systemctl enable --now libvirtd

В Ubuntu и Debian служба libvirt включается при установке. В Fedora используются модульные демоны, их сокеты включаются автоматически. Если virt-manager пишет, что не может подключиться к QEMU/KVM, выполните sudo systemctl enable --now virtqemud.socket.

Чтобы управлять машинами без пароля root, добавьте себя в группу libvirt и перезайдите в систему. Про группы подробнее в статье о пользователях и sudo.

sudo usermod -aG libvirt $USER
# после повторного входа
groups | grep libvirt
# сеть NAT по умолчанию должна быть активна
sudo virsh net-list --all
sudo virsh net-start default
sudo virsh net-autostart default

Диски машин по умолчанию лежат в /var/lib/libvirt/images. Образ Windows 11 со временем занимает 40-60 ГБ, поэтому заранее проверьте свободное место на корневом разделе.

Установка Windows 11 в virt-manager с TPM и Secure Boot

Скачайте ISO Windows 11 с сайта Microsoft и образ драйверов virtio-win.iso из проекта virtio-win (Fedora). Драйверы нужны, чтобы Windows увидела быстрый диск VirtIO и сетевую карту.

  1. В virt-manager нажмите "Создать виртуальную машину", выберите локальный ISO. Тип ОС определится как Microsoft Windows 11.
  2. Дайте минимум 4 ГБ ОЗУ и 2 ядра, лучше 8 ГБ и 4 ядра. Диск от 64 ГБ.
  3. На последнем шаге отметьте "Настроить конфигурацию перед установкой".
  4. В разделе Обзор проверьте: чипсет Q35, прошивка UEFI с secboot в названии файла (OVMF_CODE.secboot или аналог).
  5. Если устройства TPM в списке нет, нажмите "Добавить оборудование", TPM, тип Эмулированный, версия 2.0.
  6. У диска SATA смените шину на VirtIO, у сетевой карты модель на virtio. Добавьте второй CD-привод и подключите к нему virtio-win.iso.
  7. Начните установку. Когда установщик скажет, что дисков нет, нажмите "Загрузить драйвер" и укажите на CD с virtio каталог viostor\w11\amd64.

После установки запустите с того же CD virtio-win-guest-tools.exe: он поставит драйвер сети, балун памяти, агент QEMU и SPICE-агент для общего буфера обмена и автоматической смены разрешения окна.

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

VirtualBox на Ubuntu и других дистрибутивах

# Ubuntu 26.04 (репозиторий multiverse); в Debian 13 пакета в основном архиве нет, берите его с virtualbox.org
sudo apt install virtualbox
# Fedora 44: пакет из RPM Fusion
sudo dnf install VirtualBox
# Arch Linux, для стандартного ядра linux
sudo pacman -S virtualbox virtualbox-host-modules-arch
# доступ к USB-устройствам
sudo usermod -aG vboxusers $USER

Свежую версию 7.2 можно поставить с virtualbox.org пакетом под ваш дистрибутив. Пакеты дистрибутива и Oracle не смешивайте, удаляйте один перед установкой другого. Для Windows 11 в VirtualBox 7 при создании машины включаются EFI, Secure Boot и TPM 2.0, отдельный эмулятор не нужен.

Secure Boot и модуль vboxdrv

Если после установки VirtualBox пишет Kernel driver not installed (rc=-1908), а в системе включён Secure Boot, модуль не подписан. Ubuntu при установке предлагает задать пароль MOK и подтвердить ключ после перезагрузки в синем экране MokManager. Подробный порядок действий в статье про Secure Boot и сторонние драйверы. Пересобрать модули после обновления ядра: sudo /sbin/vboxconfig.

Конфликт с KVM

Начиная с ядер 6.12 модуль kvm занимает VT-x сразу при загрузке. VirtualBox тогда падает с ошибкой VERR_VMX_IN_VMX_ROOT_MODE. Варианты: выгрузить модуль на время работы VirtualBox (sudo modprobe -r kvm_intel или kvm_amd) либо добавить параметр ядра kvm.enable_virt_at_load=0. Одновременно гонять машины KVM и VirtualBox не получится в любом случае.

Общие папки между хостом и виртуальной машиной

KVM: virtiofs

В настройках выключенной машины откройте раздел Память и включите "Общая память". Затем "Добавить оборудование", Файловая система, драйвер virtiofs, исходный путь например /home/user/share, целевой путь (это метка) share.

# в гостевом Linux
sudo mount -t virtiofs share /mnt/share
# постоянно, строка в /etc/fstab гостя
share  /mnt/share  virtiofs  defaults  0  0

В гостевой Windows нужны WinFsp и служба VirtIO-FS из пакета virtio-win-guest-tools. Запустите службу VirtioFsSvc и сделайте её автоматической, после этого папка появится отдельным диском.

VirtualBox: Guest Additions

В окне машины выберите Устройства, "Подключить образ диска Дополнений гостевой ОС" и установите их внутри гостя. Затем Настройки, Общие папки, плюс, укажите путь на хосте и включите "Авто-подключение". В гостевом Linux пользователя нужно добавить в группу vboxsf, иначе каталог /media/sf_имя будет недоступен:

sudo usermod -aG vboxsf $USER

Проброс USB-устройств в виртуальную машину

Флешки, токены, принтеры и телефоны можно отдать гостю целиком: на хосте устройство на это время пропадёт.

В virt-manager

  • постоянно: "Добавить оборудование", Устройство USB хоста, выбрать из списка. Устройство будет подключаться при каждом старте машины;
  • на лету: в окне работающей машины меню Виртуальная машина, "Перенаправить USB-устройство". Это работает через SPICE и удобно для разового подключения.

Из терминала устройство подключается по описанию в XML. Узнайте идентификаторы через lsusb, например ID 0951:1666, и создайте файл usb.xml:

<hostdev mode='subsystem' type='usb' managed='yes'>
  <source><vendor id='0x0951'/><product id='0x1666'/></source>
</hostdev>
virsh attach-device win11 usb.xml --live
virsh detach-device win11 usb.xml --live

В VirtualBox

В настройках машины, раздел USB, выберите контроллер USB 3.0 (xHCI) и добавьте фильтр для нужного устройства. Если список устройств пуст, пользователь не состоит в группе vboxusers или вы не перезашли после добавления.

Перед экспериментами с драйверами внутри Windows делайте снимок машины: в virt-manager это вкладка Снимки, в VirtualBox кнопка "Сделать снимок". Откат занимает секунды, переустановка Windows час. Снимки растут со временем, удаляйте ненужные, если место на диске заканчивается.

Типичные ошибки и что с ними делать

  • KVM недоступен в virt-manager - виртуализация выключена в BIOS или пользователь не в группе libvirt;
  • У машины нет интернета - неактивна сеть default: sudo virsh net-start default. На хостах с Docker проверьте, что его правила файрвола не режут форвардинг;
  • Тормозит графика в Windows - выберите видео QXL или VirtIO и поставьте guest tools, в VirtualBox включите VBoxSVGA и выделите 128 МБ видеопамяти;
  • После обновления ядра VirtualBox не стартует - выполните sudo /sbin/vboxconfig и посмотрите, нет ли ошибок сборки, часто не хватает пакета linux-headers для нового ядра.

Если вам нужна одна-две Windows-программы, а не вся система, сначала попробуйте Wine и Bottles: это быстрее и не съедает десятки гигабайт. Подробная документация по libvirt и формату XML есть на libvirt.org.

Частые вопросы

Что быстрее, KVM или VirtualBox?

На Linux-хосте KVM обычно работает быстрее за счёт драйверов VirtIO и того, что гипервизор встроен в ядро. Для офисной работы в Windows разница заметна в основном на дисковых операциях.

Можно ли установить VirtualBox и KVM одновременно?

Установить можно, запускать машины одновременно нельзя. На ядрах 6.12 и новее для VirtualBox выгрузите модуль kvm_intel или kvm_amd либо используйте параметр kvm.enable_virt_at_load=0.

Почему установщик Windows 11 не видит диск в virt-manager?

Диск подключён по шине VirtIO, а драйвера у установщика нет. Подключите virtio-win.iso вторым приводом и загрузите драйвер из каталога viostor\w11\amd64.

Нужен ли Extension Pack для USB 3.0 в VirtualBox 7?

Нет, контроллеры USB 2.0 и 3.0 входят в основной пакет. Extension Pack добавляет VRDP, проброс веб-камеры, шифрование дисков и PXE, и бесплатен только для личного использования.

Сколько памяти дать Windows 11 в виртуальной машине?

Минимум 4 ГБ, комфортно 8 ГБ. Хосту оставьте не меньше 4 ГБ, иначе начнётся активная работа swap и обе системы будут тормозить.

Документация и источники

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

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