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.

Windows VM (qemu) + Samba

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.

Launcher

One Response to “Virtualizando Windows con qemu y virt-manager”

  1. Eremeeff Says:

    I have already seen it somethere…
    Eremeeff

Leave a Reply