Запуск windows на kvm

Время на прочтение6 мин

Количество просмотров179K

Хотим мы того или нет, но программы, для которых необходима Windows, никуда из офисов не исчезли. В ситуации, когда их использование безальтернативно, лучше иметь виртуальную ОС, например для того, чтобы подключиться к аудио-конференции через Skype for Business.

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

Подготовка

Самый первый шаг — настройка параметров ядра. Обязательна поддержка KVM и vhost-net, желательна поддержка туннельных интерфейсов[1] и сетевого моста[2]. Полный список на Gentoo вики-странице QEMU.

Подготовьте дисковое пространство. Я выделил 70 GiB, и Windows 8.1 за пару месяцев использовала почти 50 GiB так, что для обновления до 10-й версии места на диске не хватило.

Далее, нам понадобится набор редхатовских драйверов virtio-win. Если у вас установлен RedHat, достаточно запустить

[root@server ~]# yum install virtio-win

и образ iso будет записан в каталог /usr/share/virtio-win/. Также можно его скачать с репозитариев Fedora.
Убедитесь, что поддержка аппаратной виртуализация включена в BIOS/UEFI. Без этого KVM не будет активирован, а virt-manager выдаст вот такую ошибку.

В качестве проверки можно прочитать файл устройства.

(2:506)$ ll /dev/kvm
crw-rw----+ 1 root kvm 10, 232 ноя 9 02:29 /dev/kvm

Если файл не обнаружен, а опции ядра выставлены верно, значит дело в настройках BIOS/UEFI.
Устанавливаем нужные пакеты.

(5:519)$ sudo emerge -av qemu virt-manager

Для RedHat 7 достаточно установить только virt-manager, так как QEMU устанавливается по умолчанию.

[root@server ~]# yum install virt-manager

Дебианщикам надо установить пакет qemu.

root# aptitute install qemu

Можно теперь переходить к установке.

Запуск и инсталляция

Запускаем virt-manager и создаем новую виртуальную машину из локального хранилища.

Указываем путь к установочному iso образу Windows.

Далее, на 3-м и 4-м шаге будет выбор количества CPU, объем RAM и размер дискового пространства, после чего на 5-м шаге следует выбрать дополнительные конфигурации перед настройкой.

Окно дополнительных настроек нужно для того, чтобы выполнить финт ушами. Его смысл в том, чтобы добавить виртуальный флопарь с драйверами из набора virtio-win. Это даст возможность изменить тип жесткого диска: удалить диск с шиной IDE и добавить его же, но с шиной VirtIO. Подробно, в доках RedHat.

Прописываем драйвер /usr/share/virtio-win/virtio-win.vfd и добавляем виртуальный флоппи-диск. Затем переходим на вкладку [Шина] Диск № и проделываем финт с заменой шины диска: удаляем с IDE и добавляем с VirtIO.

Чуть не забыл сказать, для чего нужен этот фокус. Специалисты утверждают, что с шиной VirtIO, производительность диска ощутимо выше.

В принципе, уже можно начинать инсталляцию, но мы забыли добавить CD-ROM с драйверами virtio-win, а они нам пригодятся, когда диспетчер устройств засверкает желтыми иконками вопросительного знака.

Ну вот теперь можно начать установку.

Ну хорошо, начали мы установку. А что, если установщик Windows попросит сменить диск? Мне из-за этого пришлось пару раз прервать и начать всю карусель заново, но с вами такого уже не случится.

(qemu) change ide1-cd0 /tmp/windows_8.1_x64_disk2.iso

Драйвера и доводка

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

Ethernet Controller
PCI Simple Communication Controller
SCSI Controller

Нужно скормить им драйвера из набора virtio-win, что подключены через IDE CD-ROM в предыдущем разделе.

Делается это стандартно: правой кнопкой на желтый знак вопроса, обновить драйвера, путь к файлам.

Вот весь список, а это соседняя страница RedHat доков, где установка драйверов показана подробнее.

  • Balloon, the balloon driver, affects the PCI standard RAM Controller in the System devices group.
  • vioserial, the serial driver, affects the PCI Simple Communication Controller in the System devices group.
  • NetKVM, the network driver, affects the Network adapters group. This driver is only available if a virtio NIC is configured. Configurable parameters for this driver are documented in Appendix E, NetKVM Driver Parameters.
  • viostor, the block driver, affects the Disk drives group. This driver is only available if a virtio disk is configured.

Оборудование

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

У меня выбран дисплей Сервер Spice и звуковое устройство ich6. Нет, конечно, если у вас уйма времени и желание во всем разобраться до самых тонкостей — дерзайте и пробуйте альтернативные подходы, но у меня звук взлетел, вернее завибрировал, только с такими настройками. Во второй части, посвященной прогулке по граблям и отлову багов, я расскажу об этом подробнее. В закладке видео я выставил QXL, ибо с этой опцией, благодаря волшебному драйверу, мне удалось добиться нормального разрешения экрана.

Подключаться к ВМ можно разнообразно.

  1. Через графический интерфейс virt-manager
  2. Выбрать дисплей VNC-сервер и подключаться через vnc-клиента
  3. Установить Spice-клиента и подключаться через него
  4. К Windows можно подключиться через rdp, если включен терминальный сервер

У меня вариант 3, для Gentoo это программа spice-gtk

$ eix spice-gtk
[I] net-misc/spice-gtk
     Доступные версии:      0.31 ~0.32-r1 ~0.32-r2 **9999 {dbus gstaudio gstreamer gstvideo gtk3 +introspection libressl lz4 mjpeg policykit pulseaudio python sasl smartcard static-libs usbredir vala webdav PYTHON_SINGLE_TARGET="python2_7 python3_4" PYTHON_TARGETS="python2_7 python3_4"}
     Установленные версии:  0.31(16:05:41 18.06.2016)(gtk3 introspection pulseaudio python usbredir -dbus -gstreamer -libressl -lz4 -policykit -sasl -smartcard -static-libs -vala -webdav PYTHON_SINGLE_TARGET="python2_7 -python3_4" PYTHON_TARGETS="python2_7 python3_4")
     Домашняя страница:     http://spice-space.org https://cgit.freedesktop.org/spice/spice-gtk/
     Описание:              Set of GObject and Gtk objects for connecting to Spice servers and a client GUI

Сеть

Сеть для ВМ можно настроить по-разному, на Хабре умельцы уже об этом писали. Я перепробовал несколько способов, и в конце простота опять взяла вверх. Сама ВМ запускается из под рута[3], но графический интерфейс spice-gtk — из под обычного непривилегированного пользователя. Это позволяет решить дилемму: для сетевых опций нужны права рута, а для звукового демона pulseaudio, рут запрещен. Я пробовал навешать все права на обычного пользователя, но ничего не получалось, то pulse не пульсирует, то сеть не создается, там много а тут мало. В итоге решил так и доволен. Буду рад, если в комментариях будет найден лучший способ.

Такой простой выбор сетевых опций дает результат превосходящий ожидания. Создаются 3 дополнительных сетевых интерфейса: virbr0, virbr0-nic, vnet0.

