QEMU 0.6.2 (bêta) sous Windows
Comme
l'indique le logo, QEMU est un émulateur de processeur (cpu). Il permet donc
d'émuler un pc (x86) ou mac (ppc) et ainsi d'installer le système d'exploitation
que l'on veut. Vous trouverez la liste des processeurs
émulés, et ceux sur lesquels fonctionne QEMU, sur le site de Fabrice Bellard
qui est le développeur principal de ce puissant logiciel libre.
La version présentée dans cet article est une version en développement (0.6.2)
en janvier 2005. La version stable étant la 0.6.1. Je n'ai pas constaté de bug
avec cette version bêta mais si c'était votre cas, essayez la version
stable.
Le projet FreeOSZoo propose les versions
Windows de QEMU. Les versions en développement sont créées presque tous les
jours. Celle que j'ai prise s'appelle
QemuInstall-20050119-ppcfix.exe.
Si vous prenez des versions plus récentes, vous rencontrerez peut être des
problèmes que je n'ai pas détecté... Si vous optez pour la version stable, allez
sur la page Download de
FreeOSZoo et téléchargez la version dans la colonne "Official build".
Pour l'installation, il suffit de lancer le .exe et de faire
Suivant tout le temps. La dernière étape vous propose de télécharger des images
iso sur FreeOSZoo : répondez Non et c'est terminé.
La théorie :
Avant de passer à l'utilisation, nous allons voir les principes de
fonctionnement.
Pour commencer il y a deux termes importants :
- hôte (host): le système sur lequel fonctionne votre ordinateur. Dans notre cas c'est Windows.
- invité (guest) : le système émulé par QEMU. Dans cette
documentation je prendrais l'exemple de Linux (Mandrakelinux) mais vous pouvez émuler d'autres
systèmes, par exemple : Windows, MacOS, Darwin, Freedos, BSD, ReactOS, ...
Comme QEMU émule un pc, il doit émuler les composants de celui-ci.
Malheureusement il n'émule pas le matériel qui est dans votre pc mais un
matériel bien spécifique. Ce qui fait que votre matériel dernier cri sera
remplacé par :
- Carte mère : munie d'un chipset Intel i440FX avec des ports PCI et
ISA (pas d'AGP). Deux contrôleurs IDE donc 4 périphériques peuvent être
émulés (hda, hdb, hdc et hdd) dont un qui est le lecteur de CDROM (hdc). Un
contrôleur disquette qui permet d'avoir 2 lecteurs (fda et fdb). Et pour
finir jusqu'à 4 ports série émulés.
- Carte vidéo : Cirrus CLGD 5446 PCI VGA. Elle supporte jusqu'à une
résolution de 1280x1024 en 16 millions de couleurs (24 bits). La norme VESA est
supportée qui permet d'aller jusqu'en 1024x768 en 65000 couleurs (16 bits).
- Souris et clavier PS/2
- Carte son : Soundblaster 16bit. Elle est désactivée par défaut car
elle pose des problèmes sous Windows.
- Carte réseau : NE2000 PCI. Elle permet de transférer des données du
système hôte vers le système émulé par le protocole TFTP. Vous pouvez
également configurer un serveur samba si le système émulé est Linux. Ainsi vos
postes Windows peuvent accéder au système émulé.
- RAM : par défaut QEMU utilise 128Mo de votre mémoire vive, mais
vous pouvez en mettre plus ou moins.
Les supports de stockage (disquette, cdrom, disque dur) sont émulés, c'est à
dire qu'ils correspondent à des fichiers (.iso généralement) présents sur votre
disque dur réel. La version Linux de QEMU permet également d'accéder aux
supports physique (disquette et cdrom) mais la version Windows (0.6.2 beta)
accepte uniquement le lecteur de disquette mais dans une future version, il
devrait accéder au lecteur cdrom.
Un émulateur est toujours plus lent que le système qu'il émule à moins
d'avoir un matériel très puissant comparé au système à émuler (Atari, Amstrad,
Playstation, ...). Dans mon cas, j'ai un Pentium III 700Mhz avec 256Mo de RAM.
Ce qui peut être correct pour émuler DOS ou Linux en mode console mais quand on
passe à KDE ou un autre système graphique (Gnome, Windows, ...) c'est en dessous
de la limite de l'utilisable. En arrondissant, QEMU divise la puissance de votre
ordinateur par 7, la RAM n'étant pas l'élément crucial du moment que vous pouvez
attribuer 128Mo pour QEMU. Donc je me retrouve avec un Pentium 100Mhz avec
128Mo, ce qui est trop peu pour MDK 10.1 avec KDE 3.2.
La pratique :
Après l'installation du logiciel, la seconde étape est de créer un disque dur
virtuel qui sera un fichier .img présent sur votre disque dur réel. Il faut
savoir qu'en fonction de votre système de fichier vous serez limité pour la taille
maximum. Si vous utilisez FAT32 vous ne pourrez pas faire d'image supérieure à
4Go, si vous utilisez NTFS il n'y a pas de limite (en théorie).
Avec QEMU
est fournit le programme QEMU Menu (raccourci dans le menu Démarrer > Qemu) permettant de créer cette image de façon simple. Avec la version 0.6.1 ce menu est différent
et ne permet pas faire d'image supérieure à 2Go. Pour ne pas faire de jaloux,
nous allons faire tout en ligne de commande et ainsi pouvoir dépasser la limite
de 2Go. Le logiciel pour créer l'image s'appelle
qemu-img.exe. Il peut faire différents types d'image : raw, qcow, cow, vmdk et cloop. Le type raw crée un fichier sur votre disque de la
taille demandée mais ne peut pas dépasser les 2Go et la création
est "longue" vu la taille du fichier. Le format qcow ne fait que
réserver un espace sur le disque mais ne crée pas directement un fichier de
cette taille. C'est en fonction de l'utilisation que le fichier augmentera, donc
sa création est très rapide puisqu'il fait quelques Ko. Les formats cow et cloop
fonctionnent uniquement sous Linux, et le type vmdk permet d'être compatible
avec VMware mais ne fonctionne actuellement qu'en lecture seule.
Nous allons donc prendre le format qcow. Soit vous lancez le mode console pour
taper la commande, soit vous modifiez le fichier
qemu_hdd_virtuel.bat que j'ai
fait afin qu'il corresponde à votre configuration et la taille désirée puis vous
l'exécuter en double cliquant dessus. Si vous
prenez la première option, il faut vous placer dans le répertoire de Qemu et taper la commande
"qemu-img.exe create -f qcow d:\test.img 3G", où "d:\test.img"
indique le chemin et nom du disque virtuel et "3G" la taille en Go (M
pour donner la taille en Mo).
Une fois le fichier créé, nous pouvons passer à l'installation du système à
émuler. Les instructions qui suivent sont pour MDK 10.1 mais vous pouvez les
adapter. Il faut déjà avoir les images .iso des cd ou dvd de la distribution sur
votre disque dur. Si ce n'est pas le cas, soit vous les téléchargez soit vous
les créez à partir des cd/dvd originaux avec un logiciel de gravure. Dans mon
cas, j'ai les 3 cd dans le dossier D:\mandrake\. Avant de lancer Qemu, je vous
conseille de fermer le maximum de programmes (antivirus, ...) pour soulager
votre processeur, surtout s'il est aussi puissant que le mien.
Pour commencer, il faut indiquer à Qemu le disque dur virtuel à utiliser et le
cd sur lequel booter. Vous avez encore la possibilité de le faire en ligne de
commande ou modifier le fichier
qemu_bootcd.bat. La commande est "qemu.exe -L .\bios -m 128 -hda d:\test.img
-cdrom D:\mandrake\Mandrakelinux-10.1-Official-Download-CD1.i586.iso -boot d".
Nous allons la décortiquer pour mieux comprendre :
- -L .\bios : indique le répertoire où se trouver le bios à émuler.
- -m 128 : indique la RAM à réserver pour QEMU.
- -hda d:\test.img : indique l'emplacement du disque
virtuel. Ce sera le premier disque puisqu'il est nommé hda (comme sous Linux).
- -cdrom D:\mandrake\Mandrakelinux-10.1-Official-Download-CD1.i586.iso : indique
l'emplacement de l'image iso du premier cd MDK 10.1.
- -boot d : indique sur quel périphérique booter. Ici Qemu va démarrer sur le cdrom
(a = disquette et c = hda).

