PDF de programación - Tutorial QEMU

Imágen de pdf Tutorial QEMU

Tutorial QEMUgráfica de visualizaciones

Publicado el 6 de Abril del 2018
2.490 visualizaciones desde el 6 de Abril del 2018
9,8 KB
4 paginas
Creado hace 14a (04/12/2009)
Xombra.com|| Sitio de Seguridad Informatica

Tutorial QEMU
QEMU es un emulador y virtualizador genérico de la CPU, lo que le diferencia de VMware y
similares, que sólo permiten virtualizar. La faceta emuladora de QEMU le permite ejecutar
sistemas operativos y programas creados para una determinada máquina en otra diferente
(como puede ser nuestro PC). Cuando se utiliza como virtualizador requiere un acelerador
(denominado KQEMU) y necesita que tanto la máquina huésped como la máquina invitada
utilicen procesadores compatibles x86. QEMU es software libre.
En este tutorial -y a modo de ejemplo- virtualizaremos Windows XP en una máquina
GNU/Linux
<img src="http://www.kriptopolis.org/images/xpqemu.jpg" alt="QEMU1" width="500"
height="400" border="0">

Necesitarás instalar antes QEMU y KQEMU, siguiendo el método usual en tu distribución.
Este tutorial lo he realizado sobre Arch Linux 0.8, utilizando qemu 0.9.0-1 y kqemu
1.3.0pre11-2.
En primer lugar, crearemos la imagen de disco, es decir, un fichero que contendrá la imagen
del disco duro del sistema invitado, al que daremos un tamaño -por ejemplo- de 4 Gigabytes:

*** --- qemu-img create -f qcow xp.qcow 4G --- ***
Crearemos ahora una imagen superpuesta a ésta, de modo que los cambios se almacenen
en un fichero aparte y podamos regresar a la imagen original en caso en caso de problemas
o inestabilidades:
qemu-img create -b xp.qcow -f qcow xp2.qcow
A continuación habremos de insertar el CD de Windows XP en la unidad y preparar el medio
de instalación del sistema invitado. Por ejemplo:

*** --- dd if=/dev/cdrom of=xp.iso --- ***
Procedemos ahora a instalar el sistema operativo:

*** --- qemu -cdrom xp.iso -boot d xp2.qcow --- ***
Correcto:

<img src="http://www.kriptopolis.org/images/xpqemu_00.jpg" alt="QEMU2" width="500"
height="391" border="0">
La instalación sigue el proceso habitual. El puntero del ratón quedará "atrapado" en la
ventana de instalación; para liberarlo pulsa *** --- Ctrl y Alt --- *** a la vez.
Si te fijas ahora en la consola desde la que arrancaste, es posible que veas dos mensajes de
aviso.
El primero dice:


<em>Could not configure '/dev/rtc' to have a 1024 Hz timer. This is not a fatal
error, but for better emulation accuracy either use a 2.6 host Linux kernel or
type 'echo 1024 > /proc/sys/dev/rtc/max-user-freq' as root.</em>
Si te aparece, la solución es inmediata. Teclea lo que se te indica como root en una consola:


*** --- echo 1024 > /proc/sys/dev/rtc/max-user-freq --- ***
Se supone que eso acelera la ejecución.
El segundo mensaje sólo indica que no estás utilizando el acelerador KQEMU:
<em>
Could not open '/dev/kqemu' - QEMU acceleration layer not activated</em>
Para cargar el acelerador has de teclear (una sola vez) esto como root:

*** --- echo "options kqemu major=0" >> /etc/modprobe.conf --- ***
Tras el primer rearranque automático prosigue la instalación. Al final, tenemos el sistema
virtualizado funcionando:
<img src="http://www.kriptopolis.org/images/xpqemu_01.jpg" alt="QEMU3" width="500"
height="389" border="0">
Desde este mismo momento puedes conectarte a cualquier servidor que corra en el host
Linux sin más que utilizar para ello la dirección 10.0.2.2. Por ejemplo, aquí estamos
conectados a un servidor web Apache corriendo en el Arch Linux anfitrión:
<img src="http://www.kriptopolis.org/images/xpqemu_02.jpg" alt="QEMU4" width="500"
height="388" border="0">
En algunos casos (ver comentarios) también se podría disponer ya de acceso a Internet en
este punto. Compruébalo, apagando tu máquina virtual y arrancándola de nuevo con un
comando como el siguiente:

*** --- qemu -hda /home/tu_nombre_usuario/xp2.qcow -m 384 -kernel-kqemu -localtime ---
***
El número que sigue a la m es la memoria RAM que quieres dedicar a tu máquina virtual XP
y la opción localtime hace que se muestre la hora correcta (si no, emplea la UTC).
Si puedes salir a Internet, enhorabuena. Para ti, el tutorial acaba aquí.
Si no (o si quieres además que tu máquina virtual sea visible para tu red local), continúa
leyendo.
Si no puedes salir a Internet...
En mi caso, por alguna razón el XP no pilla la IP de forma automática, así que tuve que
configurar a mano la conexión de red. No me sirvió utilizar la IP de la pasarela de mi sistema
y dar al XP una IP en ese rango, sino que tuve que dar ambas en el rango que utiliza QEMU,
es decir:

