Windows XP sobre QEMU en Debian

QEMU es un emulador de procesador que puede emular un sistema operativo completo, incluyendo periferias. Aquí vamos a mostrar como configurarlo para correr, dentro de Debian, el sistema operativo Windows XP.

Instala el paquete qemu,

# apt-get install qemu

Crea el directorio /var/lib/qemu,

# mkdir -p /var/lib/qemu

y una imagen de disco,

# qemu-img create /var/lib/qemu/xp.img 6G
Formatting 'xp.img', fmt=raw, size=6291456 kB

en donde 6G es el porte del disco. Esto asigna 6 GB a la imagen xp.img. Windows XP requiere como mínimo 3.5 GB. Modifica el valor del porte del disco a gusto.

Instalar Windows XP

Inserta el CD de instalación de Windows XP. Corre qemu arrancando del CDROM (en /dev/cdrom) y montando el disco creado en el paso anterior,

# qemu -boot d -cdrom /dev/cdrom -hda /var/lib/qemu/xp.img

Instala Windows XP en forma normal (toma 30-60 minutos). El ratón se despega de la ventana de QEMU oprimiendo <ctrl>-<alt>.

Instalar Service Pack 2

Este paso es necesario solo si la versión de Windows XP no incluye SP2.

Descarga el Service Pack 2 de Windows. Luego convierte el ejecutable de Windows en una imagen,

# mkisofs -o sp2.iso WindowsXP-KB835935-SP2-ENU.exe

Una vez instalado el sistema arranca Windows XP en "safe mode",

# qemu -boot c -hda /var/lib/qemu/xp.img

Mata la ventana de QEMU mientras el sistema está arrancando. Corre otra vez la emulación, pero montando la imagen con el SP2,

# qemu -boot c -hda /var/lib/qemu/xp.img -cdrom sp2.iso

Escoge del menú arrancar en "safe mode". Ingresa a la cuenta de administrador e instala SP2 corriendo el ejecutable montado en el CDROM.

Usar Windows XP como usuario normal

Para usar Windows XP como usuario normal es necesario dar permisos correspondientes para modificar /var/lib/qemu/xp.img. Existen varias formas. Una es simplemente dar permisos generales,

# chmod 666 /var/lib/qemu/xp.img

Todo usuario normal del sistema podrá modificar el disco.

Otra es crear un grupo de sistema especial,

# addgroup --system qemu

luego modificar el grupo del directorio a qemu,

# chgrp -R qemu /var/lib/qemu

y modificar los permisos,

# chmod -R g+rw /var/lib/qemu

Agrega al grupo qemu a los usuarios con permisos para modificar el disco virtual de Windows XP,

# addgroup usuario qemu

Ahora usuario tendrá permisos de escritura sobre el disco, pero no los otros usuarios del sistema.

Módulo de aceleración

Este módulo sirve para acelerar QEMU solo cuando un PC es emulado sobre un PC. Instala el paquete module-assistant,

# apt-get install module-assistant

Corre,

# module-assistant auto-install kqemu

Esto descarga la fuente, compila el módulo, crea un paquete Debian y lo instala en el núcleo.

Inserta el módulo en el núcleo,

# modprobe kqemu

Edita /etc/modules y agrega kqemu a la lista de módulos que se cargan al arranque.

Correr Windows XP sobre QEMU

El comando,

$ qemu -boot c -hda /var/lib/qemu/xp.img -m 256 -localtime -std-vga -soundhw es1370 -kernel-kqemu

corre el emulador, arrancando Windows XP con la imagen del disco virtual. "-m" especifica la cantidad de RAM virtual en MB, "-localtime" coloca el reloj a la hora local, "-std-vga" emula una tarjeta de vídeo con extensiones VESA, "-soundhw es1370" emula una tarjeta de sonido ENSONIQ AudioPCI ES1370 y "-kernel-kqemu" habilita el módulo de aceleración del núcleo (si ha sido instalado). Usar sonido en QEMU puede bloquear el sonido en Debian.

Primer orden de cosas: Ajusta la resolución de la pantalla de Windows XP. Oprime <ctrl>-<alt>-<f> para entrar y salir del modo de pantalla completa.

Si deseas acceder el CDROM agrega el instructivo "-cdrom /dev/cdrom" a la línea de comando. Esto bloquea el acceso a /dev/cdrom en Debian, así que úsalo en forma optativa solo cuando realmente necesites acceder el CDROM.

El dispositivo de red virtual de QEMU es /dev/net/tun.

Acceder a los archivos de Debian

Instala el paquete samba. El grupo de trabajo (WORKGROUP) debe ser el mismo en SAMBA y Windows XP.

Edita /etc/samba/smb.conf. Define la variable interfaces, por ejemplo,

tal que solo localhost participe del LAN de Windows (mayor seguridad). Descomenta,

también para mayor seguridad.

En [homes] modifica writable para poder grabar sobre $HOME,

y read only a no,

Modifica la máscara de permisos a,

Reinicia el daemon de SAMBA con,

# /etc/init.d/samba restart

Crea la clave SAMBA del usuario,

# smbpasswd -a usuario

En Windows XP edita C:\WINDOWS\SYSTEM32\DRIVERS\ETC\LMHOSTS y agrega,

10.0.2.2 smbserver

en donde smbserver es el nombre del servidor SAMBA. Si el archivo LMHOSTS no existe y lo creas con notepad, recuerda que este le agrega la extensión .txt, pero LMHOSTS no debe llevar extensión. La extensión la puedes remover con move en una ventana en DOS.

Reinicia Windows XP. Monta \\smbserver\usuario en "Map Network Drive". Da la clave SAMBA del usuario. El $HOME completo del usuario queda montado en Z:\.

En Debian crea el directorio $HOME/My\ Documents. En Windows XP marca Start luego con el botón de la derecha del ratón marca las propiedades de "My Documents". Marca [Move...]. Busca el disco montado Z:\ en "My Computer". Dentro de Z:\ marca el directorio "My Documents", tal que "Target: Z:\MyDocuments". Así puedes acceder a "My Documents" en forma transparente entre Debian y Windows XP.

Compartir impresoras

Edita /etc/samba/smb.conf. Descomenta,

En la sección [printers] agrega,

Crea el directorio /var/spool/samba, si no existe, con permisos sticky,

# mkdir -p -m 1777 /var/spool/samba

Si el directorio existe,

# chmod 1777 /var/spool/samba

En Windows XP, define las impresoras por red como \\smbserver\impresora en donde smbserver es el nombre del servidor SAMBA e impresora es el nombre de la impresora CUPS. Reinicia Windows XP.

Algo muy util de usar es la impresora PDF de CUPS, que en forma transparente imprime a un archivo PDF directamente al escritorio de Debian. Ve http://man-es.debianchile.org/cups.html. Monta esta impresora virtual en Windows XP como si fuese una impresora de red.

GUI para QEMU

Existen dos front-ends para QEMU; qemu-launcher y qemulator que generan una línea de comando para el emulador.

QemuWindowsXP (última edición 2009-09-14 03:56:59 efectuada por RicardoYanez)