Дело было вечером, затем ночью, затем еще одним вечером и т.д., до победного.
У меня имелись Intel Core 2 CPU 6300 @ 1.86GHz, ASUS P5L-MX, HDD Maxtor 80Gb, 2Gb ОЗУ, Debian Wheezy в качестве хост-системы, некий NoName в качестве второй сетевой карты и пяток шурупов. Все вместе это выглядит так. Не то чтобы из этого хлама стоило собирать какие либо корпоративные решения, но если начал городить виртуалки, остановится довольно сложно.
Устанавливаем KVM и Virtinst (к этому делу есть GUI, но как известно, хорошее дело гуем не назовут):
P.S.: В итоге в этот хлам был установлен Proxmox и Win2k8 был развернут в него из бэкапа.
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 был развернут в него из бэкапа.