Qemu, la reostia oiga!

Estándar

Hace algun tiempo instalé qemu, inspirado por este artí­culo de este personaje, para hacer pruebas.Conseguí­ emular un windows 98 sin demasiados problemas. Me faltaron algunos detalles, como la salida a internet y compartir archivos a traves de samba entre mi Ubuntu y el sistema emulado.
Voy a intentar explicar como lo hice.

Condiciones de trabajo:
– Ubuntu Hoary en un AMD XP2800 como sistema base
– Windows 98 SE como sistema a emular

Receta de Qemu al gusto de NeiL

Ingredientes:

1) Qemu sacado de la web oficial (probadas la version 0.6 y 0.61 con problemas), version 0.7 en el momento de escribir esto.
2) CD o imagen iso de un Windows 98 SE (siempre original o copia de seguridad)
3) Una botella de whiskey
4) Unos cubitos de hielou (amarillo en inglé)
5) Un vaso

Los 2 primeros ingredientes son imprescindibles, los otros 3 son opcionales 😉

Paso 1 -Preparando la sartén-

Descomprimimos el tar.gz desde /

neil@Engendro:/$ tar zxvf qemu-0.7.0-i386.tar.gz

Creamos un directorio en nuestro home que se llame Qemu y accedemos a el

neil@Engendro:/$mkdir /home/neil/Qemu
neil@Engendro:/$cd /home/neil/Qemu

Creamos un disco duro virtual para desgraciarlo instalandole un SO de juguete

neil@Engendro:~$dd if=/dev/zero of=/home/neil/Qemu/qemu.disk bs=1024 count=500000

Aclaro, qemu.disk es el fichero que se creará y 500000 corresponde a 500 mb. En la orden del dd debeis sustituir «neil» por el nombre de vuestro usuario para que os cree el archivo qemu.disk en el lugar correcto.Hay un formato que se llama qcow que consigue hacer que el tamaño de qemu.disk no sea fijo, sino que ocupe lo que vayamos grabando en él.
Para hacer la conversión harí­amos

neil@Engendro:~$qemu-img convert qemu.disk -O qcow qemu.qcow

En ésta recetilla trabajaremos con qemu.disk pero la conversion la podeis hacer cuando querais.
Lo unico a tener en cuenta es que cuando realiceis la conversion qemu no debe estar en marcha.
Como esto de crear un disco virtual es algo lento , es un buen momento para combinar el vaso, el hielou y el whiskey y remojarse el gaznate.

Paso 2 -Calentando el aceite-

Ahora que tenemos el terreno preparado vamos a insertar el cd de win y a empezar a jugar.
Se entiende que en todo momento , si no digo lo contrario, estamos trabajando desde /home/neil/Qemu.

Lanzamos Qemu diciendole que arranque desde el cdrom

neil@Engendro:~$qemu -boot d -cdrom /dev/cdrom -hda qemu.disk -enable-audio -user-net -m 256

Comento la jugada,
-enable-audio, salta a la vista lo que es ( a mi no me funciona)
-user-net, activa el soporte de red
-m 256, reserva 256 mb de ram para qemu (cada cual que ponga lo que le convenga, con 64 tira bien)
Una vez arrancado, procedemos a la instalación del SO de la forma habitual.
Y aprovechando que estaremos un rato parados, podemos volver a combinar el vaso, el hielou y el whiskey y echarnoslo por detras de la corbata.
Aconsejo que el usuario que creeis para entrar en el SO emulado tenga el mismo nombre que el usuario con el que trabajais en el sistema base, en mi caso NeiL para ubuntu y NeiL para el SO emulado.

Paso 3 -El arte de freir un huevo-

Una vez instalado procedemos a la ejecución con todos los adornos 😉

neil@Engendro:~$qemu -boot c -hda qemu.disk -user-net -enable-audio -m 256 -smb qemu -cdrom /dev/cdrom

Aqui vemos una opcion nueva, -smb , que sirve para recursos compartidos. Un poquito más adelante la explico.
Fijaros que el -boot ahora lo hace a c con el fin de arrancar desde el disco duro virtual y no desde el cdrom.
Llegados a este punto os deberia de arrancar sin problema el SO emulado, os deberias de poder identificar sin problema con vuestro nombre de usuario y contraseña (los mismos que en el sistema base) y todo deberia funcionar excepto la red.
Configuremos la red. En la página de Qemu dicen que se configura por dhcp, pero a mi me ha dado problemas y lo hago asignando una ip a mano. Asi que lo dejo como sigue:

IP: 10.0.2.15
Mascara: 255.255.255.0
Puerta de enlace: 10.0.2.2
Servidores DNS: 10.0.2.3 y 10.0.2.4

Además hay que editar el archivo lmhosts.sam que hay en C:\windows\ y añadir al final:

10.0.2.2 AquiElNombredeTuSistemaBase
10.0.2.4 smbserver

Y luego guardarlo como lmhosts (sin extension).
Acto seguido reiniciaremos el SO emulado para que tengan efecto los cambios.
Aprovechando el reinicio podemos tomarnos un pequeño tentempié a base de los tres ultimos ingredientes de esta receta.

Paso 4 -¿Qué es un huevo sin sus patatas fritas?-