Le cd se lance et on voit l'écran de démarrage de l'installation. Il faut
cliquer dans la fenêtre de Qemu pour pouvoir faire Entrée ou F1. N'attendez
pas trop longtemps sinon vous aurez une erreur kernel. |

Le chargement se poursuit, plus ou moins vite en fonction de votre pc. |

On peut commencer l'installation. Pour sortir de la fenêtre Qemu, appuyez
sur les touches Ctrl+Alt. |
Quand il vous
sera demandé le cd2, faites Ctrl+Alt+2. Ce qui vous amènera dans la console de Qemu (monitor). Tapez la
commande "eject cdrom" pour simuler l'éjection du cd. Si vous avez un message "device
is locked", tapez "eject -f cdrom" pour forcer l'éjection. Ensuite tapez la
commande "change cdrom D:\mandrake\Mandrakelinux-10.1-Official-Download-CD2.i586.iso"
en indiquant le bon chemin vers le .iso. Le pavé numérique (0 à 9, /, . et Enter) ne
fonctionne pas dans ce mode. La dernière commande est un peu longue mais lorsque
l'on vous demandera le cd3, il suffira d'appuyer sur les flèches Haut et Bas
pour faire défiler l'historique des commandes entrées. Cela vous évitera de tout
taper, il faudra juste modifier un chiffre dans la commande. Pour revenir dans
le mode normal, faites Ctrl+Alt+1 et vous pourrez poursuivre l'installation.
Une fois l'installation terminée (environ 2h dans mon cas), le programme
d'installation vous demande de redémarrer. N'ayez pas peur, cela ne va pas
redémarrer votre système hôte (Windows) mais seulement le système invité (MDK).
Qemu n'est pas capable de simuler un Reset, donc quand vous voyez à l'écran un
message du type "Power down/off", faîtes Ctrl+Alt+2 (monitor) et tapez "q" puis
Entrée ce qui va fermer Qemu. Si vous arrêtez Qemu trop tôt, le système de
fichiers ne sera pas terminé correctement et lors de votre prochain démarrage
vous aurez une vérification du disque.
Notre système est maintenant installé, il ne reste plus qu'à le lancer. La
commande est proche de celle de l'installation, sauf qu'au lieu de booter sur le
cd, nous allons démarrer sur le disque principal (hda). Soit vous tapez la
commande, soit vous modifiez le fichier
qemu_boothda.bat. Vous verrez le
système se charger (image à gauche). Puis vous aurez votre bureau (image à
droite)
Il est possible de mettre Qemu en plein écran. Il faut appuyer sur les
touches Ctrl+Alt+f. Par contre ne modifier pas la résolution du système émulé
quand vous êtes en plein écran sinon votre pc va rebooter (j'en ai fait
l'expérience...). Et quand on attend 15min pour voir le bureau, on est vraiment
dégoûté de devoir tout recommencer. Pour accélérer le chargement, vous pouvez
désactiver des daemons inutiles (son, bluetooth par exemple) et mettre la carte
réseau (eth0) en statique ou désactivée. Vous gagnerez des minutes non
négligeables (dans mon cas).
Si vous avez des questions, il existe un forum dédié (en anglais).
Il existe également des programmes permettant de gérer la configuration et les systèmes émulés, de façon graphique.
Les plus connus sont qGui et
QEMU manager.
Sur le site FreeOSZoo vous pouvez télécharger des images disque déjà créées.
Cela vous évite de faire l'installation. Ils recherchent des personnes pour faire d'autres images.
Mise à jour : Avec la version 0.7, et peut
être antérieure, il est possible d'accéder aux lecteurs de CDROM depuis un
système hôte sous Windows
2000/XP. Pour cela, il faut utiliser l'argument "\\.\d:" ou "//./d:" (sans
espace ni guillemet) si votre lecteur est en D:. La ligne à taper pour démarrer
depuis le cd donnerait donc ceci :
qemu.exe -L .\bios -m 128 -hda d:\test.img -cdrom //./d: -boot d
Bien sûr il faut que ce soit un cdrom bootable tout comme c'était le cas pour
l'image iso. Depuis la version 0.7, Fabrice Bellard a développé un module
(kqemu) pour
accélérer QEMU qui permet de faire tourner le système invité seulement 2 fois
plus lentement contrairement au 5-10 fois sans cet accélérateur. Malheureusement
ce module n'existe que sous Linux pour l'instant... Vous trouverez d'autres trucs et astuces, notamment pour le réseau, sur le site de ce japonais parlant
l'anglais (heureusement pour nous).
Dernière modification de la page : 19/11/2005
|