Utilisation de « the Qemu emulator »

amj

Qemu est un émulateur de matériel capable de simuler une architecture x86, et partiellement les architectures PPC, ARM et SPARC. Qemu émule tout, y compris le microprocesseur, c'est pourquoi il est souvent plus lent que le système hôte. Cependant, la virtualisation vous permet de rentabiliser le temps processeur libre en multipliant les OS. D'autre part, c'est une très bonne manière d'examiner une distribution sans devoir réinstaller, formater ou partitionner. Il existe néanmoins:

- une extension, nommée kqemu, qui vous permettra d'accélérer sensiblement les performances de cet émulateur grâce à des techniques plus avancées indépendamment de votre processeur.

- le projet kvm, basé sur Qemu, qui permet de tirer parti d'un jeu d'instruction de certains processeurs, offrant des performances redoutables lors de l'émulation d'un processeur identique à la plateforme hôte.

Dans le même genre, il existe les produits de virtualisation de VMWare (VMWare Player et VMWare Workstation) ou VirtualBox. Ce dernier étant le plus simple et le plus rapide (il utilise d'ailleurs du code de Qemu, mais possède une interface qui le rend plus simple à manipuler).

N'hésitez pas à commenter cet article ! Commentez

- Titre : Utilisation de « the Qemu emulator »

- Auteur : amj

- Parution : 20 août 2013

- Mise à jour : 20 novembre 2013

- Licence : Le contenu de cet article est rédigé par amj et est mis à disposition selon les termes de la Licence Creative Commons Attribution - Partage dans les Mêmes Conditions 3.0 non transposé. Les logos Developpez.com, en-tête, pied de page, css, et look & feel de l'article sont Copyright ® 2013 Developpez.com.

Sommaire

- I. Installation de Qemu

- II. Essai d'un Live CD

- II-A. Préparation à l'installation d'Ubuntu

- III. Installation d'Ubuntu

- IV. Usage

- V. Configuration

- V-A. Accès au réseau

- V-B. Partage SAMBA

- V-C. Périphérique USB

- V-D. L'ACPI ralentit énormément la machine virtuelle

- V-E. Son

- V-F. Allocation de mémoire vive

- V-G. La console de Qemu

- V-G-1. Changer de CD pendant l'exécution

- V-H. Installer une interface graphique : qemu-launcher

- VI. Liens supplémentaires

- VII. Remerciements Developpez

I - Installation de Qemu

Installez le paquet qemu-kvm.

Sous Ubuntu 12.04 la commande « qemu » ne fonctionne pas. Il faut utiliser « qemu-system-i386 » ou « qemu-system-x86_64 » ou créer le lien comme ci-dessous.

Pour obtenir une compatibilité avec des scripts ou des commandes déjà existantes, il est nécessaire de recréer la commande « qemu » en fonction de votre architecture avec :

sudo ln -s /usr/bin/qemu-system-i386 /usr/bin/qemu

ou

sudo ln -s /usr/bin/qemu-system-x86_64 /usr/bin/qemu

II - Essai d'un Live CD

Téléchargez donc une image ISO d'un Live CD. (DSL par exemple qui est très compacte, moins de 50 Mo, ou bien sûr Ubuntu pour faire des tests avec quelques minutes d'attente pour le démarrage dans la machine virtuelle !)

Puis sans graver de CD, démarrez l'ISO avec la commande suivante (à adapter) :

qemu-system-i386 -cdrom /répertoire_de_l'iso/imageiso.iso -m 1024

Allez dans la fenêtre de l'émulateur Qemu en cliquant dessus.

Pour quitter la console virtuelle : Ctrl + alt

Pour le mode plein écran (plus rapide) de Qemu : Ctrl + alt + f

