enchufado
   RSS
#
QEMU: Una de emuladores (Virtualización) 2004-12-20 03:32:51

En alguna ocasión me ha entrado el gusanillo de probar a instalar/ejecutar un Sistema Operativo dentro de otro. Las razones, varias: ver su rendimiento, poder usar alguna herramienta del sistema instalado, curiosidad...

Como últimamente no salgo de GNU/Linux, me ha dado por probar VMware (comercial), bochs (Open Source) y, finalmente, QEMU (Open Source, también). Pendiente tengo el degustar Xen y User Mode Linux, de la mano de algún espléndido artículo como este de BULMA.

Pues bien, QEMU está basado en la linea de comandos, pero no hace falta llevarse las manos a la cabeza, pues su uso es bastante sencillo. Pongamos que queremos instalar el Sistema Operativo del que nunca hablamos (fuera bromas, el del ejemplo es un Windows 2000 Profesional). En Debian Sarge existe el binario del QEMU en su versión 0.6.0, pero no recomiendo partir de ese punto, pues he oído (y vivido en mis carnes) que la versión CVS actual está bastante mejor. El snapshot que usé se puede obtener de aquí. Tras desempacarlo, si tenemos todas las dependencias para su compilación (en mi caso carecía de un paquete encargado de pasar texto a html), bastará el típico ./configure; make; make install ó checkinstall.

Antes de seguir y para dejar listas, en la medida de lo posible, las instalaciones, deberíamos instalar alguna bios para poder iniciar QEMU. En mi caso, desde debian instalé un paquete de bios para bochs, llamado bochsbios. Con eso instalado, QEMU ya se encarga de encontrarlas.