$ ip addr
...
4: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 52:54:00:cc:2a:1e brd ff:ff:ff:ff:ff:ff
    inet 192.168.102.1/24 brd 192.168.102.255 scope global virbr0
       valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:cc:2a:1e brd ff:ff:ff:ff:ff:ff
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master virbr0 state UNKNOWN group default qlen 1000
    link/ether fe:54:00:fb:50:45 brd ff:ff:ff:ff:ff:ff
    inet6 fe80::fc54:ff:fefb:5045/64 scope link 
       valid_lft forever preferred_lft forever

В iptables создается свод правил, вот основные:

$ sudo iptables -L
...
Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  anywhere             192.168.102.0/24     ctstate RELATED,ESTABLISHED
ACCEPT     all  --  192.168.102.0/24     anywhere 

Windows ВМ:

C:\Users\user>ipconfig

Windows IP Configuration
Ethernet adapter Ethernet 2:

   Connection-specific DNS Suffix  . :
   Link-local IPv6 Address . . . . . : fe80::90c3:a458:6645:7b9a%7
   IPv4 Address. . . . . . . . . . . : 192.168.102.203
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.102.1

Tunnel adapter isatap.{BD8F0DA4-92A8-42BD-A557-23AC89AED941}:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . :

Tunnel adapter IPHTTPSInterface:

   Connection-specific DNS Suffix  . :
   IPv6 Address. . . . . . . . . . . : 2620:0:a13:8a7:51af:79ae:92b8:828a
   Temporary IPv6 Address. . . . . . : 2620:0:a13:8a7:b49d:81fe:e509:16e7
   Link-local IPv6 Address . . . . . : fe80::51af:79ae:92b8:828a%15
   Default Gateway . . . . . . . . . :

Повторяю, все это libvirtd создает сам, ничего для этого делать не надо. В результате имеем нормальный роутинг между хостом и ВМ, можно обмениваться файлами по ssh / scp. Можно пойти дальше и создать шару на Windows, а на Linux хосте настроить samba, но мне это показалось избыточным.

В завершение

Трудно рассказать в одной статье обо всех аспектах Windows + QEMU/KVM, поэтому завершим в следующей. А там будет самый смак, командный интерфейс, разрешение экрана максимум 1024×768, Сцилла pulseaudio и Харибда сети, команда virsh и настройка ВМ из конфиг файла, фейл с tpm, двоичный синтаксис устройств и прочие тихие радости.


  1. ↑TUN/TAP interfaces
  2. ↑Ethernet bridging
  3. ↑От английского root

Если эта публикация вас вдохновила и вы хотите поддержать автора — не стесняйтесь нажать на кнопку

В данной статье мы подробно рассмотрим как правильно настроить систему виртуализации KVM/libvirt в Fedora и установим в качестве гостевой ОС Microsoft Windows 10.

Введение

Многие пользователи для запуска виртуальных машин до сих пор предпочитают использовать VirtualBox, поэтому в данной статье мы решили рассмотреть альтернативу, имеющую ряд серьёзных преимуществ:

  • нет необходимости в установке out-of-tree модулей ядра, т.к. они уже входят в его состав;
  • корректная работа на конфигурациях с активной технологией UEFI Secure Boot;
  • более быстрая работа гипервизора за счёт отсутствия необходимости переключения между режимами ядра и пользователя.

Первым делом установим ряд необходимых пакетов:

sudo dnf install libvirt qemu-kvm virt-manager

По окончании активируем автоматическую загрузку сервиса libvirtd при помощи systemd:

sudo systemctl enable --now libvirtd.service

Внимание! Сразу после этого действия может отключиться текущее сетевое соединение из-за изменения в конфигурации адаптеров и появления новых виртуальных. Это нормальное явление. Именно по этой причине не следует пытаться установить KVM через SSH подключение.

Перезагрузим систему:

sudo systemctl reboot

Выбор режима работы KVM

KVM поддерживает работу в двух режимах:

  • системный сеанс — qemu:///system — виртуальные машины будут запускаться с повышенными правами от имени пользователя libvirt с полноценной поддержкой сети и общими для всех пулами данных;
  • пользовательский сеанс — qemu:///session — виртуальные машины будут запускаться с правами текущего пользователя с индивидуальным пулом и поддержкой сети при помощи qemu-bridge.

Более полное сравнение можно найти здесь (на английском языке).

Системный сеанс считается enterprise-ready решением, а пользовательский наиболее безопасным.

Настройка системного сеанса KVM

Настройка прав доступа

Для работы с виртуальными машинами внутри системного сеанса необходимо состоять в особой группе libvirt, поэтому добавим нашу основную учётную запись в неё:

sudo usermod -a -G libvirt $(whoami)

Создание подключения к пулу

Запустим Менеджер виртуальных машин (virt-manager) из меню используемой графической среды.

Главное окно Virt Manager

Главное окно Virt Manager

Если в списке отсутствует пункт QEMU/KVM, добавим его, вызвав диалог создания нового подключения через меню ФайлДобавить соединение.

Создание подключения

Создание подключения

В поле Гипервизор выберем пункт QEMU/KVM, затем установим флажок в чекбокс Подключаться автоматически и нажмём Подключиться. Новый пункт появится в списке как показано на скриншоте выше.

Создание каталогов для образов

По умолчанию предлагается использовать каталог /var/lib/libvirt/images для хранения дисковых образов виртуальных машин, однако место внутри корневого раздела у большинства ограничено, поэтому мы создадим новое на отдельном разделе диска.

Внимание! Для системного сеанса не следует указывать в качестве хранилища каталоги, расположенные внутри /home, т.к. SELinux настроен на полную блокировку доступа к домашним каталогам пользователей для любых системных сервисов и по этой причине гипервизор не сможет работать с ними.

В главном окне менеджера выделим пункт QEMU/KVM, затем в меню Правка выберем пункт Свойства подключения и переключимся на вкладку Пространство данных.

Стандартные настройки хранения образов

Стандартные настройки хранения образов

Создадим новый раздел диска, отформатируем его в любую поддерживающую Unix-права доступа файловую систему (рекомендуется ext4 или xfs), пропишем в /etc/fstab и смонтируем например в качестве /media/virt.

Перейдём в созданный раздел и создадим два каталога: images для дисковых образов виртуальных машин и iso для ISO образов, из которых будет производиться установка операционных систем:

sudo mkdir /media/virt/{images,iso}
sudo chown $(whoami):libvirt /media/virt/{images,iso}

В левой панели окна менеджера пространств данных нажмём кнопку Добавить пул (с символом плюс).

Добавление нового пула

Добавление нового пула

В поле Название для пула с дисковыми образами укажем images, Типкаталог в файловой системе, а Target Path — каталог на диске (в нашем случае — созданный ранее /media/virt/images). Нажмём Готово и пул появится в списке. Подтвердим сохранение изменений.

Повторим то же самое, но для ISO образов:

  • название — iso;
  • target path — /media/virt/iso.
Настроенные пулы хранения данных и образов

Настроенные пулы хранения данных и образов

Если всё сделано верно, в левой панели появятся два новых пула — images и iso. Выберем каждый и убедимся, что в чекбоксе Автозапуск при загрузке установлен флажок. Если это не так, исправим и нажмём Применить.

Пул с именем default теперь допускается удалить, хотя это и не обязательно. Для этого выберем его, нажмём кнопку Остановить пул, а затем Удалить пул и подтвердим намерение.