Simple et efficace (même sans l'optimisation de kqemu). Il est possible de tester toutes sortes de distributions GNU/Linux et même d'avoir une machine virtuelle de Windows XP.

II-A - Préparation à l'installation d'Ubuntu

- Téléchargez l'image ISO d'Ubuntu. Notez qu'il ne vous sera pas nécessaire de graver cette image.

- Pour obtenir la gestion de réseau pour votre système émulé, vous devez le déclarer. Le linux-test-xxx… sur le site de qemu, est un script à mettre parmi vos scripts réseaux. C'est une méthode simplifiée pour l'entrée dans un terminal de la commande ci-dessous :

sudo /sbin/ifconfig eth0 172.20.0.1

- Nous avons besoin également d'un disque virtuel pour notre système. Créez un disque simplement en créant un dossier de la taille souhaitée, avec la commande ci-dessous :

dd of=ubuntuimage bs=1024 seek=10485760 count=0

ou avec qemu-img :

qemu-img create -f raw ubuntuimage 10G

Cette commande créera un fichier de 10 Go qui deviendra un disque virtuel. Cette taille est exagérée si vous voulez juste essayer la distribution, une installation basique utilise environ de 1,5 Go d'espace disque, et comptez 3 à 4 Go pour le reste des fichiers.

Il est également possible d'utiliser le format qcow afin d'économiser l'espace disque consommé par le disque virtuel :

qemu-img create -f qcow2 ubuntuimage 10G

III - Installation d'Ubuntu

Lancez la commande suivante :

qemu -hda ubuntuimage -cdrom ubuntu-i386.iso -m 1024 -boot d

Cette commande définit le disque dur virtuel comme l'image ubuntuimage (créée précédemment), le CD avec l'image ISO de notre CD téléchargé ubuntu-i386.iso (à adapter en fonction de l'image téléchargée), indique comme taille de mémoire RAM 1024 et enfin définit l'option de démarrage sur le lecteur d, qui est ici le lecteur de CD virtuel.

Note : Allouer une taille mémoire trop faible, comme trop grande, aura pour conséquence l'instabilité de votre système ainsi que la lenteur de l'émulation. C'est pourquoi une grosse quantité de mémoire sur le système hôte est préférable

L'installation d'Ubuntu devrait démarrer. L'installation devrait se dérouler normalement excepté au redémarrage où il faudra retirer l'ISO :

Sortez de l'émulateur en entrant quit dans the emulator console (pour accéder à la console, appuyer sur Ctrl+Alt+2), et exécutez la commande:

qemu -hda ubuntuimage -m 1024

Notez que nous avons enlevé le CD au démarrage, ainsi l'émulateur démarrera sur le disque virtuel.

IV - Usage

Tout d'abord, faire tourner un OS sur un émulateur matériel n'est pas le rêve, simplement lent. Ne comptez pas faire des exploits, seulement avoir un système pour des essais.

Mais même sur un système réduit au niveau matériel, il est assez rapide pour examiner la distribution, peut-être installer quelques paquets, voir comment elle va dans l'ensemble.

C'est également un bon outil pour la gestion de système paranoïaque. Qemu peut avoir une image inaltérable de disque avec un dossier séparé de secours, au cas où vous voulez tester l'installation de paquets intrusifs (ou examiner vos propres paquets pour s'assurer qu'ils ne cassent pas le système) sans toucher réellement votre vrai système.

Si votre système virtuel est cassé, récupérer le fichier de secours permet de redémarrer comme si rien n'était arrivé.

V - Configuration

V-A - Accès au réseau

Pour avoir accès au réseau depuis sa machine virtuelle, il faut configurer Qemu pour qu'il intègre une carte réseau dans la machine virtuelle.

Pour avoir une carte réseau avec un chipset relativement connu, ajoutez les paramètres suivants à la commande qemu :

-net user -net nic,model=ne2k_pci

V-B - Partage SAMBA

Prérequis :

- Avoir configuré samba correctement.

- Connaitre le chemin du partage et le couple utilisateur/mot de passe du partage.

Vérifiez que vous pouvez accéder à votre partage directement sous Ubuntu (adresse smb://127.0.0.1 sous Nautilus).

Lancez qemu avec le paramètre -smb chemin/du/partage sur la ligne de commande.

Ensuite, utilisez l'adresse \\10.0.2.4 sous Windows pour accéder au même partage. Vous pouvez aussi monter le partage pour y accéder comme un disque.

V-C - Périphérique USB

Si vous n'avez pas le fichier /dev/bus/usb/devices (bug 156085), utilisez la commande suivante :

sudo mount -t usbfs none /dev/bus/usb

Ensuite, utilisez la commande suivante, pour que qemu puisse prendre le contrôle des périphériques usb :

sudo chown $USER -R /dev/bus/usb

Pour les versions antérieures à 10.10 le répertoire /dev/bus/usb doit être remplacé par /proc/bus/usb.

Lancez qemu en rajoutant sur la ligne de commande -usb et -usbdevice host:<vid>:<pid> où vous obtiendrez <vid>:<pid> à partir de la commande $ lsusb.

V-D - L'ACPI ralentit énormément la machine virtuelle

Il faut indiquer à qemu de ne pas utiliser l'ACPI : voir ici.

-no-acpi

V-E - Son

En général, le son ne marche pas avec les options par défaut. Pour activer le son il faut rajouter l'option

-soundhw all

à la ligne de commande.

V-F - Allocation de mémoire vive

Qemu n'alloue par défaut que peu de mémoire (128 Mo). Rajoutez l'option suivante pour allouer 1Go :

-m 1024

N'allouez pas plus de la moitié de la mémoire de votre système.

V-G - La console de Qemu

Il est possible d'employer de nombreuses commandes via la console de Qemu accessible via le raccourci clavier Ctrl + alt +2 . (Pour retourner dans la machine virtuelle, le raccourci est Ctrl + alt + 1)

V-G-1 - Changer de CD pendant l'exécution

Exécutez la commande suivante dans la console Qemu afin de connaitre les périphériques:

(qemu) info block

Voici le résultat lorsqu'un CD est déjà monté :

ide1-cd0: removable=1 locked=0 tray-open=0 io-status=ok file=cd1.iso ro=1 drv=raw encrypted=0
floppy0: removable=1 locked=0 tray-open=0 [not inserted]
sd0: removable=1 locked=0 tray-open=0 [not inserted]

Éjectez le CD (dans certains cas, le nom ide1-cd0 est à remplacer par cdrom) :

(qemu) eject ide1-cd0
(qemu) info block
ide1-cd0: removable=1 locked=0 tray-open=0 [not inserted]
floppy0: removable=1 locked=0 tray-open=0 [not inserted]
sd0: removable=1 locked=0 tray-open=0 [not inserted]

Montez le nouveau CD :

(qemu) change ide1-cd0 cd2.iso
(qemu) info block
ide1-cd0: removable=1 locked=0 tray-open=0 file=cd2.iso ro=1 drv=raw encrypted=0
floppy0: removable=1 locked=0 tray-open=0 [not inserted]
sd0: removable=1 locked=0 tray-open=0 [not inserted]

Cette procédure peut s'appliquer à d'autres périphériques.

V-H - Installer une interface graphique : qemu-launcher

Installez le paquet qemu-launcher

VI - Liens supplémentaires

- Site officiel de Qemu

VII - Remerciements Developpez

Nos remerciements à Djibril pour sa gabarisation.

N'hésitez pas à commenter cet article ! Commentez