Установка Win2k8 и сервера WDS на Linux KVM.

Дело было вечером, затем ночью, затем еще одним вечером и т.д., до победного.
У меня имелись Intel Core 2 CPU 6300 @ 1.86GHz, ASUS P5L-MX, HDD Maxtor 80Gb, 2Gb ОЗУ, Debian Wheezy в качестве хост-системы, некий NoName в качестве второй сетевой карты и пяток шурупов. Все вместе это выглядит так. Не то чтобы из этого хлама стоило собирать какие либо корпоративные решения, но если начал городить виртуалки, остановится довольно сложно.
Устанавливаем KVM и Virtinst (к этому делу есть GUI, но как известно, хорошее дело гуем не назовут):
apt-get -y install qemu-kvm libvirt-bin virtinst ssh
Включаем форвардинг (редактируем /etc/sysctl.conf) и применяем правила:
sysctl net.ipv4.conf.all.forwarding=1
sysctl net.ipv4.conf.all.proxy_arp=1
sysctl -p
Настраиваем сеть (редактируем /etc/network/interfaces):
auto lo
iface lo inet loopback
# Фаервол 
pre-up /sbin/iptables-restore /etc/iptables-startup.conf

auto eth0
iface eth0 inet manual

auto br0
iface br0 inet dhcp
     bridge_ports eth0

auto eth1
iface eth1 inet manual

auto br1
iface br1 inet static
address 192.168.1.1
netmask 255.255.255.0
bridge_ports eth1
bridge_fd 0
bridge_hello 2
bridge_maxage 12
bridge_stp off
bridge_maxwait 0
Перезапускаем сеть:
/etc/init.d/networking restart
Разрешим все и вся в фаерволе (не круто, надо бы настроить SNAT) и сохраним правила файл:
iptables -A INPUT -j ACCEPT
iptables -A OUTPUT -j ACCEPT
iptables -A FORWARD -j ACCEPT
iptables-save > /etc/iptables-startup.conf
Хост-система готова. ISO-образ с win2k8 находится на внешнем диске, смонтированном в хост-систему. Создаем и запускаем пул:
virsh pool-define-as storage dir --target /var/lib/libvirt/images
virsh pool-autostart storage
virsh pool-start storage
Создаем виртуалку:
virt-install --connect qemu:///system \
--name win2k8 \
--ram 1024 \
--vcpus=2 \
--disk pool=storage,cache=none,size=20,format=qcow2 \
--disk /opt/share/win2k8.iso,device=cdrom \
--bridge=br0,model=e1000 \
--bridge=br1,model=e1000 \
--os-type=windows \
--os-variant=win2k8 \
--graphics vnc,port=5901,listen=0.0.0.0
Соединяемся к нашей виртуалке по VNC и продолжаем установку win2k8. После установки добавляем созданную виртуалку в автозапуск:
virsh autostart win2k8
Узнаем где у нас живет СD-ROM:
virsh domblklist win2k8
Target     Source
------------------------------------------------
hda        /var/lib/libvirt/images/win2k8.img
hdc        /opt/share/win2k8.iso
В конкретном случае это hdc. Его нужно размонтировать (извлечь), иначе при перезапуске хост-системы, виртуалка не загрузится, т.к. внешний носитель, на котором лежал ISO-образ установки, не монтируется автоматически. Извлекаем носитель и проверяем:
virsh change-media win2k8 hdc --eject
succeeded to complete action eject on media

virsh domblklist win2k8
Target     Source
------------------------------------------------
hda        /var/lib/libvirt/images/win2k8.img
hdc        -
Создадим второй HDD размером 40Gb, для нашей виртуалки:
qemu-img create -f qcow2 /var/lib/libvirt/images/win2k8-1.img 40G
Создадим конфигурационный файл диска hdd.xml (штука временная, потом можно удалить):
<disk type='file' device='disk'>
   <driver name='qemu' type='qcow2' cache='none'/>
   <source file='/var/lib/libvirt/images/win2k8-1.img'/>
   <target dev='hdb'/>
</disk >
Остановим виртуалку, подключим диск, затем запустим ее:
virsh destroy win2k8
Domain win2k8 destroyed

virsh attach-device --config win2k8 ./hdd.xml
Device attached successfully

virsh start win2k8
Domain win2k8 started
Сделаем бэкап конфигурации нашей виртуалки:
virsh dumpxml win2k8  > win2k8.xml
Сохраним его в теплом и сухом месте для потомков. Подключившись по VNC к виртуалке, следует сходить по пути "Панель Управленя -> Администрирование -> Управление Компьютером -> Управление дисками" и уже там активировать второй диск и создать раздел. В итоге имеем Win2k8 запущенную в Linux. У виртуалки имеется 2 сетевых интерфейса, два HDD, CPU о двух ядрах, да 1 Gb ОЗУ. Настраиваем наш WDS например по этому гайду до пункта 51.
P.S.: В итоге в этот хлам был установлен Proxmox и Win2k8 был развернут в него из бэкапа.