Pour une raison ou pour une autre[1] vous pouvez avoir envie (?) ou besoin de faire tourner un Windows sous votre Linux. Heureusement, depuis peu Xen couplé à un processeur récent le permet.

Installation de Windows 2000 sur Xen (vue dans un bureau Gnome)

prérequis

  • un processeur HVM : vous pouvez vérifier ici si le vôtre l'est
  • un poste/serveur Linux Debian Etch minimum[2] avec Xen fonctionnel
  • un CDROM d'installation de Windows (je n'ai testé qu'avec Windows 2000 mais XP et 2003 Server semblent fonctionner également)
  • des petits doigts :) et ce billet

procédure
Pour utiliser les nouvelles fonctionnalités des processeurs virtualisants et donc pouvoir installer Windows[3] il vous faut installer un package spécial qui fournit les outils utilisateurs

# aptitude install xen-ioemu-3.0.3-1

On copie ensuite le cdrom sur le disque dur

# dd if=/dev/cdrom of=/tmp/win2000pro.iso

On crée un fichier image vide appelé à contenir le système invité (6Go ici)

# dd if=/dev/zero of=Win2k.img bs=1M count=6144

On crée le fichier de configuration Xen /etc/xen/win2000.cfg pour Windows. Voici le mien, adaptez-le à votre configuration

# more /etc/xen/win2k.cfg
kernel = "/usr/lib/xen-default/boot/hvmloader"
builder='hvm'
memory = '256'
name = 'Win2000'
disk = [ 'file:/mnt/media/data/xen/domains/win2k/win2k.img,ioemu:hda,w','file:/tmp/win2000pro.iso,ioemu:hdc:cdrom,r' ]
vif = [ 'type=ioemu, bridge=xenbr0' ]
device_model = '/usr/lib/xen-default/bin/qemu-dm'
memmap = '/usr/lib/xen/boot/mem-map.sxp'
boot='d'
sdl=1
vnc=0

Les directives spécifiques à un hôte HVM sont kernel, builder, device_model et memmap.
Dans la partie disk il vous faut spécifier l'image ISO pour l'installation, vous pouvez ensuite connecter votre lecteur de cd-rom en remplaçant la ligne par disk = 'file:/mnt/media/data/system/xen/do....
La directive boot indique 'd' pour booter sur le cd-rom et 'c' pour booter sur le disque dur virtuel.
sdl=1 permet, si vous êtes sous X, d'avoir une fenêtre qui s'ouvre automatiquement quand vous lancez la machine virtuelle ce qui est au moins nécessaire lors de l'installation. Vous pouvez ensuite utiliser le mode de prise à distance que vous préférez. (mise à jour : si vous voulez utilisez VNC, changez sdl=0 vnc=1 et connectez-vous avec vncviewer sur localhost:5900)

Et voilà, un petit

# xm create /etc/xen/win2000.cfg

et c'est parti !

divers
Pour pouvoir monter le fichier image Windows que vous avez un bête mount -o loop ne suffit pas, voici la commande qui va bien

# mount -o loop,offset=$((63*512)),rw /mnt/media/data/system/xen/domains/win2k/win2k.img temp/

J'ai vu également que Russell Coker a écrit un billet intitulé A support guide [for|to] Xen avec un résumé des principales commandes utiles pour Xen.

Au fait, je fais tourner un Windows 32 bits sur ma Debian en 64 bits.

copies d'écrans
Quelques screenshots pour le plaisir

Installation de Windows 2000 sur Xen

Installation de Windows 2000 sur Xen (premier login)

Installation de Windows 2000 sur Xen (le fameux "Démarrer avec Windows 2000")

PS : je suis depuis peu syndiqué sur le planète des utilisateurs francophones de Debian, planète libre et peut-être même planète APRIL alors :

PS2 : dès vendredi 1er octobre, une nouvelle taxe[4] "copie privée" arrive sur les disques durs externes et les clés USB, alors si vous aviez un achat en tête, précipitez-vous !

Notes

[1] la mienne, c'est d'espérer pouvoir enfin rejouer à SimCity 4 Rush Hour que malheureusement je n'arrive pas à faire tourner avec Wine

[2] à vrai dire n'importe quelle distribution est valable bien évidemment mais je me base sur celle-ci

[3] en fait n'importe quel OS non modifié comme par exemple OpenBSD ou NetBSD (cf)

[4] qui a dit encore une ? qu'il se dénonce !