Help - Search - Members - Calendar
Full Version: Qemu
Hackerss.com > Informática > Sistemas Operativos > GNU/Linux - UNIX > Articulos de UNIX
Soul Lost
Qemu

Qemu es un emulador de sistemas operativos con licencia GNU, parecido a vmware, mas bien dicho con la misma finalidad que este..

Mas info: http://en.wikipedia.org/wiki/QEMU

Instalación

Necesitamos:

Qemu http://fabrice.bellard.free.fr/qemu/qemu-0.7.2.tar.gz
Acelerador de qemu http://fabrice.bellard.free.fr/qemu/kqemu-0.7.2.tar.gz
Cabezeras de nuestro kernel actual (kernel-headers-*)

Descomprimir (usuario normal):
Se pueden omitir pasos xD
CITA
cd ~ && tar xvzf qemu*.tar.gz && cd qemu* && tar xvzf ../kqemu*.tar.gz && ./configure


Aqui en el configure tengo que hacer una aclaración, si quieren soporte SDL :
Capa Simple de DirectMedia (SDL), La Capa Simple de DirectMedia es una API genérica que proporciona acceso a bajo nivel para audio, teclado, ratón, mando para juegos (joystick), hardware 3D mediante OpenGL, y memoria de imagen (framebuffer) 2D sobre múltiples plataformas.

Necesitas los paquetes: libsdl1.2-dev y zlib1g-dev

Y para el acelerador del cpu necesitamos tener decomprimido kqemu dentro del directorio de qemu..

En el ./configure aparecera algo así:
CITA
soullost@UnderHouse:~/fuentes/qemu-0.7.2$ ./configure
Install prefix /usr/local
BIOS directory /usr/local/share/qemu
binary directory /usr/local/bin
Manual directory /usr/local/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /home/soullost/fuentes/qemu-0.7.2
C compiler gcc
Host C compiler gcc
make make
host CPU i386
host big endian no
target list i386-user arm-user armeb-user sparc-user ppc-user i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu
gprof enabled no
static build no
SDL support yes ###Soporte SDL
SDL static link no
mingw32 support no
Adlib support no
FMOD support no
kqemu support yes ###Soporte acelerador kqemu

KQEMU Linux module configuration:
kernel sources /lib/modules/2.6.13.2/build
kbuild type 2.6


Bueno seguimos con la instalación:
CITA
make && su -c make install


Unaves terminado ya tenemos instalado qemu, para comprobar:
CITA
soullost@UnderHouse:~/fuentes/qemu-0.7.2$ qemu
QEMU PC emulator version 0.7.2, Copyright © 2003-2005 Fabrice Bellard
usage: qemu [options] [disk_image]
.......................................
..........................................


Habilitando kqemu

Para habilitar el kqemu hacemos:
CITA
modprobe kqemu major=0 #major =0 es para que cree un fichero en /dev/kqemu (udev)

Agregamos los permisos del modulo en /etc/udev/permissions.rules:

CITA
# Permisos para /dev/kqemu
KERNEL=="kqemu", MODE="0666"


Para cargar kqemu al inicio del sistema lo agregamos a /etc/modules
CITA
soullost@UnderHouse:~/fuentes/qemu-0.7.2$ more /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file should contain the names of kernel modules that are
# to be loaded at boot time, one per line. Comments begin with
# a "#", and everything on the line after them are ignored.

#ide-cd
#ide-detect
#ide-disk
#psmouse
snd-ac97-codec
snd-intel8x0
kqemu major=0


Instalando una maquina virtual

Ok todo bien, qemu trabaja sobre imagenes de disco para poder emular, se recomienda usar la herramienta qemu-img para crearlas ya que tienes la caracteristica de ocupar unos cuantos kb y como se vaya ocupando el disco duro de nuestra maquina virtual se estara llenando.. Pero claro no hay problema en crear una imagen de disco fisica con dd...

Diferentes tipos de imagen de disco que usa qemu-img
"raw"
Raw disk image format (default). This format has the advantage of being simple and easily exportable to all other emulators. If your file system supports holes (for example in ext2 or ext3 on Linux), then only the written sectors will reserve space. Use "qemu-img info" to know the real size used by the image or "ls -ls" on Unix/Linux.

"qcow"
QEMU image format, the most versatile format. Use it to have smaller images (useful if your filesystem does not supports holes, for example on Windows), optional AES encryption and zlib based compression.

"cow"
User Mode Linux Copy On Write image format. Used to be the only growable image format in QEMU. It is supported only for compatibility with previous versions. It does not work on win32.

"vmdk"
VMware 3 and 4 compatible image format.

"cloop"
Linux Compressed Loop image, useful only to reuse directly compressed CD-ROM images present for example in the Knoppix CD-ROMs.

Cremos la imagen (usaré qcow por que instalare un windows xD)
CITA
qemu-img create -f qcow win2s.img 5G


Mas info: man qemu-img

Procedemos a instalar windows con lo siguiente (teniendo el cd de la instalacion ya dentro de la lectora):

CITA
qemu -cdrom /dev/hdc -hda win2s.img -boot -d -m 300


Imagen IPB

Imagen IPB

Opciones que especificamos
-cdrom Aqui la imagen de nuestra lectora (si no saben cual es pongan df -h)
-hda Toma la imagen como nuestro disco duro para la instalacion
-boot indica cual sera el medio para bootear en este caso es el d (cdrom), pero peude ser -a para el floppy, -c para el disco duro o -d para cdrom

Nota: Qemu ocupa la ram de tmpfs, mirar con df -ha para llecar que tanta memoria tenemos disponible por default, en mi caso:
tmpfs 375M 0 375M 0% /dev/shm
Asi que 375 MB sera el maximo que puedo especificar con la opción en -m al qemu..
Para aumentar esto hacemos como root:
CITA

umount /dev/shm
mount -t tmpfs -o size=272m none /dev/shm


Corriendo una maquina virtual

Una ves terminada la instalación, podemos correr qemu con un script.. el mio llamado arranca:
qemu -hda win2s.img -user-net -m 256 -smb -enable-audio -std-vga -boot c

No olviden dar permisos de ejecución y ejecutar con ./arranca en mi caso

Opciones que especifique:
-boot c Bootea con el disco duro
-hda win2.img Toma como disco duro a la imagen que creamos y donde instalamos el sistema operativo
-user-net Habilita el uso de internet
-m 256 Toma como RAM 256 MB
-smb habilita el compartir archivos
-enable-audio Habilitale el audio en la maquina virtual..

Mas info: man qemu

Configuración de la red

Lo mas facil es dejar que emule mediante DHCP o ahregar estos datos en las opciones de red:
CITA
IP: 10.0.2.5
Mascara: 255.255.255.0
Gateway: 10.0.2.2
DNS: 10.0.2.3 y 10.0.2.4


Esto aunque no concuerde con tu estructura de tu red

Editar lmhosts.sam en windows y poner:
10.0.2.2 El nombre de tu host
10.0.2.4 smbserver
Guradar lmhost sin exetnsión y reiniciar..

Toca agregar el nuevo usuario a samba como lo hacmeos normalmente..

Abrir msdos y poner: net use e: \\elipsis\windows contraseña_en_samba

Verificando kqemu

Mientras estamos emulando el sistema presionamos Ctrl + Alt + 3 y tecleamos: info kqemu aparecera algo así:
Imagen IPB
Para volver a la maquina virtual Ctrl + Alt +2

Capturas

Imagen IPB

Imagen IPB

Referencias

http://fabrice.bellard.free.fr/qemu/qemu-doc.html#SEC1
http://ubuntu.sun.ac.za/wiki/index.php/QEMU
http://www.badopi.org/node/585


-----------------------------------------------------------------
Para que te guste Linux debes pensar como usuario Linux
------------------------------------------------------------------

Emulando MSDOS

Este articulito XD lo escribo por la simple razon de ayudar a personas con el mismo problema y los que quieran tener un MSDOS emulando en su Distribución preferida..

Para mi fue un poco de martidio (duré para entenderlo bien como se instala como una semana o mas), una por ignorancía de MSDOS XD y otra por cuestiones de imagenes para instalar y con el mismo programa (qemu)

Empezamos

Requerimientos:
  • Disquette's o imagenes de instalación del MSDOS 6.22 (ese probe yo xD, lo pueden conseguir por emule o al termino del pueden encontrar los links de la imagenes *.iso)
  • Qemu (ya se explico mas arriba como instalarlo)
  • Borland Turbo c++ 3.0 (aqui la razon de emular el MSDOS en mi persona) XD [opcional]
Instalando MSDOS

Bien primero creamos la imagen que ocuparemos como hda (disco duro):

CITA
qemu-img create msdos.img -f qcow 1 GB


Despues lanzamos qemu para instalarlo:

CITA
qemu -fda /dev/fd0 -boot a -hda msdos.img


Con suerte empezará la instalación, al momento en que pida introducir el disquette No. 2 hacemos lo siguiente:
  • Sacamos el primer disquette e introducimos el segundo..
  • Pasamos a la consola del qemu con: Alt + Ctrl + 2 y escribimos:
    CITA
    chande fda /dev/fd0

  • Regresamos a la emulación del qemu con Alt + Ctrl + 1 y presionamos enter para seguir con la instalación
  • Repetir estos pasos al momento de que la instalación pida los disquettes siguientes tongue.gif
Con eso ya tenemos instalado el msdos y para ejecutarlo laproxima vez, hacemos:
CITA
qemu msdos.img


Nota: Yo no he encontrado como apagar la pc virtual con el msdos xDDD asi que para apagarla presiono en la cosnola Ctrl + C

Soporte Unidad de CDROM a MSDOS

Por defecto msdos no soporta la unidad de cdrom para ello hay un parche el cual ejecutamos de la siguiente forma ( el parche se encuentra en los links al ultimo del articulo)

CITA
qemu -fda cdrom.iso msdos.img


estando una vez dentro de msdos

CITA

c:\ a:
a:\ dir
a:\ install


Seguir el asistente xD
Reiniciar MSDOS (ya pueden introducir cdroms, el cual toma la letra "d")

TIPS

Una buena constumbre es crear imagenes .iso para no estar cmabiar de cdrom a cada rato o estar introduciendo disquetttes.. Además es mas comdo. A lo que voy es tomar un archivo .iso como imagen de cdrom o disquette y que qemu lo tomo como tal..

Para esto debemos crear el archivo .iso ya sea de alguna carpeta o de un dispositivo con la infomación:

Para carpetas
CITA
mkisofs -J -o nombre.iso nombre_carpeta


Donde:

nombre.iso es el nombre que le queremos asignar a la imagen creada

nombre_carpeta es la ruta o PATH donde se encuentra los datos, informacion, programas, etc, que queremos que apartir de ahi cree la imagen..

Para Dispositivos
Ejemplo tenemos el msdos 6.22 y queremos pasarlos a .iso para ser mas comodo y no se descompongan xD

CITA
dd if=/dev/fd0 of=dos1.iso


Y asi sucesivamente para cada disquette o cdrom..

Al utilizar qemu hacemos:

CITA
qemu -fda turbo.iso -boot c -hda msdos.img


CITA
qemu -cdrom turbo.iso -boot c -hda msdos.img


En la consola del qemu si quieremos cambiar hacemos:

CITA
change -fda trubo2.iso


CITA
change -cdrom trubo2.iso


LINKS

Imagenes de MSDOS y parche del CDROM:

http://www.megaupload.com/?d=ELT94T4V

IMAGENES

