Instalar y configurar Qemu-KVM en Arch Linux [Actualizado]

Virtual-Manager

En un artículo anterior vimos como instalar Qemu-KVM en Debian Wheezy gracias a la colaboración de Fico y en esta ocasión, yo les mostraré como hacerlo pero en Arch Linux.

Comparado con Debian, lo que les muestro a continuación es un poquito más pesado, pero vamos, es realmente fácil llegar al resultado final. Comencemos:

Instalando los paquetes necesarios

Vamos a instalar los paquetes que necesitamos para que funcione Qemu-KVM y poder administrar nuestras máquinas virtuales.

$sudo pacman -S qemu dmidecode ebtables dnsmasq libvirt bridge-utils openbsd-netcat radvd urlgrabber virtviewer virtinst virt-manager ifplugd ifenslave tcl

Anteriormente el paquete se llamaba qemu-kvm, para yo no más, ahora es solamente qemu. El resto de los paquetes son los necesarios para que funcionen las opciones de red y demás.

El paquete virtinst ya no se encuentra en los repositorios o cambió de nombre. Ahora son necesarios solamente los paquetes virt-manager, libvirt-glib, libvirt, vde2 y qemu

Una vez instalados estos paquetes, añadimos nuestro usuario a los grupos kvm y polkitd:

$ sudo gpasswd -a tu_usuario kvm
$ sudo gpasswd -a tu_usuario polkitd

Luego levantamos los módulos necesarios, que pueden variar en dependencia de nuestra tarjeta de video:

$ sudo modprobe kvm-intel
$ sudo modprobe kvm

Si tienes AMD, debes usar kvm-amd, y supongo que kvm-nvidia para los usuarios de NVidia. Sinceramente no estoy seguro de este último.

Ahora activamos el servicio:

$ sudo systemctl enable libvirtd.service

Y si queremos arrancarlo, ya saben:

systemctl start libvirtd.service

Solo nos resta crear o editar una regla para Policykit que nos permita gestionar las máquinas virtuales con nuestro usuario. Para ello editamos o creamos el archivo:

$ sudo nano /etc/polkit-1/rules.d/50-org.libvirt.unix.manage.rules

Y le insertamos adentro las siguientes líneas:

polkit.addRule(function(action, subject) {
if (action.id == "org.libvirt.unix.manage" &&
  subject.user == "tu_usuario") {
  return polkit.Result.YES;
}
});

Debemos sustituir tu_usuario por nuestro usuario, como es lógico. ¿Qué nos quedaría? Pues reiniciar el ordenador y probar hacer una nueva máquina virtual.

En mi caso particular, al tratar de crear una nueva máquina virtual con una imagen ya existente, me daba un error de permisos a la hora de Finalizar el asistente. Solo tuve que darle permisos de lectura/escritura al fichero .img

Referencias: FactorQM.