- Estréllate y Arde - https://www.estrellateyarde.org -
Emulador Qemu en Linux
Qemu (qemu.org, paquete qemu), es un programa que ejecuta máquinas virtuales. Es decir, simula un ordenador completo, incluyendo el procesador y los periféricos y permite ejecutar un Sistema Operativo dentro de Linux como si fuera una aplicación más (incluso se puede acceder a Internet desde la máquina virtual). También se suele utilizar para obtener capturas de pantalla de procesos de inicio e instalación.
Equivalencias en Windows: MS-Virtual PC.
Vamos a ver tres casos:
Veamos cómo instalar Windows en una máquina Linux con Qemu.
$ qemu-img create /mnt/winxp.iso 6G
Este comando es similar a:
$ dd if=/dev/zero of=/mnt/winxp.iso bs=1024 count=6000000
$ qemu -m 512 -fda /dev/fd0 -cdrom /dev/cdrom -boot a /mnt/winxp.iso
También podemos arrancar desde el CD de Windows:
$ qemu -m 512 -cdrom /dev/cdrom -boot d /mnt/winxp.iso
$ qemu -m 512 -cdrom /dev/cdrom -boot c /mnt/winxp.iso
$ qemu -m 512 -cdrom /dev/cdrom -boot c /mnt/winxp.iso
Notas
Módulo acelerador kqemu
Qemu dispone del módulo acelerador kqemu (paquetes kqemu-common kqemu-modules-2.6-486), que hace que las operaciones sean manejadas por el procesador del host y no por el invitado, lo cual aumenta la velocidad de forma considerable. Lo cargaremos en el kernel con:
# modprobe kqemu major=0
y lo activaremos con la opción -kernel-kqemu. Para comprobar que kqemu está cargado accederemos a la consola de Qemu pulsando <Ctrl+Alt+2> y ejecutaremos:
(qemu) info kqemu
Si no hemos activado kqemu con la opción -kernel-kqemu obtendremos:
kqemu suport: enabled for user code
Si lo hemos activado obtendremos:
kqemu suport: enabled for user and kernel code
Si no se activa kqemu y recibimos el mensaje:
Could not open '/dev/kqemu' - QEMU acceleration layer not activated
lanzaremos Qemu con permisos de root.
Lanzar Qemu con qemu-launcher
Podemos lanzar Qemu con qemu-launcher (paquete qemu-launcher), que nos facilitará mucho establecer opciones de arranque.
Desde qemu-launcher podemos activar qemuctl (paquete qemuctl), que ejecuta una consola interactiva que nos permite modificar el comportamiento de Qemu mientras se está ejecutando: montar/desmontar unidades, etc.
Para ejecutar un live-CD Linux con Qemu no necesitamos crear la imagen de disco. Simplemente ejecutaremos:
$ qemu -m 512 -cdrom /dev/cdrom -boot d
y el live-CD se ejecutará en la ventana de Qemu.
Para probar una imagen de un live-CD sin tostar un CD haremos:
$ qemu -m 512 -cdrom /home/francis/livecd.img -boot d
Ejecutar un disquete booteable con Qemu es similar a un live-CD, simplemente ejecutaremos:
$ qemu -m 512 -fda /dev/fd0 -boot a
Para probar una imagen de un disquete booteable sin usar la disquetera haremos:
$ qemu -m 512 -fda /home/francis/disquete.img -boot a
Configurar el acceso a Internet desde Qemu no es nada sencillo. Hay varios sistemas, veamos cómo lo he conseguido usando tun/tap.
# modprobe tun
Esto hace que tengamos disponible en el ordenador real la interfaz tap0, que actuará como gateway para la máquina virtual. Si hacemos:
$ ifconfig -a
comprobaremos que tap0 no aparece, a pesar de que la opción -a muestra todas las interfaces, incluso las down. No aparecerá hasta que no arranque Qemu.
#!/bin/sh sudo -p "Password for $0:" /sbin/ifconfig $1 192.168.0.9
Qemu, con la opción -net tap, ejecuta el script /etc/qemu-ifup, que configura la IP de tap0 (192.168.0.9). El nombre del dispositivo de red (tap0, tap1...) lo pasa como parámetro ($1).
# route add -host 192.168.0.6 gw 192.168.0.9
y hacemos masquerading NAT:
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # echo 1 > /proc/sys/net/ipv4/ip_forward
# qemu -m 512 -cdrom /dev/cdrom -boot c /mnt/sarge.iso -net nic -net tap
$ ifconfig
$ iptables -t nat -nvL
$ route
Terminado, ya tenemos acceso a Internet desde la máquina virtual.
Article printed from Estréllate y Arde: https://www.estrellateyarde.org
URL to article: https://www.estrellateyarde.org/discover/qemu
Click here to print.
Copyright © 2010 Estrellate y Arde