В связи с генерацией initrd при каждом обновлении ядра и ужасной политике Oracle я решил отказаться от VirtualBox и перейти на замечательную технологию виртуализации — KVM. Между прочим, её развивает Red Hat, которая отказалась от Xen в пользу KVM.
Статья будет посвящена установке KVM на систему семейства Debian — Ubuntu 10.04 или CentOS 6+, а также последующей инсталяции Windows XP, в качестве виртуальной системы.
Для начала проверим, поддерживает ли наш процессор KVM:
grep 'vmx\|svm' /proc/cpuinfo | wc -l
Если число, полученное в результате равно 0, то это значит, что процессор не поддерживает KVM. Если больше нуля, то все нормально.
Установим необходимые пакеты.
Для Ubuntu:
$ sudo apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils virt-manager
- libvirt-bin - устанавливает libvirtd который необходим для администрирования экземпляров qemu и kvm использующих libvirt
- qemu-kvm - это бакэнд — набор управляющих утилит
- ubuntu-vm-builder - удобный инструмент для создания виртуальных машин
- bridge-utils - создает мост (bridge) из вашей сети на виртуальные машины
- virt-manager - приложение c графическим интерфесом для управления виртуальными машинами, разработанное Red Hat.
Для CentOS:
$ sudo yum install @virtualization-tools @virtualization-platform @virtualization-client @virtualization
Добавим пользователя в нужные группы (для всех систем):
sudo usermod -aG kvm,libvirt,vde2-net username
Вот как выглядит virtual-manager.
Дальше пляшем, как душе угодно. Вот мои шаги по установке Windows XP внутри KVM.
Заходим в virt-manager: Applications > System Tools > Virtual Machine Manager Там создаем жесткий диск и настраиваем сеть для будущей машинки. Всё интуитивно понятно. Находим образ Windows XP и запускаем команды.
Для Ubuntu:
/usr/bin/kvm -m 512 -hda /var/lib/libvirt/images/xp.img
-cdrom /home/insider/Downloads/WINXP_PRO_ENG_SP2.iso -boot d
Для CentOS:
/usr/libexec/qemu-kvm -m 512 -hda /var/lib/libvirt/images/xp.img
-cdrom /home/insider/Downloads/WINXP_PRO_ENG_SP2.iso -boot d
-m — параметр оперативной памяти, в нашем случае 512МБ.
-hda — опция, указывающая на виртуальный жесткий диск.
-cdrom — опция, указывающая на образ с системой.
-boot — опция виртуального биоса, указывающая с чего производить загрузку
Устанавливаем систему. Загружаем свежеустановленную систему с перенаправлением порта RDP на 5555.
Для Ubuntu:
/usr/bin/kvm -m 512 -hda /var/lib/libvirt/images/xp.img
-net nic -net user,hostfwd=tcp::5555-:3389
Для CentOS:
/usr/libexec/qemu-kvm -m 512 -hda /var/lib/libvirt/images/xp.img
-net nic -net user,hostfwd=tcp::5555-:3389
Это нужно, для того, чтобы подключиться к позже настроенному RDP в виртуальной машине с машины хоста по порту 5555, т.к. в VNC не поддерживается копирование и плохое позиционирование курсора.
В данном примере приведена простейшая настройка виртуальной машины, без создания снапшотов и возможности остановить на паузу гостевую систему. Для более тонкой настройки используйте virtsh.