Ahora que tenemos la red configurada en el SO emulado hay que comprobar que funcione, por ejemplo, abriendo el navegador y visitando GPLTarragona. Si no funciona es que tenemos algo mal en el SO base, probablemente no hayamos preparado nuestro SO base para dar salida a internet a otros pc. Yo lo hice con firestarter, al instalarlo el asistente te lo pregunta. Hay quien lo hace con iptables a pelo («como los hombres» — dirí­a Sergi). Pero bueno, eso es faena para otro rato y no estoy yo aquí­ para explicar eso, darle caña al google que se aburre.
Bien, tenemos la red configurada y con acceso a internet. Que más se puede pedir? Compartir archivos entre los dos SO? Pues vale, lo hacemos.
En el SO base tenemos que tener Samba instalado y ejecutandose.
Compartimos una carpeta, yo he compartido /home/neil/Qemu/compartido , que es una carpeta creada para la ocasión. He aqui mis ultimas lineas del /etc/samba/smb.conf

[qemu]
path = /home/neil/Qemu/compartido
available = yes
browseable = yes
public = yes
writable = yes

El nombre que aparece entre corchetes [qemu] es el nombre del recurso compartido.
En Gnome podemos hacer este paso algo mas cómodo desde Sistema–>Administración–>Carpetas compartidas.

Algo a tener muy en cuenta es que el usuario neil sea usuario de samba, lo añadimos así­:

neil@Engendro:~$sudo smbpasswd -a neil

Nos pedira que le pongamos una contraseña, recordémos lo que ponemos porque nos hara falta luego.
No, aqui no toca whiskey.. mira que sois alcoholicos!!

Paso 5 -Y de postre, flan-

Arrancamos de nuevo el qemu, pero antes hacemos un apaño para no cansarnos escribiendo:
Creamos un archivo llamado «arranca» con toda la parafernalia del qemu

neil@Engendro:~$ echo qemu -boot c -hda qemu.qcow -user-net -pci -m 256 -smb qemu > arranca

Le damos permisos de ejecución

neil@Engendro:~$ chmod 700 arranca

Lo ejecutamos

neil@Engendro:~$ ./arranca

Antes he mencionado la opcion -smb y como veis ahora la he usado de nuevo. Esta opcion sirve para tener acceso a un recurso compartido. En este caso el SO emulado tendra acceso, a traves de samba, al recurso compartido qemu que antes hemos definido en el /etc/smb.conf y que corresponde al directorio /home/neil/Qemu/compartido.
Ahora que hemos arrancado el SO emulado iremos a Inicio–>ejecutar y alli escribiremos «command».
Esto abrira una pequeña sesion de ms-dos donde escribiremos:

C:\windows\net use e: \engendro\qemu contraseñadesamba

Aquí­ deberiais sustituir engendro por el nombre que tiene vuestro equipo en el SO base, el mismo que antes hemos definido en el «lmhosts». Y la «contraseñadesamba» la debeis sustituir por la contraseña que antes hemos escrito con el smbpasswd ( si, esa que antes he dicho que debiamos recordar).
Si lo hemos hecho bien deberia salir la frase «El comando se completó correctamente» y en Mi Pc deberiais tener una unidad llamada «E:» que es ni más ni menos que el directorio compartido /home/neil/Qemu/compartido.
Si es así­, os podeis tomar otro «tentempié» a base de los tres últimos ingredientes de la receta.
Llegados a este punto una de dos, o todo rula perfecto o llevais un pedal bastante serio.. o quizá una combinación de ambos! XDDD
Algo interesante es instalar éste programilla que hace que el uso de cpu se reduzca de forma notable.
A partir de aquí­ que cada cual haga lo que más rabia le dé.

Documentación:
Página oficial de Qemu
Artí­culo de Davidcg en Gpltarragona
Guí­a no oficial de Ubuntu (para el tema de los usuarios y samba)

Agradecimientos:
Sergio Blanco
David Cifre

6 comentarios en “Qemu, la reostia oiga!

  1. falta un aviso:

    «Las autoridades de GPLTarragona avisan:
    seguir este artí­culo degrada a nivel opensourcero,
    y por lo tanto susceptible de ser quemado en la siguiente trobada.»

    🙂

  2. Shoikan

    Yo tengo el windoze 2k emulado en mi Hoary 5.04, con pleno acceso a internet, sonido a través del driver virtual de SB16 y plenamente operativo.

    Pistas: NO instaleis el paquete desde synaptic, bajáoslo de la peich de qemu (creo que la última versión es 0.7.0)

    Si quereis que el rollo emule a una velocidad decente es imperativo bajarse el módulo del kernel kqemu, sin embargo aunque es completamente gratuito, no está bajo GNU, lo cual mancilla el núcleo.
    A mí­ personalmente me la suda mogollón, pero hay basca que tiene problemas con esto.

    Para la compartición de archivos recomiendo instalar SAMBA en el Linux Host, luego está tirao montar el share en el Windoze Guest.

    Saludos, si alguno tiene alguna duda, que pregunte al webblogger, que le he dejado el emilio y ya verí­amos como currarnos un HOWTO paso por paso.

    Enga, taluego.

  3. Gracias Shoikan por la colaboración 😉
    No he querido entrar en el tema del kqemu precisamente por no ser libre, espero que el autor lo libere pronto, a ver si hay suerte y consigue lo que pide.
    Imagino que la instalacion de un w2k debe ser mas o menos la misma que he descrito yo aqui salvando la diferencia del driver de sonido y el parche del hlt. Aun asi, si te apetece escribir un howto estaré encantado de colgarlo aquí­ si así­ lo deseas.

  4. Meses, cientos de intentos y no funciona el «aclamado» qemu , ni el que viene con debian ni el binario de la pagina de qemu, ni con windows ni con debian ni con nada.

    Sin user-net con user-net en formato qcow ni sin el

    simpre hay una viloacion de segmento al instalar el SO

    Con al menos 2 maquina diferentes lo he intentado

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.