logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Ceci est une ancienne révision du document !


Qemu

  • Objet : Qemu
  • Niveau requis :
  • Commentaires : logiciel libre de machine virtuelle
  • Suivi :
  • Commentaires sur le forum : C'est ici1)

Résumé

Ce logiciel permet de créer une machine virtuelle avec un large choix d'architecture (i.e. de type d'ordinateurs) sur sa propre machine, permettant par exemple d’installer une Debian pour tester la future version, ou d’installer un android version arm64, ou tester un autre système d'exploitation comme

  • une autre distribution Linux,
  • un os à base de noyau BSD,
  • un système propriétaire,
  • etc.

Installation

Classiquement, on commence par mettre à jour la liste des paquets :

apt-get update

puis on installe qemu :

apt-get install qemu-system qemu-utils qemu-system-gui

Configuration

Les configurations de machines virtuelles peuvent vite devenir très complexes. En effet, si l'on veut préciser les paramètres de chaque périphériques virtuel associé, on n'en fini pas. C'est pourquoi à moins de savoir exactement ce que l'on veut, on n'utilise en général pas directement qemu, mais on l'utilise en passant par une outil plus haut niveau tel libvirt et son gestionnaire de machines virtuelles virt-manager.

De quoi a-t-on besoin pour faire une VM ?

Un microprocesseur

