Même si on est réfractaire, et c'est de bon droit, aux logiciels propriétaires, on peut aussi être obligé par exemple pour des raisons professionnelles, de les utiliser. Cet article a pour but de vous expliquer comment au moyen d'outils puissant mais libres*, installer et utiliser une machine virtuelle et MS Windows 2000 sur votre Pingouin à transistors.
Pour tout ça vous aurez besoin d'un ordinateur sous GNU/Linux avec au moins 512Mo de
RAM, de 4Go d'espace disque et d'un(e) CD/licence Windows (vous pouvez installer un autre O.S. que win2k comme un BSD, une autre distribution Linux, Mac OSX).
*Le QEMU Accelerator n'est pas libre, voir la licence sur le site de QEMU.
1.Téléchargement
Vous trouverez
QEMU sur
le site de Fabrice Bellard, la version actuelle est la 0.8.0
Vous avez la possibilité d'utiliser
le module noyau kqemu qui vous permettra de grandement accélérer le fonctionnement de votre machine virtuelle. Attention lisez bien la licence d'utilisation, en effet à la différence de
QEMU, le
QEMU Accelerator n'est pas sous
GNU GPL.
2.Installation
Décompressez les sources de
QEMU :
Shell :
# tar xvzf qemu-0.8.0.tar.gz
--- Si vous utilisez QEMU Accelerator ---
Copiez l'archive kqemu-0.7.2.tar.gz dans le dossier qemu-0.8.0 créé.
Placez vous dans ce dossier:
Shell :
# cd qemu-0.8.0
Décompressez l'archive kqemu-0.7.2.tar.gz :
Shell :
# tar xvzf kqemu-0.7.2.tar.gz
-----------------------------------------
2.1.Compilation
lancez le script de configuration. L'installation par défaut se fait dans /usr/local, utilisez le paramètre --prefix pour changer de dossier. Vous pouvez préciser le compilateur que vous voulez utiliser (
QEMU a des problêmes avec
GCC 4.x) avec le paramètre --CC. De même vous pouvez activer le support d'Alsa pour avoir du son :
Shell :
# ./configure --prefix=/usr --cc=/usr/bin/gcc-3.3.6 --enable-alsa
Si tout se passe bien vous devriez obtenir quelquechose comme ça :
Install prefix /usr
BIOS directory /usr/share/qemu
binary directory /usr/bin
Manual directory /usr/share/man
ELF interp prefix /usr/gnemul/qemu-%M
Source path /home/bosselut/tmp/qemu-0.8.0
C compiler /usr/bin/gcc-3.3.6
Host C compiler gcc
make make
host CPU i386
host big endian no
target list i386-user arm-user armeb-user sparc-user ppc-user mips-user mipsel-user i386-softmmu ppc-softmmu sparc-softmmu x86_64-softmmu mips-softmmu arm-softmmu
gprof enabled no
static build no
SDL support yes
SDL static link yes
mingw32 support no
Adlib support no
CoreAudio support no
ALSA support yes
DSound support no
FMOD support no
kqemu support yes
--- Si vous utilisez QEMU Accelerator ---
KQEMU Linux module configuration:
kernel sources /lib/modules/2.6.12-14mdk/build
kbuild type 2.6
-----------------------------------------
Lancez la compilation :
Shell :
# make
Et pour finir, en tant que ROOT, installez
QEMU :
Shell :
# su
Password:
# make install
Si vous n'utilisez pas QEMU Accelerator vous pouvez passer directement à la configuration du réseau.
2.2.Module noyau QEMU Accelerator
Afin que le module noyau soit chargé automatiquement au démarrage de votre ordinateur, ajoutez cette ligne au fichier /etc/modprobe.conf :
alias char-major-250 kqemu
Cela créera un périphérique /dev/kqemu. Vous pouvez en définir les permission, si vous utilisez UDEV, en ajoutant la ligne suivante au fichier /etc/udev/permissions.d/50-udev.permissions :
kqemu:root:root:0666
2.3.Réseau
Pour vous connecter et transférer des donner entre votre machine virtuelle et votre ordinateur, vous allez créer une connexion réseau par l'intermédiaire d'un périphérique tap. Pour ce faire, vous devez charger le module tun, ajoutez donc tun sur une nouvelle ligne du fichier /etc/modprobe.preload :
Shell :
# echo tun >> /etc/modprobe.preload
Au lancement de
QEMU, celui-ci exécutera le script /etc/qemu-ifup avec en paramètre le nom du périphérique créé. Nous allons donc mettre dans ce fichier de quoi affecter une adresse
IP à notre périphérique et mettre en place des règles pour le pare-feu :
Code :
#!/bin/sh
kdesu "/sbin/ifconfig $1 192.168.3.1 && iptables -t nat -I POSTROUTING -j MASQUERADE -s 192.168.3.2 && iptables -I FORWARD -s 192.168.3.2 -j ACCEPT && iptables -I FORWARD -d 192.168.3.2 -j ACCEPT"
L'utilisation de kdesu nous permettra de lancer notre système en cliquant sur une icône (pas besoin d'utiliser un terminal).
Pour simplifier les choses, nous allons attribuer des
IP fixes de classe C au deux machines, par exemple 192.168.3.1 au périphérique tap de votre ordinateur et 192.168.3.2 à la carte réseau de votre machine virtuelle que nous configurerons une fois Windows installé.
3.Installation de MS Windows 2k
3.1.Création d'une image disque
Nous allons utiliser l'outil qemu-img pour créer notre disque C: sur lequel on installera Windows. 4Go suffisent et cela permet de faire facilement une sauvegarde sur
DVD. Vous pouvez mettre cette image dans /usr/local/qemu par exemple :
Shell :
# cd /usr/local
# mkdir qemu
# cd qemu
# qemu-img create win2k.raw 4G
# ls -lh
-rw-r--r-- 1 bosselut bosselut 4,0G jan 20 18:44 win2k.raw
3.2.Installer win2k
3.2.1.Lancer l'installation
Pour cela il vous suffit d'avoir votre
CD d'installation dans votre lecteur (ex: /dev/cdrom) :
Shell :
# qemu -m 256 -localtime -soundhw es1370 -usb -net nic -net tap -boot d -hda /usr/local/qemu/win2k.raw -cdrom /dev/cdrom
L'option -m alloue 256Mo de RAM à la machine virtuelle.
-localtime règle l'horloge sur celle de votre machine.
-soundhw défini la carte son à utiliser (tapez qemu -soundhw list pour obtenir la liste des cartes son de votre ordinateur).
-usb active le support de l'usb.
-net nic -net tap lancent le réseau.
-boot d spécifie un démarrage sur le disque D: (votre lecteur CD).
-hda /usr/local/qemu/win2k.raw l'image du disque C:.
-cdrom /dev/cdrom votre lecteur CD
3.2.2.Formater la partition
Votre disque C: n'étant pas formaté, l'installateur de Windows vous propose de le faire. Vous pouvez utiliser le système de fichier de votre choix sachant que tous vos transferts de données passerons par le réseau.
Dans le cas de Windows 2000 ou Xp,
NTFS est un bon choix.
3.2.3.Le reste vous devez déjà connaître
Le processus d'installation est identique à une installation sur une machine classique donc répondez aux questions, fournissez votre clé d'activation, cliquez sur redémarrer quand Windows vous le demande, etc...
Petit truc, quand vous cliquez sur la fenêtre votre pointeur de souris est attaché à la fenêtre. Appuyez sur CTRL+ALT pour le détacher.
4.Script de lancement
Pour simplifier le lancement de votre machine virtuelle, voici un petit script à mettre dans votre PATH. Libre à vous de le modifier pour l'adapter à vos besoins. Attention, si vous répondez oui à l'utilisation du lecteur
CD vous devez avoir un cdrom dans celui-ci sinon qemu ne se lancera pas.
/usr/bin/win2k :
Code :
#!/bin/sh
export QEMU_AUDIO_DRV=alsa
m_cdrom=''
kdialog --yesno "Utiliser le lecteur CD ?" && m_cdrom="-cdrom /dev/cdrom"
qemu -m 256 -localtime -soundhw es1370 -usb -net nic -net tap -boot c -hda /usr/local/qemu/win2k.raw $m_cdrom
Conclusion
Voila votre machine virtuelle est fonctionnelle, maintenant vous pouvez tester vos développements sur d'autres plateformes, faire de l'ingénierie inversée pour étudier le fonctionnement de pilotes de périphériques ou de logiciels réseau ou tout simplement jouer au flipper de l'espace ;)