Подробный гайд: Настройка графики и нескольких мониторов в QEMU/KVM в Arch Linux
Настройка виртуальной машины QEMU/KVM с поддержкой графического ускорения и двух мониторов в Arch Linux с XFCE — задача вполне решаемая. Лучший и самый стабильный способ реализации этого в Linux — использование связки QEMU + KVM + libvirt + virt-manager с протоколом отображения SPICE.
Шаг 1: Подготовка хоста (Arch Linux + XFCE)
Для начала убедитесь, что у вас установлены все необходимые пакеты. В Arch Linux основной пакет теперь называется qemu-full.
Откройте терминал и выполните:
sudo pacman -S qemu-full libvirt virt-manager edk2-ovmf dnsmasq spice-vdagent
qemu-full— сам эмулятор и инструменты.libvirt— служба управления виртуалками.virt-manager— графический интерфейс.edk2-ovmf— прошивка UEFI (обязательно для Windows и современных Linux).spice-vdagent— агент для интеграции (общий буфер обмена, автоматическое изменение разрешения).
Включите службу libvirt и добавьте своего пользователя в нужную группу:
sudo systemctl enable --now libvirtd
sudo usermod -aG libvirt $(whoami)
Важно:
После выполнения команды usermod нужно выйти из сеанса XFCE и зайти заново (или перезагрузиться), чтобы группы применились.
Шаг 2: Настройка виртуальной машины в Virt-Manager
Чтобы два монитора работали корректно по протоколу SPICE, лучше всего использовать виртуальный видеоадаптер QXL. (Адаптер virtio-vga дает лучшее 3D-ускорение, но с двумя мониторами по SPICE иногда работает нестабильно).
- Откройте virt-manager и создайте новую ВМ (или откройте настройки существующей).
- В окне настроек ВМ (иконка лампочки или оборудования) перейдите в раздел Video (Видео).
- Установите модель видеокарты: QXL.
- Чтобы добавить второй монитор, там же в разделе оборудования нажмите Add Hardware (Добавить устройство) -> Video (Видео) и добавьте вторую видеокарту QXL.
- В разделе Display (Дисплей / Консоль) убедитесь, что тип консоли выбран Spice server.
- В разделе Channel (Каналы) должно быть устройство
com.redhat.spice.0(создается автоматически, нужно для работы spice-vdagent).
Шаг 3: Настройка внутри Гостевой ОС (Virtual Machine)
То, как появятся вторые мониторы, зависит от ОС, которую вы виртуализируете.
Вариант А: Гость — Linux (например, Ubuntu, Fedora, Arch)
Внутри гостевого Linux должен быть установлен агент SPICE.
- Для Arch/Ubuntu:
sudo pacman -S spice-vdagentилиsudo apt install spice-vdagent. - Запустите гостевую ОС. Откройте настройки дисплея в гостевой ОС. Там должны отображаться два виртуальных монитора. Вы можете расширить экраны.
* Если графическая утилита не видит второй экран, используйте консоль гостя:
xrandr --listmonitors
xrandr --output Virtual-2 --auto --right-of Virtual-1
(Имена выходов Virtual-1, Virtual-2, VGA-1 и т.д. могут немного отличаться, смотрите вывод xrandr).
Вариант Б: Гость — Windows (10/11)
Для Windows обязательно нужно установить драйверы QXL и SPICE Tools, иначе Windows не поймет, что мониторов два.
- Скачайте ISO-образ SPICE Guest Tools (например, отсюда или готовый ISO из репозиториев Fedora/AltLinux). В Virt-Manager подключите этот ISO в виртуальный CD-ROM.
- Внутри Windows запустите
spice-guest-tools.exeи установите его. Он установит драйверы видеокарты QXL и агента. - Перезагрузите Windows.
- Кликните правой кнопкой мыши по рабочему столу Windows -> Параметры экрана (Display settings).
- Нажмите Обнаружить (Detect) или выберите режим Расширить эти экраны (Extend these displays).
Шаг 4: Специфика XFCE и полноэкранного режима
Когда вы настроите два монитора внутри виртуалки, вам нужно будет правильно раскинуть их по вашим физическим мониторам хоста:
- В окне просмотра консоли Virt-Manager нажмите кнопку Fullscreen (Во весь экран) или используйте сочетание клавиш (обычно
Ctrl+Alt+Fили через меню Вид -> Полноэкранный режим). - Если у вас в XFCE настроено два физических монитора, окно
remote-viewer(которое открывает virt-manager) растянется на оба экрана, и виртуальные рабочие столы идеально лягут на физические.
3. Совет для XFCE:
Убедитесь, что в настройках дисплея самого XFCE (Меню приложений -> Настройки -> Дисплей) ваши физические мониторы настроены в режиме "Расширенный рабочий стол", а не дублируются.
Альтернатива: Запуск через командную строку (без virt-manager)
Если вы предпочитаете запускать QEMU скриптом из терминала, аргументы для двух мониторов и графики будут выглядеть примерно так:
qemu-system-x86_64 \
-enable-kvm \
-m 4G \
-drive file=/path/to/disk.qcow2,if=virtio \
-device qxl-vga \
-device qxl \
-spice port=5900,addr=127.0.0.1,disable-ticketing=on \
-device virtio-serial-pci \
-device virtserialport,chardev=spicechannel0,name=com.redhat.spice.0 \
-chardev spicevmc,id=spicechannel0,name=vdagent
После запуска этой команды, откройте окно терминала и введите:
remote-viewer spice://127.0.0.1:5900
Откроется окно с графикой, где гостевая ОС увидит два монитора (благодаря флагам -device qxl-vga и -device qxl).
Важно:
Для стабильной работы 2-х мониторов используйте 2 видеокарты QXL в настройках QEMU и протокол SPICE, а внутри гостя обязательно установите spice-vdagent (для Linux) или spice-guest-tools (для Windows).
Мы делимся этой технической информацией, чтобы помочь вам в решении задач — используйте её с пониманием. Статья носит рекомендательный характер, поэтому, пожалуйста, применяйте описанные методы осмотрительно.