На этом базовая настройка завершена и можно приступать к установке гостевых операционных систем.

Настройка пользовательского сеанса KVM

Создание подключения к сеансу

Запустим Менеджер виртуальных машин (virt-manager) из меню используемой графической среды.

Главное окно Virt Manager

Главное окно Virt Manager

В главном окне менеджера виртуальных машин, нажмём правой кнопкой мыши по QEMU/KVM, затем в контекстном меню выберем вариант Отключиться и Удалить. Подтвердим удаление.

В меню Файл выберем Добавить соединение.

Создание пользовательского сеанса KVM

Создание пользовательского сеанса KVM

В поле Гипервизор выберем пункт QEMU/KVM сеанс пользователя, затем установим флажок в чекбокс Подключаться автоматически и нажмём Подключиться. Новый пункт появится в списке.

Создание каталогов для образов

По умолчанию предлагается использовать каталог ~/.local/share/libvirt/images для хранения дисковых образов виртуальных машин, однако для удобства мы создадим новые.

Это опциональное действие. Можно использовать пул default для любых целей.

В главном окне менеджера выделим пункт QEMU/KVM сеанс пользователя, затем в меню Правка выберем пункт Свойства подключения и переключимся на вкладку Пространство данных.

Настройки пула пользовательского сеанса

Настройки пула пользовательского сеанса

Создадим два каталога: images для дисковых образов виртуальных машин и iso для ISO образов, из которых будет производиться установка операционных систем:

mkdir -p ~/virt/{images,iso}

В левой панели окна менеджера пространств данных нажмём кнопку Добавить пул (с символом плюс).

Добавление пользовательского пула

Добавление пользовательского пула

В поле Название для пула с дисковыми образами укажем images, Типкаталог в файловой системе, а Target Path — каталог на диске (в нашем случае — созданный ранее ~/virt/images). Нажмём Готово и пул появится в списке. Подтвердим сохранение изменений.

Повторим то же самое, но для ISO образов:

  • название — iso;
  • target path — ~/virt/iso.
Настроенные пулы пользовательского сеанса

Настроенные пулы пользовательского сеанса

Если всё сделано верно, в левой панели появятся два новых пула — images и iso. Выберем каждый и убедимся, что в чекбоксе Автозапуск при загрузке установлен флажок. Если это не так, исправим и нажмём Применить.

Пул с именем default теперь допускается удалить, хотя это и не обязательно. Для этого выберем его, нажмём кнопку Остановить пул, а затем Удалить пул и подтвердим намерение.

Настройка сети в пользовательском сеансе

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

sudo nmcli con add type bridge autoconnect yes ifname virbr0 ipv4.method shared ipv4.address 192.168.122.1/24

Добавим основное проводное соединение в качестве ведущего для моста:

sudo nmcli con add type bridge-slave autoconnect yes ifname enp3s0 master virbr0

Здесь вместо enp3s0 укажем физический интерфейс проводного соединения (может быть получен из вывода nmcli device status).

Разрешим использование моста в qemu-bridge-helper:

echo allow virbr0 | sudo tee -a /etc/qemu/bridge.conf

Добавим правила для файрвола:

sudo firewall-cmd --zone libvirt --add-interface virbr0 --permanent
sudo firewall-cmd --zone libvirt --add-service dhcp --permanent
sudo firewall-cmd --zone libvirt --add-service dhcpv6 --permanent
sudo firewall-cmd --zone libvirt --add-service dns --permanent
sudo firewall-cmd --reload

На этом настройка пользовательского сеанса завершена и можно приступать к установке гостевых операционных систем.

Подготовка к установке

Для установки нам потребуются:

  1. официальный ISO образ операционной системы Windows 10, который можно скачать с официального сайта Microsoft (30-дневная пробная версия);
  2. ISO образ с набором драйверов Virtio для гостевых операционных систем;
  3. образ дискеты с драйверами Virtio для ранней стадии установки.

Скачаем указанные образы, скопируем их в каталог /media/virt/iso (системный сеанс), либо ~/virt/iso (пользовательский сеанс).

Создание гостевой ОС Windows 10

На главной панели инструментов нажмём кнопку Создать виртуальную машину или выберем одноимённый пункт из меню Файл.

В появившемся окне мастера на первом шаге выберем пункт Локальный ISO или cdrom.

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

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

На втором шаге мастера нажмём кнопку Обзор, выберем из списка загруженный ранее ISO образ и нажмём Выбор тома.

Оставляем флажок в чекбоксе Automatically detect from installation media/source, чтобы Virt Manager самостоятельно подобрал оптимальные параметры для виртуальной машины и жмём Вперёд.

Установка гостевой ОС из ISO образа

Установка гостевой ОС из ISO образа

Указываем выделяемый виртуальной машине объём оперативной памяти и количество ядер процессора.

Выбор ресурсов CPU и GPU

Выбор ресурсов CPU и GPU

Теперь создадим локальный дисковый образ для гостевой ОС.

Выбор пространства данных для VM

Выбор пространства данных для VM

Установим флажок в чекбокс Настроить пространство хранения данных, а также точку около пункта Выбрать или создать дополнительное пространство данных и нажмём кнопку Настроить.

Создание нового тома внутри пула

Создание нового тома внутри пула

В левой панели переключимся на пул images, затем нажмём кнопку Создать том.

Создание нового тома

Создание нового тома

Создадим новый том для гостевой ОС:

  • название — любое, но без пробелов и русских букв;
  • формат — qcow2;
  • максимальный размер — не менее 40 ГБ.
Выбор созданного тома хранения данных

Выбор созданного тома хранения данных

Выберем созданный том в списке и нажмём кнопку Выбор тома.

На заключительном шаге мастера будет предложено указать название для виртуальной машины (пробелы и русские буквы также не допускаются).

Финальный шаг мастера создания VM

Финальный шаг мастера создания VM

Обязательно установим флажок в Проверить конфигурацию перед установкой и нажмём Готово.

Настройка гостевой ОС Windows 10

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

Переключимся на страницу SATA диск 1, выберем пункт Дополнительные параметры и изменим шину диска с SATA на VirtIO.

Тонкие настройки виртуального накопителя

Тонкие настройки виртуального накопителя

Здесь же допускается явно задать серийный номер накопителя, который будет передан гостевой ОС (если не указано, то генерируется автоматически), а также включить поддержку процедуры TRIM в случае если хранилище было создано на SSD накопителе.

Нажмём кнопку Добавить оборудование, выберем тип Хранилище.

Подключение дискеты с драйверами

Подключение дискеты с драйверами

Изменим Тип устройства на Устройство чтения дискет, затем установим точку в Выбрать или создать дополнительное пространство данных и нажмём кнопку Настроить.

Выбор файла образа дискеты с драйверами

Выбор файла образа дискеты с драйверами

В появившемся окне переключимся на пул iso, выберем образ дискеты, нажмём Выбор тома, а затем Готово.

Переключимся на страницу Видео и в поле Модель убедимся, что установлено значение QXL. Если это не так, внесём правки.

Все остальные параметры оставим по умолчанию и нажмём кнопку Начать установку.

Установка гостевой Windows 10

