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

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


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


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

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

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

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

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

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

virt-install \
--name 2012r2test01 \
--ram=2048 \
--vcpus=2 \
--os-type=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, разумеется):

  • создаем каталог, если он отсутствует:
mkdir /etc/qemu
  • создаем конфиг и сразу добавляем в него нужную запись (kvmbr0 — имя моста):
echo "allow kvmbr0" > /etc/qemu/bridge.conf
  • в дополнение к сделанному выставляем права 1:
chown root:kvm /usr/lib/qemu/qemu-bridge-helper && chmod 4750 /usr/lib/qemu/qemu-bridge-helper

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

Установка Windows

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

virsh vncdisplay 2012r2test01

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

virsh vncdisplay 2012r2test01

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

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

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

virsh attach-disk 2012r2test01 /home/bq/iso/virtio-win-0.1.141.iso hda --type cdrom

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

virsh attach-disk 2012r2test01 /home/bq/iso/2012r2.iso hda --type cdrom

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

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

Настройка Windows

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

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

comments powered by HyperComments