Windows XP sobre QEMU

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 al archivo xp.img. Windows XP requiere como minimo 3.5 GB. Modifica el valor si es necesario.

Instalar Windows XP con SP2

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>.

Mientras tanto 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.

El dispositivo de red virtual de QEMU es tun. Instala el módulo con,

# modprobe tun

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

Usar Windows XP como usuario normal

Para usar Windows XP como usuario normal es necesario modificar los permisos de /dev/net/tun tal que el dispositivo tenga permisos de lectura y escritura generales,

# chmod 666 /dev/net/tun

Además es necesario dar permiso a usuarios para modificar /var/lib/qemu/xp.img. Existen varias formas. Una es simplemente dar permisos generales,

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

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 el usuario tendrá permisos de escritura sobre el disco.

Módulo de aceleración

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

# module-assistant prepare kqemu
# module-assistant auto-install kqemu

Esto compila el módulo 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).

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.

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

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". 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://ftp.cl.debian.org/man-es/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 (last edited 2008-06-07 02:13:01 by RicardoYanez)