Запускаем стандартную установку данной ОС, выбираем редакцию, вводим или пропускаем (для получения 30 дневной пробной версии) серийный номер, принимаем лицензионное соглашение с конечным пользователем, затем Выборочная установка ибо нам требуется создать разделы на диске и установить драйвер VirtIO для ранней стадии загрузки системы.

Когда появится сообщение об ошибке о том, что не удалось загрузить драйверы, нажмём кнопку Загрузить, а затем в появишемся окне разрешим автоматический поиск при помощи нажатия OK.

Ошибка, связанная с отсутствием драйвера VirtIO

Ошибка, связанная с отсутствием драйвера VirtIO

Укажем версию драйвера Red Hat VirtIO SCSI controller для Windows 10 и нажмём Далее.

Ручная установка драйвера VirtIO

Ручная установка драйвера VirtIO

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

Далее весь процесс установки вполне стандартный и описывать его мы не будем.

Установка драйверов Virtio гостевой ОС

По окончании установки сразу завершаем работу виртуальной машины (ПускВыключение), нажимаем кнопку Показать виртуальное оборудование на панели инструментов, переходим на страницу SATA CDROM 1, жмём Browse и внутри пула iso выбираем ISO-образ с гостевыми драйверами Virtio.

Подключение образа гостевых драйверов

Подключение образа гостевых драйверов

Применим изменения, а затем перейдём на страницу Дисковод 1, нажмём кнопку Удалить и Применить, т.к. он более нам не требуется.

Удаление образа FDD с драйверами

Удаление образа FDD с драйверами

На панели инструментов нажмём кнопку Показать графическую консоль, а затем Включить виртуальную машину.

Откроем Проводник Windows, перейдём на виртуальный CD диск D: и запустим программу установки virtio-win-gt-x64.exe.

Запуск установки гостевых дополнений Virtio

Запуск установки гостевых дополнений Virtio

Выберем рекомендуемые Red Hat компоненты.

Выбор компонентов пакета драйверов Virtio

Выбор компонентов пакета драйверов Virtio

Разрешим установку драйверов с цифровой подписью Red Hat, нажав Установить.

Подтверждение установки драйверов Virtio

Подтверждение установки драйверов Virtio

Установка гостевых дополнений SPICE

Для того, чтобы в гостевой ОС появилась полная поддержка обмена данными с буфером обмена хостовой ОС, динамическое изменение разрешения виртуального дисплея и т.д., установим внутри гостя пакет SPICE Guest Tools по прямой ссылке.

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

Установка окончена.

2024-05-29
·
4 мин. для прочтения

Установка Windows на KVM.

Содержание

1 Пререквизиты

  • Необходимо иметь установленный libvirt (см. Виртуализация. Libvirt).
  • Можно устанавливать с помощью какого-либо графического интерфейса управления qemu, например с помощью virt-manager:
  • Gentoo:
    emerge app-emulation/virt-manager
    
  • Рекомендуется использовать драйвера Virtio для Windows.
  • Работа через устройства Virtio осуществляется быстрее, чем через эмуляцию SCSI и т.д.
  • Gentoo:
    emerge app-emulation/virtio-win
    
  • Можно просто скачать с репозитория:
    • https://github.com/virtio-win/virtio-win-pkg-scripts/blob/master/README.md
  • Скачаем драйвера для qemu:
    cd /var/lib/libvirt/images
    wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win.iso
    
  • Проще всего использовать образ iso-диска и подмонтировать его как второй cdrom.

2 Установка Windows

  • При установке следует выбрать пункт о дополнительной конфигурации перед установкой.
  • На этом этапе следует добавить второй виртуальный cdrom с драйверами virtio-win.
  • У жёсткого диска установите шину VirtIO.
  • В разделе Обзор убедитесь, что для чипсета выбрано значение Q35, а для прошивки — UEFI.
  • Для запуска Windows 11 под QEMU KVM необходимы Secureboot и TPM, в файле конфигураций это выглядит так:
    <os>
      <type arch="x86_64" machine="q35">hvm</type>
      <loader readonly="yes" type="pflash">/usr/share/edk2/ovmf/OVMF_CODE.secboot.fd</loader>
      <nvram template="/usr/share/edk2/ovmf/OVMF_VARS.secboot.fd"/>
      <boot dev="hd"/>
    </os>
    
    ...
    
    <tpm model="tpm-tis">
      <backend type="emulator" version="2.0"/>
    </tpm>
    

3 Использование virt-install

  • Конфигурацию можно создать с помощью virt-install:

    virt-install \
        --connect qemu:///system \
        --disk /var/lib/libvirt/images/win11.iso,device=cdrom \
        --disk /var/lib/libvirt/images/virtio-win.iso,device=cdrom \
        --disk pool=default,size=120,bus=virtio,format=qcow2 \
        --name windows11 \
        --os-variant=win11 \
        --machine q35 \
        --ram 4096 \
        --memballoon driver.iommu=on \
        --vcpus=2 \
        --network network=default,model=virtio \
        --graphics spice \
        --channel spicevmc \
        --hvm \
        --virt-type=kvm \
        --features kvm_hidden=on,smm=on \
        --tpm backend.type=emulator,backend.version=2.0,model=tpm-tis \
        --boot uefi \
        --check path_in_use=off \
        --boot cdrom,hd,menu=on
    
    • --name windows11 : название виртуальной машины;
    • --os-type=win11 : тип ОС;
    • --cdrom /var/lib/libvirt/images/win11.iso : путь к ISO-образу установочного диска ОС;
    • --graphics spice : графическая консоль;
    • --disk pool=default,size=160,bus=virtio,format=qcow2 : хранилище;
      • образ виртуальной машины будет создана в пространстве хранения объёмом 160 ГБ, которое автоматически выделяется из пула хранилищ default;
      • образ диска для этой виртуальной машины будет создан в формате qcow2;
    • --ram 4096 : объём оперативной памяти;
    • --vcpus=2 : количество процессоров;
    • --network network=default : виртуальная сеть default;
    • --hvm : полностью виртуализированная система;
    • --virt-type=kvm : использовать модуль ядра KVM, который задействует аппаратные возможности виртуализации процессора.
  • В качестве видео-интерфейса ставим QXL.

    • После установки драйверов следует перевести в Virtio.

4 Установка

  • Вначале Windows не видит диск.
  • Необходимо установить драйвер диска из папки e:\amd64\w11.
  • Далее, для подключения к сети потребуется установить драйвер.
  • Для этого выберите весь диск с драйверами e:\.

5 После установки

  • Для загрузки используйте virt-manager.
  • Установите сертификат RedHat с CD-диска:
    e:\cert\Virtio_Win_Red_Hat_CA.cer
    
  • После загрузки установите необходимые драйвера Virtio:
  • Установите гостевые утилиты:
    e:\virtio-win-guest-tools.exe
    
  • Отмонтируйте установочный диск Windows.
  • Поменяйте в настройках virt-manager типы устройств:
    • видео на Virtio + 3D;
    • в разделе Spice добавьте OpenGL.
  • Возможно, следует отключить масштабирование экрана в меню (Вид -> Масштабирование экрана -> Никогда) (чтобы шрифты не смазывались).

