Windows XP sobre QEMU
Contents
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,
interfaces = 127.0.0.0/8
tal que solo localhost participe del LAN de Windows (mayor seguridad). Descomenta,
security = user
también para mayor seguridad.
En [homes] modifica writable para poder grabar sobre $HOME,
writable = yes
y read only a no,
read only = no
Modifica la máscara de permisos a,
create mask = 0644
directory mask = 0755
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,
load printers = yes
printing = cups
printcap name = cups
En la sección [printers] agrega,
use client driver = yes
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.