Virtualizando Windows con qemu y virt-manager
Qemu es una herramienta de virtualización tremendamente versátil. Funcionando en combinación con KVM es además muy rápido. La parte negativa de tener tantas opciones y facilidades es que la utilización tiene una curva de aprendizaje algo elevada. Gracias a virt-manager este proceso inicial y la administración de las máquinas virtuales instaladas puede simplificarse bastante.
1. Instalando
Esta GUI está escrita en Python y al estar basada en libvirt funciona con qemu para las versiones modernas. En Fedora es tan sencillo de instalar com hacer:
# yum install kvm qemu libvirt python-virtinst
Una vez procesados los paquetes y arrancado el servicio,
# /etc/init.d/libvirtd start
es posible instalar cualquier máquina virtual. Voy a instalar una máquina Windows a partir de la imagen de un CD de instalación,
# virt-install --connect qemu:///system -n vm_win -r 512 --vcpus=1 -f Virtual_HDs/vmwin.qcow2 -s 12 -c wxpsp2.iso --vnc --noautoconsole --os-type windows --accelerate --network=bridge:virbr0 --hvm
Aquí el nombre de la máquina virtual es vm_win, y la imagen de disco duro de 12 GB que crearé estará en Virtual_HDs/vmwin.qcow2. Para otras opciones puede mirarse en:
Virtualization With KVM On A Fedora 10 Server
Una vez lanzada la máquina podemos conectarnos a través de cualquier cliente vnc o usar virt-viewer,
# vncviewer localhost
y proceder a la instalación del sistema operativo.
2. Configurando la red y los archivos compartidos
Por defecto, la configuración de libvirt en Fedora asume que instalaremos varias máquinas virtuales y que estas no deben poder acceder por red al host. No obstante, esta configuración puede cambiarse fácilmente manipulando el archivo xml situado en /etc/libvirt/qemu/networks/default.xml y añadiendo las líneas:
< incoming default="allow" / >
< outgoing default="allow" />
dentro del tag ip. Los detalles y una muy buena explicación en esta página
Una vez hecho esto basta configurar un servidor samba local cambiar la configuración por defecto para compartir el contenido a nuestra red virtual recién creada. Lo mejor de todo es que no hay que crear ninguna partición o directorio especial para compartir archivos como cuando se usa VirtualBox o similares, ya que samba es capaz de exportar nuestro /home.
3. Creando un launcher.
El único problema es que para abrir la máquina virtual hay que llamar al virt-manager, arrancar la máquina y después conectarse a través de VNC y esto no es cómodo. La solución es usar virsh y hacer un pequeño script que lo haga todo junto. Si se usa virt-viewer, hay que conocer el id que se le ha asignado a la máquina así que hay que averiguarlo también. En caso de usar un visor VNC común, basta con conectarse a localhost:0. El script govm.pl podría ser más o menos así:
#!/usr/bin/perl -w
$myvm = shift;
$order = 'virsh -c qemu:///system start '.$myvm;
system($order);
$order = 'virsh -c qemu:///system list | grep '.$myvm.' | awk {\'print $1\'}';
$myid = qx/$order/;
$order = 'virt-viewer -c qemu:///system '.$myid;
system($order);
Después de esto, si la máquina que hemos creado se llama vm_win, sólo hay que llamarlo como:
#govm.pl vm_win
y puede crearse un icono en el escritorio que llame a esta orden.


Abril 18th, 2009 at 7:54 pm
I have already seen it somethere…
Eremeeff