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 →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:vm:qemu [02/09/2015 17:10] milou [Configuration] |
doc:systeme:vm:qemu [13/08/2023 22:48] captnfab [Résumé] |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
* Suivi : {{tag>à-tester}} | * Suivi : {{tag>à-tester}} | ||
* Création par [[user>captnfab]] le 17/08/2009 | * Création par [[user>captnfab]] le 17/08/2009 | ||
- | * Testé par .... le .... | + | * Testé par [[user>arpinux]] le 02/10/2021 |
* Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=2256 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=2256 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
===== Résumé ===== | ===== Résumé ===== | ||
- | Ce logiciel permet d’émuler un ou plusieurs ordinateurs sur votre propre machine, vous permettant par exemple d’installer une Debian pour tester la future version, ou d’installer un autre système d’exploitation : | + | Ce logiciel permet de créer une machine virtuelle avec un large choix d'architecture (i.e. de type d'ordinateurs) sur votre propre machine, vous 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 |
- | * distribution Linux, | + | * une autre distribution Linux, |
- | * os à base de noyau BSD, | + | * un os à base de noyau BSD, |
- | * système propriétaire. | + | * un système propriétaire, |
- | * ... | + | * etc. |
- | Il permet même d'émuler plusieurs architecture (arm, cris, i386, m68k, mips, mips64, ppc, ppc64, x86_64, et d'autres !) | + | |
- | + | ||
- | + | ||
- | ===== Prérequis ===== | + | |
- | + | ||
- | Avant d'installer qemu, assurez-vous d'avoir les paquets ci-dessous d'installé sur votre système. Pour cela, tapez la commande suivante | + | |
- | + | ||
- | <code root>apt-get install module-assistant</code> | + | |
- | <code root>module-assistant prepare</code> | + | |
- | + | ||
===== Installation ===== | ===== Installation ===== | ||
Ligne 32: | Ligne 21: | ||
<code root>apt-get update</code> | <code root>apt-get update</code> | ||
puis on installe qemu : | puis on installe qemu : | ||
- | <code root>apt-get install qemu</code> | + | <code root>apt-get install qemu qemu-system-x86 qemu-utils qemu-system-gui</code> |
- | on compile et installe les modules noyaux : | + | |
- | <code root>m-a a-i kqemu</code> | + | |
===== Configuration ===== | ===== Configuration ===== | ||
- | |||
- | ==== Chargement du module ==== | ||
- | |||
- | //Le module kqemu sert à accélérer la pseudo-virtualisation. Les instructions données par la machine simulée par qemu ne sont plus (en grande partie) simulées logiciellement mais directement interprétée par le micro-processeur.// | ||
- | |||
- | === Pour le charger une fois === | ||
- | <code root> | ||
- | modprobe kqemu | ||
- | </code> | ||
- | |||
- | === Pour le charger à chaque démarrage === | ||
- | |||
- | **Attention, il y a deux '>', accolés l'un à l'autre** | ||
- | |||
- | <code root> | ||
- | echo kqemu >> "/etc/modules" | ||
- | </code> | ||
==== Répertoire de travail ==== | ==== Répertoire de travail ==== | ||
Ligne 64: | Ligne 33: | ||
===== Création de machine virtuelle ===== | ===== Création de machine virtuelle ===== | ||
- | <code bash> | + | <code root> |
cd ~/vm | cd ~/vm | ||
</code> | </code> | ||
Pour faire plus propre, on va maintenant créer un dossier pour la machine en question. | Pour faire plus propre, on va maintenant créer un dossier pour la machine en question. | ||
- | <code bash> | + | <code root> |
- | mkdir fenetresXP | + | mkdir fenetresXP</code> |
- | cd fenetresXP | + | <code root>cd fenetresXP |
</code> | </code> | ||
Ligne 77: | Ligne 46: | ||
On crée une image disque((le format qcow2 nous permet de ne pas créer directement un fichier de 20 Gio mais de n'allouer l'espace que lorsqu'il est requis)) (de 20 Gio((Pour le reste du tuto, on considèrera que 1 Gio = 2<sup>10</sup> Mio = 2<sup>20</sup> kio = 2<sup>30</sup> o)) dans notre exemple) | On crée une image disque((le format qcow2 nous permet de ne pas créer directement un fichier de 20 Gio mais de n'allouer l'espace que lorsqu'il est requis)) (de 20 Gio((Pour le reste du tuto, on considèrera que 1 Gio = 2<sup>10</sup> Mio = 2<sup>20</sup> kio = 2<sup>30</sup> o)) dans notre exemple) | ||
- | <code bash> | + | <code root> |
qemu-img create -f qcow2 base.qcow2 20G | qemu-img create -f qcow2 base.qcow2 20G | ||
</code> | </code> | ||
Ligne 99: | Ligne 68: | ||
* Active le support de l'usb | * Active le support de l'usb | ||
- | -usb | + | <code root>-usb</code> |
* Et pour ajouter les périphériques USB : | * Et pour ajouter les périphériques USB : | ||
Ligne 112: | Ligne 81: | ||
Si la commande : | Si la commande : | ||
- | lsusb | + | <code user>lsusb</code> |
Me renvoie : | Me renvoie : | ||
- | Bus 007 Device 003: ID 0b97:7772 Blahhhhhhhhhh | + | <file config retour de la commande>Bus 007 Device 003: ID 0b97:7772 Blahhhhhhhhhh |
- | Bus 007 Device 002: ID 0b97:7761 Ploum ploum | + | Bus 007 Device 002: ID 0b97:7761 Ploum ploum</file> |
Si je veux monter le port USB sur lequel est branché mon périphérique Blahhhhhhhhhh | Si je veux monter le port USB sur lequel est branché mon périphérique Blahhhhhhhhhh | ||
- | -usbdevice "host:007.003" | + | <code root>-usbdevice "host:007.003"</code> |
Si je veux monter Blahhhhhhhhhh où qu'il soit branché | Si je veux monter Blahhhhhhhhhh où qu'il soit branché | ||
- | -usbdevice "host:0b97:7772" | + | <code root>-usbdevice "host:0b97:7772"</code> |
=== Nombre de microprocesseurs à allouer à la machine === | === Nombre de microprocesseurs à allouer à la machine === | ||
- | -cpu n | + | -smp n |
(où n représente ce nombre) | (où n représente ce nombre) | ||
Ligne 140: | Ligne 109: | ||
Il est fastidieux de se souvenir des options à chaque lancement, on va donc les enregistrer dans un fichier : | Il est fastidieux de se souvenir des options à chaque lancement, on va donc les enregistrer dans un fichier : | ||
- | <code bash> | + | <code root> |
touch "launch_vm.sh" | touch "launch_vm.sh" | ||
</code> | </code> | ||
On édite le fichier de sorte à ce qu'il ressemble à ça : | On édite le fichier de sorte à ce qu'il ressemble à ça : | ||
- | <code bash> | + | <file fichier launch_vm.sh> |
#!/bin/sh | #!/bin/sh | ||
- | qemu -m 256 -soundhw all -vga cirrus -hda ~/vm/fenetresXP/base.qcow2 $* | + | qemu-system-x86_64 -m 256 -soundhw all -vga cirrus -hda ~/vm/fenetresXP/base.qcow2 "$@" |
- | </code> | + | </file> |
On le rend exécutable : | On le rend exécutable : | ||
- | <code bash> | + | <code root> |
chmod a+x "launch_vm.sh" | chmod a+x "launch_vm.sh" | ||
</code> | </code> | ||
Ligne 159: | Ligne 128: | ||
On veut booter sur le CDRom d'installation, donc | On veut booter sur le CDRom d'installation, donc | ||
- | <code bash> | + | <code root> |
./launch_vm.sh -m 512 -cdrom ~/mes_isos/fenetresXP_SP3.iso -boot d | ./launch_vm.sh -m 512 -cdrom ~/mes_isos/fenetresXP_SP3.iso -boot d | ||
</code> | </code> | ||
Ligne 182: | Ligne 151: | ||
On s'assure d'être dans le dossier de la vm : | On s'assure d'être dans le dossier de la vm : | ||
- | <code bash> | + | <code root> |
cd ~/vm/fenetresXP | cd ~/vm/fenetresXP | ||
</code> | </code> | ||
On interdit les droits d'écriture sur l'image de départ | On interdit les droits d'écriture sur l'image de départ | ||
- | <code bash> | + | <code root> |
chmod 444 base.qcow2 | chmod 444 base.qcow2 | ||
</code> | </code> | ||
Et on crée une image test1.qcow2 qui ne contiendra que les modifications faîtes à base.qcow2 | Et on crée une image test1.qcow2 qui ne contiendra que les modifications faîtes à base.qcow2 | ||
- | <code bash> | + | <code root> |
qemu-img create -b base.qcow2 -f qcow2 test1.qcow2 | qemu-img create -b base.qcow2 -f qcow2 test1.qcow2 | ||
</code> | </code> | ||
Ligne 202: | Ligne 171: | ||
Avec le script suivant ''launch_vm2.sh'' : | Avec le script suivant ''launch_vm2.sh'' : | ||
- | <code bash> | + | <file config script launch_vm2.sh> |
#!/bin/bash | #!/bin/bash | ||
IMG=$1 | IMG=$1 | ||
shift; | shift; | ||
- | qemu -m 256 -soundhw all -vga cirrus -hda ~/vm/fenetresXP/$IMG.qcow2 $* | + | qemu-system-x86_64 -m 256 -soundhw all -vga cirrus -hda ~/vm/fenetresXP/$IMG.qcow2 $* |
- | </code> | + | </file> |
Vous lancez la machine de base (attention, en lecture seule) avec : | Vous lancez la machine de base (attention, en lecture seule) avec : | ||
- | ./launch_vm2.sh base | + | <code root>./launch_vm2.sh base</code> |
La machine de test 1 : | La machine de test 1 : | ||
- | ./launch_vm2.sh test1 | + | <code root>./launch_vm2.sh test1</code> |
Etc. Vous pouvez simultanément avoir 12((pour toute valeur de 12)) machines de test différentes basées sur la même image ''base.qcow2'', et ce, pour un coût en espace disque moindre ! | Etc. Vous pouvez simultanément avoir 12((pour toute valeur de 12)) machines de test différentes basées sur la même image ''base.qcow2'', et ce, pour un coût en espace disque moindre ! | ||
===== Quelques raccourcis indispensables ===== | ===== Quelques raccourcis indispensables ===== | ||
- | * ctrl-alt-f: passe en plein-écran. | + | |
- | * ctrl-alt-1: affichage graphique de l'invité. | + | ^ //RACCOURCIS CLAVIER// ^ //ACTION// ^ |
- | * 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. | + | | <key>C-A-f</key> | passe en plein-écran | |
- | * 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. | + | | <key>C-A-1</key> | affichage graphique de l'invité | |
+ | | <key>C-A-2</key> | 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 | | ||
+ | | <key>C-A</key> | 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à : | voir le très bon tuto sur lea-linux là : |