En fait, on parle plus généralement d'architecture.

  • Si l'on est sur un ordinateur fixe, il y a de grandes chances pour que l'architecture soit x86_64, c'est ce que debian appelle amd64 et correspond aux processeurs 64bits communs.
  • Si l'on est sur un ordinosaure fixe, alors il est possible que l'architecture soit x86, c'est ce que debian appelle 'i386 et correspond aux processeurs 32bits du début du siècle. * Si l'on est sur un smartphone, alors on est très probablement sur une architecture arm64. Là, la question que l'on doit se poser est: « Quelle est l'architecture de la machine que je veux simuler ? » Donc si l'on veut installer un Android, c'est probablement arm64, mais si l'on veut installer une debian sid pour tester, il y a des chances que ça reste x86_64. Pour lister les commandes qemu associées à chaque architecture, lancer la commande: <code user>ls /usr/bin/qemu-system-*</code> On indique ensuite le nombre de cœurs que l'on souhaite dédier à la machine via l'option -smp Exemple: <code user>qemu-system-x86_64 -smp 2</code> ==== Un disque de stockage ==== C'est a priori là où sera installé le bootloader et système d'exploitation que l'on veut lancer. Ça peut être un lecteur CD, une clef USB, mais ça peut aussi être une image disque le représentant. <note warning> Attention, utiliser une partition comme image disque est possible mais vous ne pourrez pas monter la partition en tant que système de fichier sur l'hôte car elle ne contiendra pas un système de fichier mais un disque entier. </note> Souvent, on crée des images disques avec qemu-img. Il permet en particulier de manipuler les images au format .qcow2 ou de convertir des images faites pour d'autres logiciels de VM. Il est important de choisir un support de stockage dont la taille et la vitesse correspondent à ce que l'on veut faire. On n'utilisera pas une clef USB pour installer une VM destinée aux jeux vidéo. On utilise -hda, -hdb, etc. pour indiquer les supports de stockages de type disque dur, et -cdrom pour indiquer des media en lecture seule tels les cdroms. Exemple: <code user>qemu-system-x86_64 -hda /srv/VM/archlinux/hdd.qcow2 -cdrom /home/captnfab/Téléchargements/archlinux.iso</code> ==== Mémoire vive ==== On veut souvent spécifier la taille de la RAM disponible, cela se fait en utilisant l'option -m et en précisant l'unité (M pour des Mio, G pour des Gio'). Exemple: <code user>qemu-system-x86_64 -hda /srv/VM/archlinux/hdd.qcow2 -cdrom /home/captnfab/Téléchargements/archlinux.iso -m 2G</code> ==== Les périphériques USB ==== Pour rajouter un contrôleur USB virtuel, on rajoute l'option -usb, ensuite on peut rajouter * des ports USB via un paramètre du type -usbdevice host:bus.addr * ou des périphériques USB via un paramètre du type -usbdevice host:vendor_id:product_id pour un périphérique. Exemple : Si la commande ''lsusb'' retourne la ligne suivante : <file config retour de la commande>Bus 007 Device 003: ID 0b97:7772 Blahhhhhhhhhh</file> Si je veux monter le port USB sur lequel est branché mon périphérique Blahhhhhhhhhh, qui restera connecté même si je change le périphérique branché dessus: <code user>qemu-system-x86_64 -hda /srv/VM/archlinux/hdd.qcow2 -cdrom /home/captnfab/Téléchargements/archlinux.iso -m 2G -usb -usbdevice “host:007.003”</code> Si je veux monter Blahhhhhhhhhh où qu'il soit branché: <code user>qemu-system-x86_64 -hda /srv/VM/archlinux/hdd.qcow2 -cdrom /home/captnfab/Téléchargements/archlinux.iso -m 2G -usb -usbdevice “host:0b97:7772”</code> ==== Les autres périphériques ==== Une carte son, une carte graphique, des périphériques USB, le nombre de cœurs du microprocesseur, la carte réseau… Il serait trop long de tout détailler ici, et ce n'est pas l'objet. Chaque cas d'utilisation est unique et nécessite ses propres options. Pour en savoir plus, consulter le manuel: <code user>man qemu-system</code> ==== Enregistrement des options ==== Il est fastidieux de se souvenir des options à chaque lancement, on peut donc écrire un fichier contenant la commande complète, exemple: <code user> touch “launch_vm.sh” </code> On édite le fichier de sorte à ce qu'il ressemble à ça : <file fichier launch_vm.sh> #!/bin/sh qemu-system-x86_64 -hda /srv/VM/archlinux/hdd.qcow2 -m 2G -usb -usbdevice “host:0b97:7772” “$@” </file> On le rend exécutable : <code root> chmod a+x “launch_vm.sh” </code> ==== Lancement de la machine la première fois ==== On veut booter sur le CDRom d'installation, donc <code root> ./launch_vm.sh -cdrom /home/captnfab/Téléchargements/archlinux.iso -boot d </code> ==== Lancement de la machine les autres fois ==== <code root> ./launch_vm.sh </code> ===== Aller plus loin : faire des tests sans pourrir sa config ===== Si on utilise sa vm pour tester des logiciels non stables, on n'a certainement pas envie de foutre en l'air, détruire, perdre sa jolie installation vierge toute belle toute neuve sur sa machine virtuelle. Faire une copie de sauvegarde de l'image prendrait beaucoup de place. Heureusement, il y a mieux ! Il y a la possibilité de créer une image disque basée sur une autre image disque en lecture seule avec qemu-img. Exemple: Une image disque hdd.qcow2 contient un système fragile que l'on a peur de casser. On va renommer ce disque en hdd-base.qcow2, le passer en lecture seule, puis créer une image hdd.qcow2 qui sera basée sur la première ne n'enregistrera que les modifications par rapport à celle-ci. <code user> mv hdd.qcow2 hdd-base.qcow2 chmod a-w hdd-base.qcow2 qemu-img create -b hdd-base.qcow2 -f qcow2 hdd.qcow2 </code> Et voilà, maintenant, launch_vm.sh utilisera hdd.qcow2 sans modifier hdd-base.qcow2 ===== Quelques raccourcis indispensables ===== ^ RACCOURCIS CLAVIER ^ ACTION ^ | Ctrl+Alt+F | passe en plein-écran | | Ctrl+Alt+1 | affichage graphique de l'invité | | Ctrl+Alt+2 | passage au moniteur Qemu; attention, dans ces deux options, le 1 et le 2 sont à taper sur les chiffres hauts du clavier, pas sur le pavé numérique | | Ctrl+Alt | pour arrêter le contrôle de la souris dans l'invité, alors que pour l'activer, on avait cliqué dans la fenêtre de Qemu | voir le très bon tuto sur lea-linux là : http://lea-linux.org/documentations/index.php/Software-soft_emul-qemu ===== Références ===== - man qemu'' (anglais)
1)
N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
doc/systeme/vm/qemu.1691963800.txt.gz · Dernière modification: 13/08/2023 23:56 par captnfab

Pied de page des forums

Propulsé par FluxBB