Una vez instalado, vamos paso por paso:

  1. Crear un archivo de partición.
  2. En este punto, se pueden usar varios métodos. Desde las propias aplicaciones que acompañan a QEMU, podemos usar alguna de estas dos: qemu-mkcow nombre_imagen tamaño_imagen (formato 0.6.0 o previo) qemu-img create nombre_imagen tamaño_imagen (formato 0.6.1 o superior) O bien podemos usar bximage (útil de bochs descargable de forma separada desde apt), y satisfacer las preguntas que nos va realizando. En este punto cabe decir que si lo que se va a instalar es Windows 2000, se recomienda encarecidamente el uso de bximage (o dd, rellenando el espacio a crear con la ayuda de /dev/zero). ¿La razón? Por causas desconocidas, durante la instalación de Windows 2000, al momento de instalar los componentes, el disco se detecta como lleno. Con una imagen creada con bximage (o dd rellenándola con ceros), esto no pasa. Como nota, nombre_imagen es el nombre que le daremos al fichero que simulará ser una partición (o un disco) para nuestro sistema, y tamaño_imagen es una cifra especificada en MB's. Si vamos a instalar un Windows 2000, deberíamos especificar unos 2GB's, pues él solito se ventila algo más de uno sin nada adicional. En este punto conviene decir que aunque indiquemos un tamaño X, si hemos creado la partición con bximage, en realidad no se está ocupando en disco ese tamaño (por mucho que a ls sí se lo parezca), sino únicamente el tamaño necesitado por el sistema 'guest' o invitado. Y para comprobarlo, ¿qué mejor que un du -hs?
  3. Iniciar la instalación.
  4. Creado el archivo de partición, suponiendo que tenemos el CD del sistema a instalar, hacemos: qemu -boot d -cdrom ruta -hda ruta/nombre_imagen Con el parámetro opción -boot d indicamos que queremos iniciar el sistema desde el cdrom. Con -cdrom, indicamos en qué lugar está el cd, y bien puede ser la dirección hacia una iso, o la dirección del dispositivo donde se halle el medio (p.ej. /dev/hdd). Con la opción -hda indicamos que queremos que se reconozca ese fichero como dispositivo de disco duro. Ahora mismo nos servirá como disco para instalar nuestro sistema invitado (o 'guest') en el que lo albergará (o 'host'). Podemos especificar la memoria de la que podrá disponer el Sistema Operativo invitado con la opción -m tamaño, expresado en MB's (opción muy recomendable). Ahora seguiremos con todo el proceso de instalación hasta terminar. Este proceso es el más lento de todos, pues al fin y al cabo estamos emulando la instalación (proceso que suele ser duradero). La rapidez dependerá de la máquina que poseamos. Como nota, se dice que QEMU es un emulador rápido, y que corre sólo de 2 a 4 veces más lento. Aquí tengo que decir que en algunos aspectos, VMware me resultó más veloz (sobretodo en los accesos a disco).
  5. Iniciar el sistema.
  6. Una vez esté todo instalado, si hemos salido de QEMU podemos iniciar el sistema albergado en cualquier imagen con: qemu -hda nombre_imagen Otras opciones de inicio interesantes son: * -boot a/c/d: Pudiendo iniciar desde disquette, disco duro o cdrom respectivamente. * -m X: Pudiendo especificar la memoria RAM a usar por el sistema guest. * -enable-audio. * -cdrom /dev/X: Pudiendo especificar, al igual que hicimos con el disco duro (hda), cuál es nuestro dispositivo de cdrom. En este punto también podríamos pasarle una imagen iso como cdrom. Aquí debo añadir que, si en la compilación no se indicó otra cosa, desde el 'guest system' podemos tener acceso a Internet (si nuestro 'host system' lo tiene) sin necesidad de ninguna configuración adicional. Por defecto, qemu usa el parámetro -user-net para garantizárnoslo; al menos, así es con un Windows 2000.
  7. Opciones de la máquina virtual.
  8. Esto está extraído del man. Con Ctrl+Alt+n podemos cambiar entre la pantalla del sistema 'guest' (vista por defecto, n=1), la pantalla del monitor de la máquina virtual que lo ejecuta (n=2) y el puerto serie (n=3). Son interesantes la mayoría de las funciones que podemos ejecutar desde el monitor de la máquina virtual, tales como expulsar un dispositivo virtual, cambiarlo, guardar/restaurar el estado de la maquina virtual, parar la emulación, sacar un pantallazo, y mandar determinado juego de teclas al sistema (caso de que estos queden interceptados por el sistema 'host'). Con Ctrl+Alt+f cambiamos entre pantalla completa/normal. Con Ctrl+Alt (muy importante) sacamos el ratón de la máquina virtual. En teoría también el teclado, pero por lo visto esto puede depender del gestor de ventanas que uses y de su configuración. En mi caso, con tener seleccionada la ventana de la máquina virtual como activa (sistema 'guest'), el teclado escribe en ella, y al deseleccionarla, en otro lado fuera de la máquina virtual (alguna otra aplicación del sistema 'host'). El resto de los atajos de teclado son opciones que pueden ser llevadas a cabo desde el monitor de la máquina virtual.
  9. Enlaces de referencia.
  10. Badopi Hispalinux
  11. Colofón
  12. En esta página, enlazada desde la web de QEMU, y repetido aquí para los despistados, podemos encontrar desde GUI's para QEMU, pasando por instaladores de QEMU para las 3 plataformas para las que está disponible (GNU/Linux, Mac y Windows), hasta sistemas para ser usados directamente como 'guest' (con configuraciones apropiadas para QEMU). De estos últimos, entre los disponibles, quería probar ReactOS, pero por alguna razón no lo he logrado hacer funcionar (QEMU me soltaba un Missing system al inicio, tanto con la versión de FreeOSZoo -0.2.3-, como la disponible en la propia web de ReactOS -0.2.4- en su versión de iso y imagen precargada para QEMU). Hasta la fecha, he probado Windows 2000 Profesional, el instalador de Sarge y Monoppix (una live basada en Knoppix y orientada a trabajar con Mono), y todos funcionaron satisfactoriamente. Los dos primeros se dejaron configurar de forma sencilla. El último fue demasiado pedir que se ejecutara medianamente bien, teniendo en cuenta que las live se ejecutan por completo en ram/swap, y especialmente esta, que no me permitió iniciar con otra cosa que no fuera KDE.

Comentarios (4)


Volver al indice

login, admin, form, register