<em>IP : 10.0.2.15
Pasarela: 10.0.2.2</em>
Con esto logré salir a Internet incluso en un caso tan atípico como el mío.
Otra forma más complicada de lograrlo consiste en configurar una conexión bridged
(puenteada), que da una IP propia al equipo virtual, lo que -a cambio de una mayor
complicación- comporta la ventaja añadida de que lo hace visible desde el host u otros
equipos de la red.
El método que sigo a continuación funcionó tal cual en Arch Linux, pero seguramente habrá
que modificarlo para otras distribuciones. Requiere tener instalados los paquetes

bridge-utils y uml_utilities.
Lo que haremos será reconfigurar la red para poder disponer de un interfaz puente, llamado
br0.
Crearemos el fichero /etc/qemu-ifup con el siguiente contenido (insisto: las rutas serán las
de distribución):

*** --- #!/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 --- ***
Para dar a este fichero permisos de ejecución tecleamos:

*** --- chmod a+x /etc/qemu-ifup --- ***
Crearemos /etc/udev/rules.d/70-kqemu.rules, con el siguiente contenido:

*** --- KERNEL=="kqemu", MODE="0666"
KERNEL=="tun", MODE="0666" --- ***
Crearemos ~/bin/qemu_setup (es decir, en tu home) con el siguiente contenido:

*** --- # insert the tuntap module
modprobe tun --- ***
*** --- # insert the bridge module
modprobe bridge --- ***
*** --- # insert the kqemu module
modprobe kqemu major=0 --- ***
*** --- # setup bridge
ifconfig eth0 down
brctl addbr br0
ifconfig eth0 up
brctl addif br0 eth0
ifconfig br0 192.168.0.111 up
ifconfig eth0 down
ifconfig eth0 0.0.0.0 up
route add default gw 192.168.0.1 --- ***
(ojo: la primera IP será la que quieras darle a tu máquina invitada y la segunda la de tu
pasarela a Internet).
Hazlo ejecutable:

*** --- chmod a+x ~/bin/qemu_setup --- ***
Por último nos creamos un script (~/bin/windows) para arrancar la máquina Windows con
las opciones que deseemos (Así, el número que sigue a m representa la RAM que queremos
utilizar, etc. Puedes observar todas las opciones disponibles tecleando qemu en la línea de
comandos).
Nuestro ~/bin/windows será algo así:

*** --- #!/bin/sh

USERID=`whoami`
iface=`sudo tunctl -b -u $USERID`
qemu -hda /home/turing/xp2.qcow -m 384 -cdrom /dev/cdrom -kernel-kqemu -localtime
-snapshot -net nic -net tap,ifname=$iface
sudo tunctl -d $iface &>/dev/null --- ***
Hazlo ejecutable:

*** --- chmod a+x ~/bin/windows --- ***
Tecleamos ahora visudo para añadir las siguientes líneas a /etc/sudoers y poder ejecutar
QEMU como usuario normal:
*** ---
tu_nombre_de_usuario ALL=(ALL) NOPASSWD: /usr/sbin/brctl
tu_nombre_de_usuario ALL=(ALL) NOPASSWD: /usr/bin/tunctl
tu_nombre_de_usuario ALL=(ALL) NOPASSWD: /sbin/ifconfig --- ***
Tras reiniciar, ahora, siempre que queramos usar la máquina virtualizada, hemos de ejecutar
-como root- el script qemu_setup para poner en marcha la conexión de red y después
arrancar -con tu usuario- el script windows.
Ahora ya tenemos salida a Intenet, como demuestra el hecho de que Explorer ya puede
encontrar felizmente su casa:
<img src="http://www.kriptopolis.org/images/xpqemu_03.jpg" alt="QEMU5" width="500"
height="388" border="0">
Hasta aquí sólo hemos visto un ejemplo del uso de QEMU como virtualizador, pero QEMU es
también un emulador y dispone de muchas otras opciones y posibilidades (y también de una
versión para Windows) así que, a poco que me demostréis que el tema os interesa, ésta que
ahora contemplas podría ser sólo la primera entrega de toda una saga.
Referencias:
<a href="http://fabrice.bellard.free.fr/qemu/" target="_blank">QEMU </a>[Home Page].
<a href="http://wiki.archlinux.org/index.php/Qemu" target="_blank">QEMU </a>[Archwiki].
<a href="http://mychael.gotdns.com/blog/?p=20" target="_blank">QEMU setup
</a>[Wisdom is the prime thing].
<a href="http://felipe-alfaro.org/blog/2006/07/05/qemu-and-tuntap-networking/"
target="_blank">QEMU and TUN/TAP networking</a> [Felipe Alfaro Blog].
Fuente del artículo
Por:
<a href="http://www.kriptopolis.org" target="_blank">http://www.kriptopolis.org</a>

http://www.xombra.com/go_articulo.php?articulo=86
  • Links de descarga
http://lwp-l.com/pdf10216

Comentarios de: Tutorial QEMU (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad