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.


Deja tu comentario

Tu direcciรณn de correo electrรณnico no serรก publicada. Los campos obligatorios estรกn marcados con *

*

*

  1. Responsable de los datos: Miguel รngel Gatรณn
  2. Finalidad de los datos: Controlar el SPAM, gestiรณn de comentarios.
  3. Legitimaciรณn: Tu consentimiento
  4. Comunicaciรณn de los datos: No se comunicarรกn los datos a terceros salvo por obligaciรณn legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu informaciรณn.

      Federico A. Valdรฉs Toujague dijo

    Saludos Elav!!! Realmente no lo veo mรกs complicado que en Debian. Acaso comandos diferentes. Siempre Vale La Pena ejecutar unos pocos comandos para tener instalada esa Poderosa herramienta para hacer mรกquinas virtuales. Aunque no use Arch, Gracias por dar a conocer como se instala en esa distro.

         elav dijo

      Hay que hacer unos pasos de mรกs… a eso me refiero con lo complicado. En Debian no hay necesidad de hacer mรกs nada que instalar los paquetes y aรฑadir nuestro usuario al grupo correspondiente.

      Ozkar dijo

    Una preguntita elav: Arch ya usa systemd, es necesario ponerle el .service al servicio? No lo reconoce aun por systemctl ‘action’ kdm, por ejemplo?

         elav dijo

      Si, Arch usa Systemd. No sรฉ si se pueda sin el .service, y como asรญ estรก en la Wiki, pues asรญ lo hice ๐Ÿ˜€

         cargoan dijo

      Sรญ lo reconoce, no es necesario ponerlo.

      pandev92 dijo

    muy bonito el osx…OHH WAIT XD

         elav dijo

      xDD Ya quisiera OSX ser mi KDE ๐Ÿ˜›

           pandev92 dijo

        maรฑana.

             eliotime3000 dijo

          Le doy la razรณn a @elav, ya que la interfaz Aqua de OSX consume 256 MB de vรญdeo, comparado con KDE que ronda desde los 96 MB (el mรญnimo soportable), y 128 MB (el mรญnimo recomendado).

          En Slackware, el KDE corre con 96 MB de vรญdeo, tal y como si tuviese 128 MB. En fin, entre gustos y colores…

               pandev92 dijo

            lo del consumo a mi me da igual, compro otro modulo de 4 gb y listo XDD

               pandev92 dijo

            en video, cualquier tarjeta de los ultimos 4 aรฑos viene con 1 gb ddr2 o ddr3 xD.., hasta una nvidia gt610 de 40 euros.

               eliotime3000 dijo

            @pandev92:

            Vivo en un paรญs de latinoamรฉrica en donde el poder adquisitivo limita la posibilidad de adquirir una buena tarjeta de vรญdeo para una persona promedio, pero me gustarรญa usar una Gigabyte con chipset Intel (en sรญ, es la mejor marca de mainboards que he usado hasta ahora).

               Javier dijo

            evidentemente, el poder adquisitivo le da igual a pandev92, ni hablar XD

      Leo dijo

    Arch no es complicado, solo hay que tener u poco mas de tiempo para leer la wiki.

         eliotime3000 dijo

      En sรญ, Arch es KISS y RTFM a la vez (dependes siempre de las actualizaciones de la wiki para evitarte cualquier modificaciรณn que le hagan al proceso de actualizaciรณn).

      pandev92 dijo

    No es que sea complicado o no, simplemente no es adecuada para el usuario final.

         eliotime3000 dijo

      Si no quieres estar en este modo RTFM (Read The Fucking Manual), mejor usa Mint.

         Javier dijo

      que no sea para el usuario final, a mi me darรญa igual XD

      berny dijo

    deberias dejar lo de policykit asi,asi comprueba si esta en el grupo o no y ya esta,
    asi si tienes mas de un usuario le daria acceso si esta en el grupo,yo aunque solo uso la maquina para mi tengo varios usuarios para diferentes proyectos,si lo pones como usuario solo ira con ese usuario

    un saludo

    polkit.addRule(function(action, subject) {
    if (action.id == ยซorg.libvirt.unix.manageยป &&
    subject.isInGroup(ยซlibvirtยป)) {
    return polkit.Result.YES;
    }
    });

         berny dijo

      puse el grupo libvirt pero puedes poner el grupo que quieras,en tu caso kvm o polkitd

      Xoslorg dijo

    Buenas, alguien sabe porque da kvm este error:

    Imposible completar la instalaciรณn: ‘internal error: el proceso ha finalizado mientras se conectaba con el monitor: char device redirected to /dev/pts/0 (label charserial0)
    qemu-system-x86_64: -drive file=/home/zpabuin/Descargas/Fedora-Live-LXDE-x86_64-19-1.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw: could not open disk image /home/zpabuin/Descargas/Fedora-Live-LXDE-x86_64-19-1.iso: Permission denied

    Traceback (most recent call last):
    File ยซ/usr/share/virt-manager/virtManager/asyncjob.pyยป, line 100, in cb_wrapper
    callback(asyncjob, *args, **kwargs)
    File ยซ/usr/share/virt-manager/virtManager/create.pyยป, line 1920, in do_install
    guest.start_install(False, meter=meter)
    File ยซ/usr/share/virt-manager/virtinst/Guest.pyยป, line 1134, in start_install
    noboot)
    File ยซ/usr/share/virt-manager/virtinst/Guest.pyยป, line 1202, in _create_guest
    dom = self.conn.createLinux(start_xml or final_xml, 0)
    File ยซ/usr/lib/python2.7/site-packages/libvirt.pyยป, line 2892, in createLinux
    if ret is None:raise libvirtError(‘virDomainCreateLinux() failed’, conn=self)
    libvirtError: internal error: el proceso ha finalizado mientras se conectaba con el monitor: char device redirected to /dev/pts/0 (label charserial0)
    qemu-system-x86_64: -drive file=/home/zpabuin/Descargas/Fedora-Live-LXDE-x86_64-19-1.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw: could not open disk image /home/zpabuin/Descargas/Fedora-Live-LXDE-x86_64-19-1.iso: Permission denied

    Gracias, por cierto virtinst es un paquete desactualizado en arch desde mayo y no necesario.

      Javier dijo

    Preguntota…

    cuando intento levantar el modulo del kernel kvm-intel (que es el procesador que yo tengo), me dice:

    modprobe: ERROR: could not insert ‘kvm_intel’: Operation not supported

    Buscando en mi sistema noto que el modulo kvm-intel existe en
    /usr/lib/modules/3.10.10-1-ARCH/kernel/arch/x86/kvm/kvm-intel.ko.gz

    (y si, ejecutando egrep -c ยซ(svm|vmx)ยป /proc/cpuinfo se con certeza que si deberรญa soportar virtualizaciรณn aquรญ)

    Mi pregunta es doble:

    -no necesitarรฉ activar/habilitar algo en mi kernel para que soporte esto?
    -mi sistema es 64 bits y veo que el modulo vive en x86, serรก por esto? En cuyo caso pregunto, hay modulos para 64 bits que si pueda instalar y dejen de darme la lata?

    gracias de antemano!

         Javier dijo

      Problema resuelto, me falto habilitar la virtualizaciรณn en la BIOS de mi sistema… ๐Ÿ™‚

      gracias!

      leonardopc1991 dijo

    me sale que no encuentra este archivo ยซvirtinstยป

         maykel535 dijo

      El paquete virtinst no lo he instalado, porque ya no estรก en los repos.

      Me sale el mismo error que Xorlogs:

      Imposible completar la instalaciรณn: ‘Error interno: el proceso ha finalizado mientras se conectaba con el monitor: qemu-system-x86_64: -drive file=/home/maykel/archlinux-2013.10.01-dual.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw: could not open disk image /home/maykel/archlinux-2013.10.01-dual.iso: Permission denied

      Traceback (most recent call last):
      File ยซ/usr/share/virt-manager/virtManager/asyncjob.pyยป, line 100, in cb_wrapper
      callback(asyncjob, *args, **kwargs)
      File ยซ/usr/share/virt-manager/virtManager/create.pyยป, line 1920, in do_install
      guest.start_install(False, meter=meter)
      File ยซ/usr/share/virt-manager/virtinst/Guest.pyยป, line 1134, in start_install
      noboot)
      File ยซ/usr/share/virt-manager/virtinst/Guest.pyยป, line 1202, in _create_guest
      dom = self.conn.createLinux(start_xml or final_xml, 0)
      File ยซ/usr/lib/python2.7/site-packages/libvirt.pyยป, line 2897, in createLinux
      if ret is None:raise libvirtError(‘virDomainCreateLinux() failed’, conn=self)
      libvirtError: Error interno: el proceso ha finalizado mientras se conectaba con el monitor: qemu-system-x86_64: -drive file=/home/maykel/archlinux-2013.10.01-dual.iso,if=none,id=drive-ide0-1-0,readonly=on,format=raw: could not open disk image /home/maykel/archlinux-2013.10.01-dual.iso: Permission denied

           elav dijo

        Ahora mismo lo que tengo instalado es:

        – libvirt
        – libvirt-glib
        – virt-manager
        – virtviewer

        Revisen ๐Ÿ˜‰

             maykel535 dijo

          Has actualizado arch?? Has visto el bonito bug en virt-manager con el update virt-manager 0.10.0-4

          Error: ‘NoneType’ object has no attribute ‘__getitem__’

          https://bugs.archlinux.org/task/37990

      Sound-Alchemist dijo

    Esta bien tu tutorial, y logre gracias a el que virt-manager funcione casi sin problemas, en tu nota no explicas a que .img se le agregan lso permisos, y no he podido crear una maquina virtual

      edo dijo

    El paquete virtinst no existe, ademas me dice ยซopenbsd-netcat y gnu-netcat estรกn en conflicto. ยฟQuitar gnu-netcat? [s/N]ยป, entonces no puedo dejar el gnu-netcat?

      Manuel dijo

    ola oie yo tengo una samsung chromebook el modelo creo es Snow Clear, quiero saber si se puede instalar Qemu en una base ARM, se como instalar ubuntu de hecho lo desinstale por el simple hecho q no pude correr exe files ,wine no corre en esta base solo con intel,pero qemu alparecer si, pero nose como instalarlo :/ espero me des una respuesta pronto , gracias, buen trabajo.

      tau dijo

    Si mal no recuerdo KVM sirve para acelerar qemu. Puesto que qemu emula todo el procesador es mรกs lento que las maquinas virtuales como virtualbox. Asรญ que por lo que sรฉ KVM hace que qemu se comporte como una maquina virtual cuando la arquitectura del guest es la misma que la del host. ยฟ No ?. De todas formas interesante el artรญculo.

    Qemu rox !!

    Saludos.

      Roberto dijo

    Buenas tardes, gracias por el tutorial lo andaba buscando, pero necesito que por favor me den una mano, de cรณmo instalar una maquina virtual en un disco externo, no utilizar el espacio fรญsico anfitriรณn, gracias

      Page Asgardius dijo

    En la parte donde se activan los mรณdulos del kernel con modprobe en realidad se activan los que corresponden a la cpu, ya que kvm utiliza las instrucciones de virtualizaciรณn de la cpu para funcionar. Tengo una pc con cpu intel y gpu amd y me funcionรณ de esta forma