Windows Server и KVM на Linux

Сегодня постараюсь описать все трудности в пути установки операционной системы (ОС) семейства Windows (а конкретнее Windows Server 2008 R2) на виртуальную машину KVM (используется qemu-kvm)  в ОС Linux (а именно Debian 7)

Сложностей с установкой kvm возникнуть не должно

apt-get install qemu-kvm

Далее необходимо скопировать установочный образ операционной системы куда-нибудь на диск. К примеру можно скопировать в ~/kvm.

sudo dd if=/dev/cdrom of=Window_Server_2008_R2.iso

Самое необходимое: скачайте драйвера virtio, без них установка будет очень-очень долгой.

wget https://launchpad.net/kvm-guest-drivers-windows/20120712/20120712/+download/virtio-win-drivers-20120712-1.iso

Затем создадим папку для файлов виртуального жёсткого диска

cd ~ && mkdir KVM && cd KVM

И сам файл виртуального жёсткого диска, где 25G — его размер

qemu-img create -f qcow2 WIN2K8R2.qcow2 25G

и самое главное — запуск самой виртуальной машины.

qemu-system-x86_64 —enable-kvm -m 2048 -boot d -drive file=WIN2K8R2.qcow2,if=virtio -cdrom Win2K8X64R2Ent.iso -drive file=virtio-win-drivers-20120712-1.iso,media=cdrom -net nic,model=virtio -net user

, где -m 2048 — объём оперативной памяти для неё, WIN2K8R2.qcow2 — файл виртуального жёсткого диска, созданного ранее, if=virtio — источник драйверов для подключения жёсткого диска к виртуальной машине, Win2K8X64R2Ent.iso — образ операционной системы.

К сожалению, мне пришлось подключаться к удалённому рабочему столу, потому что по ssh установить Windows не удавалось, система требовала графический интерфейс.

Для запуска qemu под юзером производим следующие шаги:

Редактируем /etc/libvirt/qemu.conf, чтобы виртуальные машины работали у нас от непривилегированного пользователя:

user = "username"
group = "libvirt"

Поскольку у нас будут использоваться tun-устройства, нужно выставить capability CAP_NET_ADMIN, сделать это можно как для отдельного исполняемого файла, так и для пользователя в целом, или настроить чтобы libvirt не сбрасывал нужные права для qemu/kvm.

Выставляем для отдельного файла:

sudo setcap cap_net_admin=ei /usr/bin/kvm

Или выставляем для пользователя в целом в файле /etc/security/capability.conf:

cap_net_admin username

Или выставляем соответствующую настройку в /etc/libvirt/qemu.conf:

clear_emulator_capabilities = 0

Добавим пользователя в группу libvirt и kvm:

# adduser username libvirt

Установка Windows Server проста до безобразия, если знать когда подсунуть файлы драйверов для жёсткого диска.

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

  • Нажимаем Install
  • Выбираем тип ОС
  • Соглашаемся с лицензионным соглашением
  • Выбираем Полная установка
  • Щёлкаем по ‘Загрузить драйвер’
  • Обзор
  • Выбираем диск с драйверами Virtio. дисков должно быть два: один с Windows, другой — с драйверами.
  • Выбираем ‘Virtio Drivers’ => STORAGE => SERVER2008R2 => AMD64
  • OK
  • Драйвер ‘Red Hat VirtIO SCSI controller’ будет выбран. Если его не видно, значит что то пошло не так 🙁
  • Жмакаем Далее. Драйвер загрузится и вернёт на экран выбора дисков для установки ОС. Если размер не меняли, то там будет 25 Гб.
  • Щёлкаем на пустом диске и жмём Далее. Всё. Установка идёт стандартным путём.

Единственная трудность случилась в конце установки, когда нужно придумать пароль для учётной записи администратора. Через RDP почему то не печатались иностранные символы, пришлось воспользоваться экранной клавиатурой.

Потребление памяти и утилизация процессора в пределах нормы и не превышала пары процентов при простое системы. Проц — Celeron G1620 🙂

Теперь осталось пробросить эту машину во внешку и подключится к ней по RDP, минуя RDP хостовой системы. Это  пока не решено.

 

Добавить комментарий

Ваш e-mail не будет опубликован.