HOWTO: Virtualización en Linux con Qemu + Kqemu + Qemu-Launcher

Hace tiempo que tenía ganas de enredar con este asunto, y esta tarde me he puesto en un rato, así que ahí va: 😉

A continuación vamos a instalar el programa Qemu, que nos servirá para virtualizar otro sistema operativo. Además, instalaremos KQemu, que nos proporcionará un importante incremento de velocidad y mejora del rendimiento de la máquina virtualizada. Para facilitar su uso, utilizaremos qemu-laucher, un GUI para lanzar qemu fácilmente. Seguiremos lo siguientes pasos (siempre suponiendo que somos root):

  1. Instalación de paquetes
  2. Instalación del módulo KQemu
  3. Instalación del Sistema Operativo
  4. Configuración de la red mediante bridging.

Paso 1: Instalación de paquetes

Lo primero es instalar todos los paquetes que necesitaremos a lo largo del proceso, para ello ejecutamos:

apt-get install qemu qemuctl qemu-launcher kqemu-common kqemu-source module-assistant bridge-utils

Con esto ya tendremos todos los paquetes necesarios para todos los pasos.

Paso 2: Instalación del módulo KQemu

Para instalar KQemu utilizaremos module-assistant, que nos compilará e instalará el módulo automáticamente ejecutando:

m-a a-i kqemu

Una vez el proceso ha terminado, ejecutamos lo siguiente para crear el dispositivo en /dev:

mknod /dev/kqemu c 250 0
chmod 666 /dev/kqemu
modprobe kqemu major=0

También ejecutaremos lo siguiente, para mejorar el rendiemiento:

echo 1024 > /proc/sys/dev/rtc/max-user-freq

Podemos comprobar que el dispositivo creado es /dev/kqemu.

Paso 3: Instalación del sistema operativo

Ya estamos listos para comenzar la instalación del sistema operativo, para ello lanzamos la aplicación qemu-launcher y configuramos lo siguiente:

  • En la pestaña «disks and memory»
    • Seleccionamos «use cdrom»e indicamos el dispositivo físico (normalmente /dev/cdrom). También podemos utilizar una ISO, que se puede crear ejecutando dd if=/dev/cdrom of=imagen.iso
    • En «hard disk 0″pinchamos en new y creamos un disco duro virtual de la capacidad que queramos.
    • En «RAM» introducimos cuanta RAM de nuesto sistema querems dedicar al sistema virtualizado.
    • En esta pestaña se encuentra el parámetro «snapshot», que si esta marcado impide que las modificaciones se escriban en el disco virtual. Muy útil para hacer pruebas sobre el sistema virtualizado.
  • En la pestaña «network», dentro de «card0»
    • Seleccionamos «Open a Tun/Tap Interface» (configuración en el paso 4).
  • En la pestaña «hardware»
    • Marcamos «set clock to local time» para tener la hora bien.
    • Marcamos «enable sound» si queremos sonido.
    • Seleccionamos cualquier tarjeta de video y de sonido.
    • Seleccionamos el mapa del teclado.
  • En la pestaña «emulator»
    • Marcamos el campo «acceleration» a «enable».

NOTA: A mi no me funcionaba el «full» al instalar, por eso lo dejé en «enable», y una ve el sistema estaba instalado lo cambié a «full» y funcionó.

Llegado este punto, ya podemos pinchar en «launch» e instalar el Sistema Operativo como si fuera un PC normal.

qemu_1.jpg

qemu_2.jpg

qemu_3.jpg

Paso 4: Configuración de la red mediante bridging.

Antes de empezar con este paso, comentaros que lo podíamos haber hecho antes, para tener red durante la instalación por ejemplo, pero he preferido dejarlo para el final.

Una cosa importante en nuestro sistema virtualizado es el acceso a la red. Este se realiza a través de la máquina huésped, pero por defecto el sistema virtualizado no tiene acceso más que a su máquina huésped, y no a toda la red. Para solucionar esto,habilitaremos un bridge en la máquina huésped, de manera que el sistema virtualizado tenga acceso a la red local e Internet a través del huésped. Para ello habilitaremos las interfaces tun y modificaremos 2 ficheros.

Primero cargamos el módulo tun:

modprobe tun

Editamos el fichero /etc/network/interfaces y si nuestra interfaz de red era eth1, eliminamos todo lo relativo a su configuración e introducimos lo siguiente:

auto br0
iface br0 inet static
address 192.168.1.121
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.100
dns-nameservers 80.58.61.250 80.58.61.254

bridge_ports eth1
bridge_stp off
bridge_maxwait 5

Con esto, habremos creado el bridge br0, y habremos metido la interfaz eth1. En este punto, cambiad los valored por los relativos a vuestra red.

Ahora editamos el fichero /etc/qemu-ifup borramos su contenido y copiamos lo siguiente:

#!/bin/sh
echo "Executing /etc/qemu-ifup"
echo "Bringing up $1 for bridged mode..."
sudo /sbin/ifconfig $1 0.0.0.0 promisc up
echo "Adding $1 to br0..."
sudo /usr/sbin/brctl addif br0 $1
sleep 2

Pues ya esta!! Ya tenemos la red lista para nuestro sistema virtualizado, a disfrutar!! 😉

7 thoughts on “HOWTO: Virtualización en Linux con Qemu + Kqemu + Qemu-Launcher

  1. Aupa!

    He visto tu post en la lista del HM. Yo estube trasteando con qemu en su dia y lo de la red lo deje por imposible, fui incapaz de hacerlo funcionar via bridge. Quiza vuelva a la carga con tu receta.

    saludOS

  2. Hola, gracias por el articulo.
    Tengo un problema, me he quedado en el paso 3, cuando hago launch, no hace nada.
    Tienes idea de

  3. Hola, tengo un problemilla, me he quedado en el paso 3, cuando le doy a launch no hace nada. Tienes idea de que puede ser?

    gracias por adelantado

  4. Umm, prueba a ejecutarlo desde consola a ver si ves algo y sino prueba a hacerlo como root con kdesu o gksu a ver…

  5. Fran, a mí me pasaba lo mismo y era que no tenía configurado mi usuario en el grupo sudo. Además, he añadido a sudo instrucciones para poder ejecutar brctl i tunctl sin contraseña. tunctl se instala con las uml-utilities.
    Echa un vistazo también a: http://www.kriptopolis.org/qemu

  6. Pingback: Gliyo

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *