30
Para aquellos que queráis instalaros Windows XP o cualquier otro sistema operativo en una maquina virtual dentro de Ubuntu (o cualquier otra distro basada en debian) usando Qemu, aquí os pongo los pasos en forma abreviada para hacerlo sin problemas:
Antes de todo, necesitaréis los siguientes paquetes:
- Los linux-headers de vuestro kernel
-build-essential
-libsdl1.2-dev
-zlib1g-dev
1. Crear una carpeta para compilar qemu:
$mkdir ~/qemu
$cd ~/qemu
2. Descargarse el código fuente de Qemu y descomprimirlo:
Para la versión 0.7.2 haremos:
$wget http://fabrice.bellard.free.fr/qemu/qemu-0.7.2.tar.gz
$tar zxvf qemu-0.7.2.tar.gz
$cd qemu-0.7.2
3. Descargar y descomprimir el archivo binario de Kqemu en la carpeta de qemu-0.7.2:
$wget http://fabrice.bellard.free.fr/qemu/kqemu-0.7.2.tar.gz
$tar zxvf kqemu-0.7.2.tar.gz
4. Compilar e instalar Qemu:
$./configure
$make
$sudo make install
5. A continuación crearemos una imagen de 2 Gigabytes para instalar el sistema operativo que ejecutaremos en qemu:
$ dd of=hd.img bs=1024 seek=2000000 count=0
cargamos el módulo del acelerador de qemu (kqemu)
$sudo modprobe kqemu
y ejecutamos el instalador del sistema operativo (Windows XP en el ejemplo):
$sudo qemu -boot d -cdrom /dev/cdrom -hda hd.img -m 512
*Es conveniente no tener montado la unidad de cdrom antes de ejecutar este comando.
*El argumento “-m 512″ indica que le damos 512 megas de memoría RAM a la máquina virtual. Es recomendable que le deis la mitad de la memoria que tengáis en vuestro ordenador.
6.Una vez instalado el SO, metemos a nuestro usuario de ubuntu dentro del grupo “users”, y ejecutamos los siguientes comandos:
$sudo chgrp users /dev/net/tun
$sudo chmod g+w /dev/net/tun
$sudo modprobe tun
$sudo echo 'tun' >> /etc/modules
Esto lo haremos para habilitar la red en el sistema operativo que estamos instalando en la máquina virtual.
7. Ejecutamos el sistema operativo instalado usando el comando:
$qemu -hda hd.img -boot c -enable-audio -m 512
*Si tenéis problemas a la hora de ejecutar el comando y os dice que no hay suficiente memoria, ejecutad los dos comandos que os sugerirá el programa:
$sudo umount /dev/shm
$sudo mount -t tmpfs -o size=528m none /dev/shm
8-La red en windows debería funcionar perfectamente si la tenemos configurada para autoconfigurarse mediante dhcp.
9-Para que qemu funcione bien una vez hayamos reiniciado el sistema, necesitaremos efectuar los siguientes pasos antes de iniciar la máquina virtual cada vez que reiniciemos el equipo:
$sudo umount /dev/shm
$sudo mount -t tmpfs -o size=528m none /dev/shm
$sudo mknod /dev/kqemu c 250 0
$sudo chmod 666 /dev/kqemu
$sudo modprobe kqemu
Por ello, no es mala idea hacer un script:
$sudo nano /etc/init.d/qemu
En el que copiaremos lo siguiente:
#!/bin/bash
umount /dev/shm
mount -t tmpfs -o size=528m none /dev/shm
mknod /dev/kqemu c 250 0
chmod 666 /dev/kqemu
modprobe kqemu
Lo guardamos, y a continuación ejecutamos los comandos:
$sudo chmod +x /etc/init.d/qemu
$sudo update-rc.d qemu start 51 S .
10- Por último, recordaos que podéis compartir una carpeta mediante samba en ubuntu para poder acceder a ella por red desde el sistema operativo virtual que habéis instalado y que para poder oir el sonido de la máquina virtual deberéis desactivar el servidor de sonido de ubuntu (el demonio esound).
El resultadoo!!!!:
Podréis encontrar información más detallada en:




Por cierto, gracias a David que puso en un comentario un link a su HOWTO y a Xabi por comentarme que existía Quemu.
Ya he borrado vmware de mi ordenador :)
No se si es el sitio correcto pero …
Sigo tu HowTo, y despues de que el configure no me errores, ni avisos, el make no me compila, no acabo de ver a que puede deberse. alguna idea?
Gracias.
perep@boumort:~/qemu/qemu-0.7.2$ make
for d in i386-user arm-user armeb-user sparc-user ppc-user i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu; do \
make -C $d all || exit 1 ; \
done
make[1]: Entering directory `/home/perep/qemu/qemu-0.7.2/i386-user’
gcc -Wall -O2 -g -fno-strict-aliasing -fomit-frame-pointer -mpreferred-stack-boundary=2 -falign-functions=0 -fno-gcse -fno-reorder-blocks -fno-optimize-sibling-calls -I. -I/home/perep/qemu/qemu-0.7.2/target-i386 -I/home/perep/qemu/qemu-0.7.2 -I/home/perep/qemu/qemu-0.7.2/linux-user -I/home/perep/qemu/qemu-0.7.2/linux-user/i386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -I/home/perep/qemu/qemu-0.7.2/fpu -I/home/perep/qemu/qemu-0.7.2/slirp -c -o op.o /home/perep/qemu/qemu-0.7.2/target-i386/op.c
/home/perep/qemu/qemu-0.7.2/target-i386/ops_sse.h: In function ‘op_pshufw_mmx’:
/home/perep/qemu/qemu-0.7.2/target-i386/ops_sse.h:574: error: unable to find a register to spill in class ‘GENERAL_REGS’
/home/perep/qemu/qemu-0.7.2/target-i386/ops_sse.h:574: error: això és el insn:
(insn:HI 18 17 19 0 /home/perep/qemu/qemu-0.7.2/target-i386/ops_sse.h:569 (set (strict_low_part (subreg:HI (reg/v:DI 63 [ r ]) 0))
(mem/s/j:HI (plus:SI (mult:SI (reg:SI 64)
(const_int 2 [0x2]))
(reg/v/f:SI 59 [ s ])) [0 ._w S2 A16])) 52 {*movstricthi_1} (insn_list:REG_DEP_TRUE 16 (insn_list:REG_DEP_TRUE 12 (insn_list:REG_DEP_TRUE 53 (nil))))
(expr_list:REG_DEAD (reg:SI 64)
(nil)))
/home/perep/qemu/qemu-0.7.2/target-i386/ops_sse.h:574: confusió per errors precedentes, abandó
make[1]: *** [op.o] Error 1
make[1]: Leaving directory `/home/perep/qemu/qemu-0.7.2/i386-user’
make: *** [all] Error 1
Gracias de antemano,
Pere
Solucionado.
El tema està en que qemu no compila correctamente en GCC 4
Para ello he modificado el symlink del gcc
$ sudo ln -sf /usr/bin/gcc-3.4 gcc
Ahora el make compila y ya puedo recuperar el GCC 4
$ sudo ln -sf /usr/bin/gcc-4.0 gcc
Probé con los parametros de configure (./configure –cc=gcc-3.3) pero seguia usando el GCC 4.
Saludos,
Pere - Aesux
Pere, siento haber leido tu comentario con un día de retraso… me alegro de que mi howto te haya servido de ayuda :D. :)
Hola me sirvio de mucha ayuda para poder configurar qemu, pero bueno siempre hay uno o no…
El caso es que me reconoce una sola unidad esta puede ser el lector de cd o el dvd pero no las dos al mismo tiempo.
Hay otras cosas que no me funcionan como
Sonido y Usb de hecho por mas que habilito el sonido en windows 2000 no me reconoce el hardware tampoco me figura como dispositivo desconocido, lo mismo me ocurre con las dos impresoras y una capturadora de video que tambien es USB.
De antemano Gracias por cualquier ayuda.
modprobe -v –force-vermagic kqemu
He llegado hasta el paso numero 5 pero no me carga el modulo del acelerador:da el error—> FATAL module kqemu not found. ¿cómo lo instalo?
Me pasó lo mismo “FATAL module kqemu not found” y lo que hice fue compilar kqemu (que estaba dentro del directorio de qemu) e instalarlo, luego modprobe kqemu major=0 y todo bien.