Imagen IPB

Imagen IPB

Imagen IPB

Imagen IPB

AGRADECIMIENTOS

A esteban_conde de los foros de gentoo.org por toda su ayuda XD (asesoría, imagenes, paciencia), se merece bien en rango de guru en los foros =)

A Lord Steve por alojar los archivos wink.gif

CONECTAR NUESTRA PC VIRTUAL A NUESTRA RED REAL MEDIANTE TUN/TAP + BRIDGE (GENTOO)

Bien necesitamos el siguiente paquete:

CÓDIGO

*  sys-apps/usermode-utilities
      Latest version available: 20040406-r1
      Latest version installed: 20040406-r1
      Size of downloaded files: 58 kB
      Homepage:    http://user-mode-linux.sourceforge.net/
      Description: Tools for use with Usermode Linux virtual machines
      License:     GPL-2


Antes que nada debemos levanta los modulos correspondiente:

CÓDIGO

# modprobe tun
# modprobe bridge


Agregar permisos al modulo tun en /etc/udev/rules.d/50-udev.rules , debe quedar asi:

CÓDIGO

UnderHouse init.d # more /etc/udev/rules.d/50-udev.rules | grep tun
KERNEL=="tun",          NAME="net/%k",  MODE="0666"


Ahora editamos el archivo de la configuración de red: /etc/conf.d/net ( cambiar tus datos correspondientes a tu red):

CÓDIGO

bridge_br0="eth0"
config_eth0=( "0.0.0.0" )
config_br0=( "192.168.0.3 broadcast 192.168.0.255 netmask 255.255.255.0" )
brctl_br0=( "setfd 0" "sethello 0" "stp off" )
routes_br0=( "default via 192.168.0.1" )

depend_br0() {
        need net.eth0
}


Hagamos los siguiente pasos necesarios:

CÓDIGO

rc-update del net.eth0
cd /etc/init.d
ln -s net.lo net.br0
rc-update add net.br0 default


Creamos el script que corre qemu para levantar la interfaz de red para la maquina virtual

CÓDIGO


#!/bin/sh

tunctl -t $1
ifconfig $1 0.0.0.0 promisc up
brctl addif br0 $1


Ahora iniciamos la maquina virtual ó algún livecD cómo lo hago yo:

CÓDIGO

soullost@UnderHouse ~/isos $ su -c "qemu -m 300 -k es -net nic -net tap -boot c -cdrom pentoo.2005.1.iso"


Y listo, ifconfig mostrará algo como lo siguiente (similar a vmware =):

CÓDIGO

br0       Link encap:Ethernet  HWaddr 00:0B:6A:8E:94:D8
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4491 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4330 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:2442779 (2.3 Mb)  TX bytes:641723 (626.6 Kb)

eth0      Link encap:Ethernet  HWaddr 00:0B:6A:8E:94:D8
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:378632 errors:0 dropped:0 overruns:0 frame:0
          TX packets:204870 errors:0 dropped:0 overruns:0 carrier:0
          collisions:44 txqueuelen:1000
          RX bytes:552695386 (527.0 Mb)  TX bytes:15525371 (14.8 Mb)
          Interrupt:11 Base address:0x4f00

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:776696 errors:0 dropped:0 overruns:0 frame:0
          TX packets:776696 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4209123530 (4014.1 Mb)  TX bytes:4209123530 (4014.1 Mb)

tap0      Link encap:Ethernet  HWaddr B2:45:44:78:A7:4D
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)


Ahora sólo agregar los datos correspondientes a nuestra maquina virtual ya seá GNU/Linux o Windows ( ip, netmask, gateway, dns)..

Imagen IPB

Esto es para gentoo, para otros distros mirar los siguientes links:

http://pulsar.unizar.es/wiki/GuiaDeSupervivencia
http://www.ubuntu-es.org/node/9292
Soul Lost
Agregue lo de Tun/tap + bridge xD
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.