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 [03/07/2014 00:06] 127.0.0.1 modification externe |
doc:systeme:vm:qemu [02/09/2015 17:25] milou [Quelques raccourcis indispensables] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Qemu ====== | ====== Qemu ====== | ||
+ | |||
+ | * Objet : Qemu | ||
+ | * Niveau requis :{{tag>avisé}} | ||
+ | * Commentaires : //logiciel libre de machine virtuelle// | ||
+ | * Suivi : {{tag>à-tester}} | ||
+ | * Création par [[user>captnfab]] le 17/08/2009 | ||
+ | * Testé par .... le .... | ||
+ | * 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é ===== | ||
Ligne 13: | Ligne 21: | ||
===== Prérequis ===== | ===== 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 en root : | + | Avant d'installer qemu, assurez-vous d'avoir les paquets ci-dessous d'installé sur votre système. Pour cela, tapez la commande suivante |
- | aptitude install module-assistant | + | <code root>apt-get install module-assistant</code> |
- | module-assistant prepare | + | <code root>module-assistant prepare</code> |
Ligne 22: | Ligne 30: | ||
Classiquement, on commence par mettre à jour la liste des paquets : | Classiquement, on commence par mettre à jour la liste des paquets : | ||
- | aptitude update | + | <code root>apt-get update</code> |
puis on installe qemu : | puis on installe qemu : | ||
- | aptitude install qemu | + | <code root>apt-get install qemu</code> |
on compile et installe les modules noyaux : | on compile et installe les modules noyaux : | ||
- | m-a a-i kqemu | + | <code root>m-a a-i kqemu</code> |
===== Configuration ===== | ===== Configuration ===== | ||
Ligne 33: | Ligne 41: | ||
//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.// | //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.// | ||
- | |||
- | **À faire en tant que super utilisateur.** | ||
=== Pour le charger une fois === | === Pour le charger une fois === | ||
- | <code bash> | + | <code root> |
modprobe kqemu | modprobe kqemu | ||
</code> | </code> | ||
Ligne 45: | Ligne 51: | ||
**Attention, il y a deux '>', accolés l'un à l'autre** | **Attention, il y a deux '>', accolés l'un à l'autre** | ||
- | <code bash> | + | <code root> |
echo kqemu >> "/etc/modules" | echo kqemu >> "/etc/modules" | ||
</code> | </code> | ||
Ligne 52: | Ligne 58: | ||
On commence par se créer un répertoire de travail, par exemple : ''~/vm'' | On commence par se créer un répertoire de travail, par exemple : ''~/vm'' | ||
- | <code bash> | + | <code root> |
mkdir -p ~/vm | mkdir -p ~/vm | ||
</code> | </code> | ||
Ligne 58: | Ligne 64: | ||
===== 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 71: | Ligne 77: | ||
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 93: | Ligne 99: | ||
* 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 106: | Ligne 112: | ||
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> |
Ligne 134: | Ligne 140: | ||
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 -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 153: | Ligne 159: | ||
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 176: | Ligne 182: | ||
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 196: | Ligne 202: | ||
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 -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à : |