6 Общая папка

  • Будем использовать встроенный метод создания общей папки с помощью virt-manager.
  • Нажмите на значок с надписью Показать виртуальное оборудование (Show virtual hardware details) на панели инструментов.
  • Нажмите Память (Memory) на левой панели.
    • Проверьте, что выбрана опция Включить общую память (Enable shared memory).
    • Нажмите Применить.
  • Внизу нажмите Добавить оборудование (Add hardware).
    • Выберите Файловая система (File system) на левой панели в окне добавления нового оборудования.
    • Затем выберите Driver=virtiofs на вкладке Подробности.
    • Нажмите на browse > browse local и выберите путь к хосту из вашей системы Linux, например /home.
    • В целевом пути укажите любое имя, например home.
  • Установите в системе Windows WinFSP (FUSE для Windows).
    • Можно скачать с сайта https://github.com/winfsp/winfsp/releases/.
    • Можно установить с Chocolatey (см. Пакетный менеджер для Windows. Chocolatey):
  • Установите virtio-win-guest-tools.exe (уже установили).
    • Возьмите из комплекта virtio-win.iso или скачайте напрямую из https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/.
    • После завершения установки перезагрузите виртуальную машину Windows.
  • Откройте меню “Пуск” и найдите “Службы”.
    • Найдите службу Служба VirtIO-FS (VirtIO-Sevice-FS).
    • Щелкните правой кнопкой мыши и нажмите “Запустить”, чтобы запустить службу.
    • Можно запустить из командной строки:
    • Установите её на автозапуск (VirtIO-Sevice-FS > Properties > Startup type > Manual to Automatic).
  • После запуска службы откройте Проводник, и вы должны увидеть метку монтирования, которую вы создали в первом шаге выше, и которая должна быть отображена как диск Z:.

7 Буфер обмена

  • Должно работать само после установки драйверов virtio.
  • Проверьте, что есть Канал (spice) типа spicevmc.
  • Установите в Windows SPICE Guest Tools (возможно установить из следующих источников):
    • установите virtio-win-guest-tools.exe (уже установили).
    • https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe.
    • Можно установить с помощью Chocolatey:
      choco install spice-agent
      

8 Видео

  • RuTube
  • Платформа
  • VKvideo
  • Youtube

Установка Windows на KVM

Установка Windows на KVM для опытных системных администраторов не составит труда. Тем не менее, в процессе развертывания ОС и создания под неё виртуальной машины могут встретиться ряд нетривиальных проблем, связанных с особенностями KVM. О них я и расскажу.


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


Содержание

  • 1 Установка Windows на KVM
    • 1.1 Конфигурация виртуальной машины
    • 1.2 Установка Windows
    • 1.3 Настройка Windows

К настоящему моменту у меня уже есть сервер с KVM. На нем также сконфигурирована сеть и хранилище гостевых дисков. Все это я подробно расписал в своей предыдущей статье Установка гипервизора KVM.

Для создания виртуальной машины я буду использовать утилиту virt-install.

Конфигурация виртуальной машины

Есть ряд базовых параметров, без указания которых создание виртуальной машины с помощью virt-install невозможно – это имя ВМ, объем оперативной памяти, настройки диска и параметры установки. Тем не менее, для наглядности я укажу и другие опции, которые так или иначе используются не реже обязательных.

Команда для создания виртуальной машины:

virtinstall \

name 2012r2test01 \

ram=2048 \

vcpus=2 \

ostype=windows \

disk pool=guest_images,size=30,bus=virtio,format=qcow2 \

cdrom /home/bq/iso/2012r2.iso \

network bridge=kvmbr0,model=virtio \

graphics vnc,listen=0.0.0.0,password=Qwerty1234 \

boot cdrom,hd,menu=on

Некоторые пояснения:

  • -os-type windows – Устанавливает более подходящие аппаратные настройки для конкретной ветки ОС;
  • –disk pool=guest_images – Создает виртуальные диски в данном хранилище;
  • –graphics vnc,listen=0.0.0.0 – Устанавливаем тип графики. Адрес прослушки необходим, чтобы к vnc могли подключаться удаленные админы. По дефолту разрешены только локальные подключения.

Назначение остальных параметров очевидно.

Примечание: забегая вперед скажу, что во время установки нужно будет подсунуть дополнительный iso-диск с PV-драйверами. Возможно у вас возникнет искушение сразу в команде создания ВМ прописать два загрузочных диска CDROM. Должен предостеречь от этого. Дело в том, что одновременно два загрузочных диска не поддерживается и, более того, система по умолчанию будет грузиться с указанного последним диска. Если этот диск не загрузочный, то вы увидите ошибку Could not read from CDROM (code 0004) и вероятнее всего будете думать а что же не так с моим виндовым исошником, но по факту система даже не дойдет до того, чтобы начать с него грузиться.

Если в процессе создания виртуальной машины вы получили ошибку:

ERROR internal error: /usr/lib/qemu/qemu-bridge-helper —use-vnet —br=kvmbr0 —fd=24: failed to communicate with bridge helper: Transport endpoint is not connected

