Если есть у кого замечания и дополнения пишите…
По умолчанию QEMU поддерживает архитектуры i386 и x86_64. Отредактируйте флаги для поддержки необходимых гостевых машин. Пример добавления поддержки архитектуры arm:
#
mcedit /etc/portage/make.conf/custom
Добавляем:
QEMU_SOFTMMU_TARGETS="arm i386 x86_64"
Устанавливаем qemu libvirt virt-manager virtio-win:
Соберите QEMU с нужными USE-флагами
В Gentoo для поддержки 3D-ускорения QEMU должен иметь включённые USE-флаги opengl
и virgl
:
#
echo "app-emulation/qemu opengl virgl" >> /etc/portage/package.use/custom
А также устанавливаем USE-флаг для spice
:
echo "app-emulation/spice -smartcard" >> /etc/portage/package.use/custom
Устанавливаем все необходимые пакеты:
#
emerge -av app-emulation/qemu app-emulation/libvirt app-emulation/virt-manager app-emulation/virtio-win app-emulation/virtiofsd media-libs/virglrenderer
Запускаем демон libvirt и добавляем его в автозагрузку:
#
/etc/init.d/libvirtd start
#
rc-update add libvirtd
Отредактируйте файл настроек:
#
mcedit /etc/libvirt/qemu.conf
Добавляем:
# Позволит vnc слушать на всех адресах
vnc_listen = "0.0.0.0"
# Отключим tls (если виртуальны машины используются не для тестирования, то лучше tls включить и настроить)
vnc_tls = 0
# Пароль по умолчанию для vnc - он будет использоваться в том случае, если для виртуальной машины не указан свой пароль
vnc_password = "XYZ12345"
# Пользователь от которого будет запускаться QEMU
user = "root"
# Группа от которой будет запускаться QEMU
group = "root"
# Формат сохранения и дампов, gzip или другое сжатие позволит уменьшить место, занимаемое образами, но притом увеличит время сохранения образов.
save_image_format = "gzip"
dump_image_format = "gzip"
Также для виртуальной сети нам понадобятся модули tun и vhost_net. Загружаем модули:
#
modprobe -a tun vhost_net
и добавляем их в автозагрузку создаем файл:
==/etc/modules-load.d/qemu.conf==
Вписываем:
tun
vhost_net
При первом и последующих запусках у вас будет спрашиваться пароль root
Давайте решим и эту проблему включив вашего пользователя в группу libvirt, следующей командой
#
gpasswd -a ПОЛЬЗОВАТЕЛЬ libvirt
Вместо ПОЛЬЗОВАТЕЛЬ — вписываем своего пользователя.
#
reboot
Директория образа драйверов virtio-win:
/usr/share/drivers/windows
Директория виртуальных образов:
/var/lib/libvirt/images/
Включение 3D-ускорения в виртуальной машине:
Работает драйверами amdgpu
AMD и с nouveau
NVIDIA.
С проприетарным драйвером NVIDIA nvidia-drivers
не работает.
В virt-manager:
- В разделе Видео выберите модель:
virtio
и включите “Ускорение 3D”. - В разделе Дисплей выберите Тип:
Сервер SPICE
, выберитеТип ожидания - Нет
, обязательно поставьте галочкуOpenGL
(включить поддержку OpenGL). - XML
<graphics type="spice">
<listen type="none"/>
# или <listen type="socket"/>
<image compression="off"/>
<gl enable="yes" rendernode="/dev/dri/by-path/pci-0000:2f:00.0-render"/>
</graphics>
Гостевая ОС Gentoo/Calculate-Linux:
- В Gentoo для поддержки VirGL в Mesa нужно включить video_cards_virgl, а не просто
virgl
. - Добавьте в ==
/etc/portage/package.use/custom
== строку ==media-libs/mesa video_cards_virgl
==:
#
echo "media-libs/mesa video_cards_virgl" >> /etc/portage/package.use/custom
Пересобрать Mesa:
#
emerge -av media-libs/mesa
Общий буфер обмена:
- Linux: установить
spice-vdagent
на гостевой компьютер:
# Arch
sudo pacman -S spice-vdagent
# Debian
sudo apt install spice-vdagent
# Fedora
sudo yum install spice-vdagent
# Gentoo
emerge -av app-emulation/spice-vdagent
- Windows: Установите spice-guest-tools 282 на гостевой компьютер.
Примечание:
В госте Gentoo/Calculate-Gnome буфер обмена работает только после принудительного перезапуска сервиса:
#
rc-service spice-vdagent restart
Общие папки :
На вашем хост-компьютере:
Чтобы создать общие папки при помощи драйвера Virtiofsd, нужно установить на хосте
#
emerge -av app-emulation/virtiofsd
Для работы Virtiofs требуется раздельная память. Её можно включить в окне конфигурации оборудования. Перейдите в раздел «Оборудование» → «Память» и выберите «Включить раздельную память».
-
Создайте папку для совместного использования.
-
Откройте virt-manger, выберите виртуальную машину, с которой вы хотите поделиться папкой, и нажмите «Открыть»:
-
Перейдите на вкладку “Информация”, а затем нажмите “Добавить оборудование”:
[
-
Выберите файловую систему и заполните поля.
[
- Драйвер (Driver): Сохраняйте это как
virtiofs
- Путь на хосте (Source path): это путь к папке, которой вы хотите поделиться на своём хостинге.
- Путь в гостевой ОС (Target path): это вводит в заблуждение. Это не путь, а название, которое будет присвоено общему ресурсу на гостевой машине.
- Драйвер (Driver): Сохраняйте это как
-
После того как вы заполните поля, нажмите кнопку «Готово».
Это всё, что вам нужно сделать на вашем хостинге.
О госте:
Linux:
- Создайте папку, к которой будет привязан общий ресурс.
- Откройте терминал на гостевой машине и введите:
sudo mount -t virtiofs sharename path/on/guest
- Чтобы сделать его постоянным, добавьте следующую запись в
/etc/fstab
:
sharename path/on/guest virtiofs defaults 0 0
Пример:
sudo mount -t virtiofs Share /mnt/Share
Share /mnt/Share virtiofs defaults 0 0
- Вот и все! Старый добрый Linux!!
Windows:
-
Установите пакет
app-emulation/virtio-win
.-
Снова перейдите на вкладку “Информация” и нажмите на “Добавить оборудование”
-
Выберите вариант хранилища, нажмите «Выбрать или создать пользовательское хранилище»,
-
Измените «тип устройства:», а затем нажмите «Управление».
-
Нажмите на “Локальный обзор” и выберите
/var/lib/ibvirt/images/virtio-win.iso
-
Выберите «virtio-win.iso» и нажмите «Выбрать том».
[
-
Или, если вы предпочитаете ручной способ, скачайте драйвер virtio 64 на компьютер с Windows и установите его там.
-
-
Скачайте WinFSP и установите его (на гостевой компьютер). В установщике выберите опцию установки файлов разработчика. К ним относятся файлы файловой системы MEMFS, а также файлы заголовков и библиотек, которые позволяют разрабатывать собственную файловую систему пользовательского режима.
-
(В гостевом компьютере), откройте проводник и выберите CD-ROM устройство с примонтированым образом virtio-win. Запустите virtio-win-guest-tools от имени Администратора и установите драйвера.
-
Откройте диспетчер устройств и проверьте установились-ли драйвера:
-
Щёлкните правой кнопкой мыши по «Контроллеру запоминающих устройств» и выберите «Обновить драйвер». Выберите «Поиск драйверов на моём компьютере» и укажите подключённый ISO-образ.
-
Зайдите в “Службы” Windows, в “VirtIO-FS Service” установите “Автоматически”, перезагузите виртуальную машину.
-
Теперь общие папки должны отображаться, как подключенные диски, в проводнике файлов.
Открытие и запуск окна виртуальной машины:
$
virsh --connect qemu:///system start НАЗВАНИЕ_ВИРТУАЛЬНОЙ_МАШИНЫ && virt-manager --connect qemu:///system --show-domain-console НАЗВАНИЕ_ВИРТУАЛЬНОЙ_МАШИНЫ
Решение: объединить команды в скрипт
Поскольку virt-manager сам не умеет автоматически запускать ВМ, но может подключиться к уже запущенной, можно использовать такой bash-скрипт:
#!/bin/bash
# Подключение к системному QEMU и запуск ВМ, если она остановлена
virsh --connect qemu:///system start НАЗВАНИЕ_ВИРТУАЛЬНОЙ_МАШИНЫ
# Открытие графической консоли после запуска
virt-manager --connect qemu:///system --show-domain-console НАЗВАНИЕ_ВИРТУАЛЬНОЙ_МАШИНЫ
Сохраните это в файл, например, ==start_vm_and_show_console.sh==, и сделайте его исполняемым:
chmod +x start_vm_and_show_console.sh
Установка Windows-11 гостем:
В virt-manager:
Добавить оборудование: TPM
Тип: Эмулировано
Модель: CRB
Версия: 2.0