stderr=failed to parse default acl file `/etc/qemu/bridge.conf’

То нужно сделать как указано в статье Features/HelperNetworking, а именно (под пользователем root, разумеется):

  • создаем каталог, если он отсутствует:
  • создаем конфиг и сразу добавляем в него нужную запись (kvmbr0 – имя моста):

echo «allow kvmbr0» > /etc/qemu/bridge.conf

  • в дополнение к сделанному выставляем права 1:

chown root:kvm /usr/lib/qemu/qemubridgehelper && chmod 4750 /usr/lib/qemu/qemubridgehelper

Перезапускаем команду создания ВМ. Если все ОК, пришло время развернуть гостевую ОС.

Установка Windows

Подключаемся по VNC к только что созданной машине. Порт по умолчанию – 5900.

virsh vncdisplay 2012r2test01

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

virsh vncdisplay 2012r2test01

Результат будет например вот такой – :1 – к нему нужно приплюсовать 5900 и, таким образом, корректный порт будет 5901.

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

Нужно подсунуть драйверы VirtIO (исошник я взял отсюда 2), выполнив команду:

virsh attachdisk 2012r2test01 /home/bq/iso/virtiowin0.1.141.iso hda type cdrom

Далее возвращайтесь в окно установки ОС и найдите драйверы хранилища на только что смонтированном диске. Как драйверы будут найдены и система их определит, в списке дисков появятся нужные вам устройства. Но! Нужно не забыть вернуть диск с исошником ОС обратно в дисковод (иначе будет светиться предупреждение о невозможности установки ОС на HDD), для этого выполните команду:

virsh attachdisk 2012r2test01 /home/bq/iso/2012r2.iso hda type cdrom

Весь процесс более подробно вы можете увидеть ниже:

Дожидайтесь копирования файлов и установки системы. После этого нужно будет произвести небольшую настройку.

Настройка Windows

После установки ОС в системе останется часть не определенных устройств (например сетевой адаптер). Установить для них драйверы придется вручную через диспетчер устройств Windows как показано на записи ниже:

После установки всех драйверов система готова к работе.

If you want to run Microsoft Windows 11 as a guest virtual machine on KVM, you must take some extra steps to ensure it runs smoothly. So, in this tutorial, I’ll show you how to properly install a Windows 11 virtual machine on KVM.

If you’re interested in dual booting Windows 11 with Ubuntu on your current hardware, check out my other blog, ‘How to Properly Dual-boot Windows 11 and Ubuntu’.

Before you begin, make sure you have met the following requirements:

  1. You have installed the KVM hypervisor on your computer. If not, see my other guide, ‘How Do I Properly Install KVM on Linux’.
  2. You have installed or downloaded the virtio drivers for Windows guests on your host system. If not, see the section ‘Install VirtIO Drivers for Windows Guests’.
  3. You downloaded the official Windows 11 installation ISO image. You can get the ISO from the ‘Download Windows 11’ page.

So let’s get started.

Table of Contents

  • 1. Configure Windows 11 Virtual Hardware
    • 1.1. Configure Default Virtual Hardware Using the Wizard

    • 1.2. Configure Chipset and Firmware
    • 1.3. Enable Hyper-V Enlightenments
    • 1.4. Enable CPU Host-Passthrough
    • 1.5. Configure the Storage
    • 1.6. Mount the VirtIO-Win.ISO Image
    • 1.7. Configure Virtual Network Interface
    • 1.8. Remove the USB Tablet Device
    • 1.9. Add QEMU Guest Agent Channel
    • 1.10. Enable Trusted Platform Module (TPM)
  • 2. Install a Windows 11 Virtual Machine on KVM
  • 3. Enable Hardware Security on Windows 11
  • 4. Optimize Windows 11 Performance
    • 4.1. Disable SuperFetch

    • 4.2. Disable Windows Web Search
    • 4.3. Disable useplatformclock
    • 4.4. Disable Unnecessary Scheduled Tasks
    • 4.5. Disable Unnecessary Startup Programs
    • 4.6. Adjust the Visual Effects in Windows 11
  • 5. Conclusion
  • 6. Watch on YouTube

1. Configure Windows 11 Virtual Hardware

Start the Virtual Machine Manager application.

Before you begin creating a Windows 11 guest virtual machine, you must first enable XML editing because you will need to add the Hyper-V XML component later in this section.

Go to Edit > Preferences and Enable XML editing.

How to Properly Install a Windows 11 Virtual Machine on KVM - Enable XML Editing

After that, click the computer icon in the upper left corner.

How to Properly Install a Windows 11 Virtual Machine on KVM - Start Wizard

This will launch a wizard that will guide you through the process of creating a new virtual machine in five easy steps.

1.1. Configure Default Virtual Hardware Using the Wizard

The Virtual Machine Manager wizard lets you quickly create a guest virtual machine with the default settings. Once that’s done, you can make additional changes to the settings to ensure that the Windows 11 virtual machine runs smoothly.

STEP 1: Choose how you would like to install the operating system.

As you are installing Windows 11 from an ISO image, choose the first option. Then click the Forward button.

How to Properly Install a Windows 11 Virtual Machine on KVM - Step 1

STEP 2: Choose ISO installation media.

Provide the location of the Windows 11 ISO installer image. Then click the Forward button.

How to Properly Install a Windows 11 Virtual Machine on KVM - Step 2

STEP 3: Choose Memory and CPU settings.

Set the amount of host memory and virtual CPUs that will be assigned to the guest virtual machine. I’ll set the guest memory to 6 GiB and the virtual CPUs to 2. You can, however, change this based on your RAM and CPU availability. Click the Forward button to continue.

How to Properly Install a Windows 11 Virtual Machine on KVM - Step 3

STEP 4: Enable storage for this virtual machine.

Set the disk image size for the virtual machine. The disk image that is created will be of the type QCOW2, which is a copy-on-write format. The QCOW2’s initial file size will be smaller, and it will only grow as more data is added. So I’ll set the disk image size to 80 GiB, but you can change it to suit your needs. To install Windows 11, you need to have a disk space of 64 GiB or greater.

How to Properly Install a Windows 11 Virtual Machine on KVM - Step 4

STEP 5: Set the name of the virtual machine.

This is the final configuration screen of the Virtual Machine Creation Wizard. Give the guest virtual machine a name. I’ll set it to ‘Windows-11‘, but you can change it to anything you want.

Also, ensure that the ‘Customize configuration before install‘ checkbox is selected. Click the Finish button to finish the wizard and proceed to the advanced options.

How to Properly Install a Windows 11 Virtual Machine on KVM - Step 5

You will now be in the advanced options window.

1.2. Configure Chipset and Firmware

In the Overview section, make sure the chipset is set to Q35 and the firmware is set to UEFI.

How to Properly Install a Windows 11 Virtual Machine on KVM - Configure Chipset and Firmware

The Q35 chipset natively supports PCIe and provides improved PCI-E pass-through support.

The UEFI firmware option, on the other hand, enables Secure Boot, which is required for Windows 11. When using the UEFI firmware, you can take internal snapshots while the guest is shut down but not while it is running.

1.3. Enable Hyper-V Enlightenments

Hyper-V Enlightenments allow KVM to emulate the Microsoft Hyper-V hypervisor. This improves the performance of the Windows 11 virtual machine.

For more information, check out the pages ‘Hyper-V Enlightenments’ and ‘Hypervisor Features’.

Click the XML tab and add or replace the highlighted XML in the <hyperv> and <timer> in <clock> sections.

How to Properly Install a Windows 11 Virtual Machine on KVM - Hyper-V Enlightenments

Note: If you have an AMD processor, you cannot use the ‘hv-evmcs‘ feature. This VMCS feature is only available for Intel platforms.

You must remove the line ‘<evmcs state="on"/>‘ from the following XML. I’ve highlighted it in bold.

Thanks to Benjamin Poirier for suggesting this.

The XML for <hyperv> is:

<hyperv mode="custom">
<relaxed state="on"/>
<vapic state="on"/>
<spinlocks state="on" retries="8191"/>
<vpindex state="on"/>
<runtime state="on"/>
<synic state="on"/>
<stimer state="on">
<direct state="on"/>
</stimer>
<reset state="on"/>
<vendor_id state="on" value="KVM Hv"/>
<frequencies state="on"/>
<reenlightenment state="on"/>
<tlbflush state="on"/>
<ipi state="on"/>
<evmcs state="on"/>
</hyperv>

The XML for the <timer> in the <clock> section is:

<clock offset="localtime">
  ... 
  <timer name="hypervclock" present="yes"/>
</clock>

1.4. Enable CPU Host-Passthrough

Select the CPUs section in the left panel. Ensure that host-passthrough is enabled.

How to Properly Install a Windows 11 Virtual Machine on KVM - CPU Host-Passthrough

When the mode is set to host-passthrough, the host CPU’s model and features are exactly passed on to the guest virtual machine. This causes the virtual machine to run close to the host’s native speed. This is the recommended and default option as well.

1.5. Configure the Storage

From the left panel, select SATA Disk 1.

Change the disk bus from SATA to VirtIO. VirtIO is preferred over other emulated storage controllers as it is specifically designed and optimized for virtualization.

Set the cache mode to none. In this mode, the host page cache is bypassed, and I/O occurs directly between the hypervisor user space buffers and the storage device. In terms of performance, it is equivalent to direct disk access on your host.

Set the discard mode to unmap. When you delete files in the guest virtual machine, the changes are reflected immediately in the guest file system. The qcow2 disk image associated with the VM on the host, however, does not shrink to reflect the newly freed space. When you set the discard mode to unmap, the qcow2 disk image will automatically shrink to reflect the newly freed space.

How to Properly Install a Windows 11 Virtual Machine on KVM - Storage

1.6. Mount the VirtIO-Win.ISO Image

VirtIO drivers are para-virtualized drivers for KVM guests. Microsoft, unfortunately, does not provide these drivers. When installing a Microsoft Windows virtual machine, you must install certain VirtIO drivers.

As a result, you must mount the virtio-win.iso image file, which contains the VirtIO drivers for Windows. This requires the addition of a second CDROM.

Click the Add Hardware button, then select CDROM device as the Device type in the window that appears and mount the virtio-win.iso image file.

How to Properly Install a Windows 11 Virtual Machine on KVM - CDROM 2

If you’re using Fedora as your KVM host, the ISO image will be located at /usr/share/virtio-win/.

If you haven’t already installed or downloaded virtio-win.iso, see the section titled ‘Install VirtIO Drivers for Windows Guests’ in my other blog post titled ‘How Do I Properly Install KVM on Linux’.

1.7. Configure Virtual Network Interface

In the NIC section, change the device model to virtio. The network VirtIO driver is specifically designed and optimized for virtualization. As a result, there will be no processing overhead, and the performance of the guest virtual machine will naturally improve.

How to Properly Install a Windows 11 Virtual Machine on KVM - Virtual Network Interface

1.8. Remove the USB Tablet Device

In a Windows virtual machine, removing the USB tablet device can reduce idle CPU usage and context switches. As a result, the performance of the Windows 11 virtual machine will improve.

How to Properly Install a Windows 11 Virtual Machine on KVM - Remove Tablet

1.9. Add QEMU Guest Agent Channel

The QEMU Guest Agent Channel establishes a private communication channel between the host physical machine and the guest virtual machine. This enables the host machine to issue commands to the guest operating system using libvirt. The guest operating system then responds to those commands asynchronously.

For example, after creating the Windows 11 guest virtual machine, you can shut it down from the host by issuing the following command:

$ sudo virsh shutdown Windows-11 --mode=agent

This shutdown method is more reliable than virsh shutdown --mode=acpi because it guarantees to shut down a cooperative guest in a clean state. If the agent is not present, libvirt must rely on injecting an ACPI shutdown event, which some guests ignore and thus do not shut down. You can also use the same syntax to reboot (virsh reboot).

Some of the commands you can try, among many others, are:

### Query the guest operating system's IP address via the guest agent.
$ sudo virsh domifaddr Windows-11 --source agent

### Show a list of mounted filesystems in the running guest.
$ sudo virsh domfsinfo Windows-11

### Instructs the guest to trim its filesystem.
$ sudo virsh domfstrim Windows-11

So, add a QEMU guest agent channel to the Windows 11 guest virtual machine.

Click the Add Hardware button to open the Add New Virtual Hardware window, and select Channel. Then, from the drop-down list, select ‘org.qemu.guest_agent.0‘ and click Finish to apply.

How to Properly Install a Windows 11 Virtual Machine on KVM - QEMU Guest Agent Channel

1.10. Enable Trusted Platform Module (TPM)

Enable the Trusted Platform Module (TPM). TPM technology is designed to provide hardware-based, security-related functions. Windows 11 requires TPM version 2.0.

How to Properly Install a Windows 11 Virtual Machine on KVM - Enable TPM 2.0

All of the virtual hardware and settings needed to install Microsoft Windows 11 have been configured. To begin the installation of Windows 11, click the ‘Begin Installation‘ button in the upper left corner of the window.

How to Properly Install a Windows 11 Virtual Machine on KVM - Begin Installation

2. Install a Windows 11 Virtual Machine on KVM

Now that you have finished configuring Windows 11 virtual hardware and have clicked the ‘Begin Installation’ button, the Windows 11 installation starts.

On the screen that appears, choose your language, time and currency format, and keyboard from the list of available options. Then press the Next button.

How to Properly Install a Windows 11 Virtual Machine on KVM - Language and Keyboard

On the following screen, click Install Now. The Windows activation screen will appear. If you have a product key, enter it here. Otherwise, choose I don’t have a product key.

How to Properly Install a Windows 11 Virtual Machine on KVM - Product Key

Choose the Windows version you want to install. I’ll be installing Windows 11 Home for this tutorial.

How to Properly Install a Windows 11 Virtual Machine on KVM - Choose Windows Version

When you get to the type of installation screen, choose Custom: Install Windows only (advanced).

How to Properly Install a Windows 11 Virtual Machine on KVM - Custom Install

You must now select the disk on which Windows 11 will be installed. However, as you can see, the installer was unable to find any drives.

How to Properly Install a Windows 11 Virtual Machine on KVM - No Disk

This is because you selected the VirtIO disk bus when configuring Windows 11 virtual hardware. VirtIO devices are not natively recognized by Windows, so you must manually install the drivers.

To install the VirtIO disk driver, click Load driver, then Browse, expand the CD Drive (E:), expand Viostor, expand w11, select amd64, and click OK.

How to Properly Install a Windows 11 Virtual Machine on KVM - Search VioStor Driver

Click Next to install.

How to Properly Install a Windows 11 Virtual Machine on KVM - Install VioStor Driver

As you can see, the disk is now visible after installing the VirtIO storage driver.

How to Properly Install a Windows 11 Virtual Machine on KVM - Disk 80 GiB

But don’t proceed with the installation just yet. You still need to install the VirtIO network driver.

Repeat the procedure for the network device as well. Click Load driver again, then Browse, expand the CD Drive (E:), expand NetKVM, expand w11, select amd64, and click OK.

How to Properly Install a Windows 11 Virtual Machine on KVM - NetKVM Driver

After installing the VirtIO network device driver, click the Next button to proceed with the installation.

How to Properly Install a Windows 11 Virtual Machine on KVM - Start Installation

The next installation steps are all about personalization. Complete the installation according to your needs, and you will be taken to the desktop environment once it is finished.

How to Properly Install a Windows 11 Virtual Machine on KVM - Windows Desktop

Finally, you must install VirtIO Windows Guest Tools. This package includes some optional drivers and services that will boost SPICE performance and integration. This includes the QXL video driver as well as the SPICE guest agent for copy and paste, automatic resolution switching, and other features.

So launch Windows Explorer, navigate to the CD Drive (E:), and double-click the virtio-win-guest-tools package to install it.

How to Properly Install a Windows 11 Virtual Machine on KVM - Install Guest Tools

After installing the guest tools, on the Windows-11 KVM window, click ViewScale Display, and check the ‘Auto resize VM with window‘ option. This will enable the Windows 11 guest window to automatically resize as you scale it.

How to Properly Install a Windows 11 Virtual Machine on KVM - Window Auto Resize

The Windows 11 operating system installation is now complete. Shut down the Windows 11 virtual machine.

Now that you’ve installed guest tools, you don’t need the second CDROM drive. Click the lightbulb icon to access the hardware details. Unmount the virtio-win.iso image and then remove the second CDROM drive.

How to Properly Install a Windows 11 Virtual Machine on KVM - Remove CDROM 2

Unmount the ISO image of the Windows 11 installer from the first CDROM drive as well.

How to Properly Install a Windows 11 Virtual Machine on KVM - Unmount ISO

3. Enable Hardware Security on Windows 11

With the Q35 chipset selected, Secure Boot and TPM 2.0 enabled, and the latest WHQL-certified VirtIO drivers installed, your Windows 11 guest virtual machine already has standard security.

You can check if your VM passes standard security by opening the Device Security page.

To access the Device Security page, navigate to Settings > Privacy & Security > Windows Security > Device Security.

How to Properly Install a Windows 11 Virtual Machine on KVM - Standard Security

To make Windows 11 even more secure, you can enable Core Isolation.

Core isolation safeguards against malware and other attacks by separating computer processes from your operating system and device.

But before attempting to enable this feature, make sure that your processor supports it.

Your processor must meet the Windows Processor Requirements to enable this feature. If your processor is not on the list, skip this section and proceed to the next one.

Shut down your Windows 11 guest virtual machine. Open the virtual hardware details page, then click the Overview option on the left panel and the XML tab on the right.

Under the <cpu> section, specify the CPU mode and add the policy flag.

Replace this:

<cpu mode="host-passthrough" check="none" migratable="on"/>

With this:

<cpu mode="host-passthrough" check="none" migratable="on">
  <feature policy="require" name="vmx"/>
</cpu>

If you’re using AMD CPUs, replace vmx with the svm policy flag.

How to Properly Install a Windows 11 Virtual Machine on KVM - Enable VMX

Start your Windows 11 guest virtual machine and navigate to the Core isolation details page.

To access the Core isolation details page, navigate to Settings > Privacy & Security > Windows Security > Device Security > Core isolation details.

Toggle the Memory Integrity switch to enable it. When prompted, restart the Windows 11 VM.

How to Properly Install a Windows 11 Virtual Machine on KVM - Toggle Memory On

After the reboot, check the security level of your device once more. Go to the Device Security page by navigating to Settings > Privacy & Security > Windows Security > Device Security.

How to Properly Install a Windows 11 Virtual Machine on KVM - Enhanced Security

You now have a Windows 11 guest virtual machine running with enhanced hardware security.

4. Optimize Windows 11 Performance

Configuring or disabling a number of Windows processes and features can help optimize the performance of a Windows 11 guest virtual machine.

The following are some suggestions for improving performance:

4.1. Disable SuperFetch

SuperFetch, also known as SysMain, is a standard Windows feature that preloads the apps you use the most frequently. Although Superfetch is useful, it consumes a significant amount of CPU and RAM as a background service.

To disable Superfetch, type services into the search box and press [Enter] to open the Services window.

In the Services window, look for SysMain. Right-click it and select Properties. Then disable the service.

How to Properly Install a Windows 11 Virtual Machine on KVM - Disable SuperFetch

4.2. Disable Windows Web Search

When you search for something in the Windows Search box or Start menu, you may have to wait a few seconds as Windows retrieves your search results along with a list of suggested web results from Bing. Although this is a useful feature, you may dislike it and wish to disable it.

To disable web results on Windows 11, follow these steps:

  1. Enter regedit into the search box and press [Enter] to launch the Registry Editor.
  2. Browse to: Computer\HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows.
  3. Right-click the Windows key, select New, and then select the Key option. Enter Explorer as the key name and press [Enter].
  4. Now, right-click on the newly created Explorer key, select New, and then the DWORD (32-bit) Value option. Name the DWORD DisableSearchBoxSuggestions and press [Enter].
  5. Double-click the newly created DWORD DisableSearchBoxSuggestions and change its value from 0 to 1.
How to Properly Install a Windows 11 Virtual Machine on KVM - Disable Web Search

Close the Registry Editor window and restart your computer. You will now have fast-loading search results that do not retrieve results from the web.

4.3. Disable useplatformclock

When the Hyper-V extensions are enabled, setting the useplatformclock option in bcdedit to «yes» results in poor performance. As a result, disable this feature.

Open the Terminal as an Administrator and type the following command, then press [Enter].

C:\> bcdedit /set useplatformclock No

4.4. Disable Unnecessary Scheduled Tasks

Review and disable any unnecessary scheduled tasks.

To get a list of all scheduled tasks, open the Terminal as an Administrator and run the following command:

C:\> Get-ScheduledTask

Use the command below to search for tasks that have the word ‘schedule‘ in their name.

C:\> Get-ScheduledTask -TaskName '*schedule*'

TaskPath                                TaskName                         State
--------                                --------                         -----
\Microsoft\Windows\Defrag\              ScheduledDefrag                  Ready
\Microsoft\Windows\Diagnosis\           Scheduled                        Ready
\Microsoft\Windows\UpdateOrchestrator\  Schedule Maintenance Work        Disabled
\Microsoft\Windows\UpdateOrchestrator\  Schedule Scan                    Ready
\Microsoft\Windows\UpdateOrchestrator\  Schedule Scan Static Task        Ready
\Microsoft\Windows\UpdateOrchestrator\  Schedule Wake To Work            Disabled
\Microsoft\Windows\UpdateOrchestrator\  Schedule Work                    Ready
\Microsoft\Windows\Windows Defender\    Windows Defender Scheduled Scan  Ready
\Microsoft\Windows\WindowsUpdate\       Scheduled Start                  Ready

I’m only going to disable the ScheduledDefrag task. It is entirely up to you which other scheduled tasks you wish to disable.

C:\> Disable-ScheduledTask -TaskPath '\Microsoft\Windows\Defrag\' -TaskName ScheduledDefrag

TaskPath                    TaskName         State
--------                    --------         -----
\Microsoft\Windows\Defrag\  ScheduledDefrag  Disabled

4.5. Disable Unnecessary Startup Programs

Some programs start automatically and run in the background when you turn on your computer. You can disable these programs so that they do not start when your computer boots.

To stop a program from starting automatically, navigate to Settings > Apps > Startup. Then, turn off all programs that you don’t need or use frequently.

How to Properly Install a Windows 11 Virtual Machine on KVM - Disable Auto Start

4.6. Adjust the Visual Effects in Windows 11

Many visual effects, such as animations and shadow effects, are included in Windows 11. These are visually appealing, but they can consume additional system resources and slow down your computer.

To disable visual effects in Windows, first type performance in the Search box, then select Adjust the appearance and performance of Windows from the list of results.

How to Properly Install a Windows 11 Virtual Machine on KVM - Disable Animation 1

On the Visual Effects tab, select Adjust for best performance > Apply.

How to Properly Install a Windows 11 Virtual Machine on KVM - Disable Animation 2

The process of properly installing a Windows 11 Virtual Machine on KVM has now been completed.

5. Conclusion

You can boost the performance of the Windows 11 guest virtual machine even further by turning off antivirus software, uninstalling unwanted software, and so on. These, however, are beyond the scope of this tutorial. You can look up optimizing Windows 11 on the internet, and there are numerous guides available.

If you want to share the host system files with your Windows guest virtual machine, please see my other blog on how to share files between the KVM host and Windows guest virtual machine using Virtiofs.

6. Watch on YouTube

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Очистка темп файлов windows 10
  • Загрузочная флешка windows 10 для биос
  • Xerox workcentre 5019 драйвер для windows 10
  • Программа для автоматического отключения ненужных служб в windows 10
  • Вытащить обновления из windows