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:kvm [28/11/2015 07:26] smolski [Introduction] |
doc:systeme:kvm [15/07/2021 09:17] smolski [Introduction] |
||
---|---|---|---|
Ligne 6: | Ligne 6: | ||
* Suivi : {{tag>à-tester}} | * Suivi : {{tag>à-tester}} | ||
* Création par [[user>smolski]] 21/08/2010 | * Création par [[user>smolski]] 21/08/2010 | ||
- | * Dernière mise à jour par [[user>MicP]] le 12/01/2014 | + | * Dernière mise à jour par [[user>Philou92]] le 25/11/2016 |
* Testé par <...> le <...> | * Testé par <...> le <...> | ||
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=2255 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=2255 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | - ''KVM'' est un [[http://fr.wikipedia.org/wiki/Hyperviseur | hyperviseur de type 1]] ("bare metal") qui permet à [[doc:systeme:qemu | Qemu]] la virtualisation simultanée de différents systèmes d'exploitation sur la même machine hôte. \\ | + | {{/file-R70e5a6a5358a997ac6e5da2364abd1cf.png}} |
- | - ''KVM'' est un module du noyau Linux permettant aux applications de l'espace utilisateur d'utiliser les fonctionnalités de virtualisation matérielle. \\ | + | |
- | - ''KVM'' permet à [[doc:systeme:qemu | Qemu]] de virtualiser une architecture sur un hôte de même architecture et exploitera alors pleinement l'accélération matérielle que ''KVM'' pourra lui apporter. \\ | + | * ''KVM'' est un [[http://fr.wikipedia.org/wiki/Hyperviseur | hyperviseur de type 1]] ("bare metal") qui permet à Qemu la virtualisation simultanée de différents systèmes d'exploitation sur la même machine hôte. \\ |
- | - L'accélération matérielle par ''KVM'' ne sera possible que pour les microprocesseurs pourvu de la technologie ''Intel VT-x'' et ''AMD-V''. \\ | + | * ''KVM'' est un module du noyau Linux permettant aux applications de l'espace utilisateur d'utiliser les fonctionnalités de virtualisation matérielle. \\ |
- | - L'accès direct au matériel (bus PCI, Carte Graphique, etc..) depuis les machines virtuelles nécessitera aussi que la carte mère soit équipée d'un //chipset// permettant d'exploiter la technologie ''IOMMU'' (**I**nput/**O**utput **M**emory **M**anagement **U**nit) de ces microprocesseur. => ''Intel Vt-d'' et ''AMD-Vi''. | + | * ''KVM'' permet à Qemu de virtualiser une architecture sur un hôte de même architecture et exploitera alors pleinement l'accélération matérielle que ''KVM'' pourra lui apporter. \\ |
+ | * L'accélération matérielle par ''KVM'' ne sera possible que pour les microprocesseurs pourvu de la technologie ''Intel VT-x'' et ''AMD-V''. \\ | ||
+ | * L'accès direct au matériel (bus PCI, Carte Graphique, etc..) depuis les machines virtuelles nécessitera aussi que la carte mère soit équipée d'un //chipset// permettant d'exploiter la technologie ''IOMMU'' (**I**nput/**O**utput **M**emory **M**anagement **U**nit) de ces microprocesseur. => ''Intel Vt-d'' et ''AMD-Vi''. | ||
===== Vérification ===== | ===== Vérification ===== | ||
- Pour vérifier que le microprocesseur de votre machine permet la virtualisation avec ''KVM''<code user>grep -E 'vmx|svm' /proc/cpuinfo &>/dev/null && echo "La virtualisation est possible sur cette machine." || echo "Le microprocesseur de cette machine ne permet pas d'utiliser la virtualisation avec KVM."</code> | - Pour vérifier que le microprocesseur de votre machine permet la virtualisation avec ''KVM''<code user>grep -E 'vmx|svm' /proc/cpuinfo &>/dev/null && echo "La virtualisation est possible sur cette machine." || echo "Le microprocesseur de cette machine ne permet pas d'utiliser la virtualisation avec KVM."</code> | ||
- | - Et assurez-vous ensuite que les option du [[:doc:materiel:bios | BIOS]] concernant ces technologies sont autorisée. | + | - Et assurez-vous ensuite que les option du [[:doc:materiel:bios | BIOS]] concernant ces technologies de virtualisation sont autorisées. |
Ligne 55: | Ligne 57: | ||
Où : | Où : | ||
* **image.qcow2**((ou un autre nom de votre choix, par exemple **testing.qcow2**...)) => est le nom du fichier //image disque// qui va être créé. | * **image.qcow2**((ou un autre nom de votre choix, par exemple **testing.qcow2**...)) => est le nom du fichier //image disque// qui va être créé. | ||
- | - L'extension de ce fichier **.qcow2** __//n'est pas indispensable//__ mais aidera beaucoup l'utilisateur quand il va avoir besoin de trier ses fichiers. | + | * L'extension de ce fichier **.qcow2** __//n'est pas indispensable//__ mais aidera beaucoup l'utilisateur quand il va avoir besoin de trier ses fichiers. |
- | - L'//image// du **disque virtuel** créé pourra être établie dans [[doc:programmation:shell:repertoires | le répertoire de son choix]]. | + | * L'//image// du **disque virtuel** créé pourra être établie dans [[doc:programmation:shell:repertoires | le répertoire de son choix]]. |
* **10G** => sera la taille **virtuelle** de l'espace disponible dans ce **disque virtuel**. | * **10G** => sera la taille **virtuelle** de l'espace disponible dans ce **disque virtuel**. | ||
<note tip>Le format **qcow2**((**Q**emu **C**opy **O**n **W**rite version **2**)) est un format d'espace de stockage //optimisé//, c'est à dire que l'espace occupé par le fichier //image disque// sera très nettement inférieur à l'espace disponible sur le support de données, mais à mesure que des données seront écrites sur le //disque// la taille du fichier va augmenter.</note> | <note tip>Le format **qcow2**((**Q**emu **C**opy **O**n **W**rite version **2**)) est un format d'espace de stockage //optimisé//, c'est à dire que l'espace occupé par le fichier //image disque// sera très nettement inférieur à l'espace disponible sur le support de données, mais à mesure que des données seront écrites sur le //disque// la taille du fichier va augmenter.</note> | ||
Ligne 94: | Ligne 96: | ||
<note tip> | <note tip> | ||
Pour que les actions du clavier et de la souris soient prises en compte par la fenêtre de la machine virtuelle, cliquez sur celle-ci. \\ | Pour que les actions du clavier et de la souris soient prises en compte par la fenêtre de la machine virtuelle, cliquez sur celle-ci. \\ | ||
- | Pour //libérer// le clavier et la souris de la fenêtre de virtualisation, utilisez la combinaisons de touches <key>C-A</key> | + | Pour //libérer// le clavier et la souris de la fenêtre de virtualisation, utilisez la combinaison de touches <key>C-A</key> |
</note> | </note> | ||
Une fois l'installation terminée, vous pourrez démarrer cette machine virtuelle avec la ligne de commande suivante : | Une fois l'installation terminée, vous pourrez démarrer cette machine virtuelle avec la ligne de commande suivante : | ||
<code user>kvm -m 2G -cpu host image.qcow2</code> | <code user>kvm -m 2G -cpu host image.qcow2</code> | ||
- | |||
<note important> | <note important> | ||
- | ATTENTION ! : | + | **ATTENTION !** : \\ Dans votre machine virtuelle, il se peut que le pavé numérique ait besoin d'être réactivé en tapant __deux fois__ sur la touche <key>Ver.Num</key> |
- | Dans votre machine virtuelle, il se peut que le pavé numérique ait besoin d'être réactivé en tapant __deux fois__ sur la touche <key>Ver.Num</key> | + | |
</note> | </note> | ||
+ | |||
+ | ==== Permettre l'accès au lecteur CDROM au démarrage ==== | ||
+ | |||
+ | Au moment de lancer votre machine virtuelle sous kvm, ajoutez "-cdrom /dev/sr0" dans la ligne de commande. | ||
+ | |||
+ | En reprenant l'exemple du paragraphe ci-dessus **Démarrez votre machine virtuelle** cela donne : | ||
+ | <code user> | ||
+ | kvm -m 2G -cpu host image.qcow2 -cdrom /dev/sr0</code> | ||
+ | |||
+ | Merci à MicP pour l'info. 8-) | ||
+ | |||
+ | ==== Changer de CDROM en cours d'installation d'un logiciel sur la machine virtuelle ==== | ||
+ | |||
+ | Imaginons un instant qu'à partir d'un support CDROM avec grande souffrance morale vous ayez lancé l'installation d'un logiciel privateur avec "wine" dans votre machine virtuelle qemu-kvm (pour éviter que de potentiels vilains malwares viennent titiller votre OS vénéré). \\ | ||
+ | Tout se déroule correctement et soudain l'installateur vous demande d'insérer le CDROM N°2 !!! | ||
+ | |||
+ | //La tuile... \\ | ||
+ | Comment faire, car on a beau changer le CDROM, qemu reste incapable de le lire ?// | ||
+ | <note important>Ne cherchez pas non plus à faire de pénibles opérations de démontage-remontage du périphérique, c'est l'échec assuré !</note> | ||
+ | Pas de panique, il y a un moyen simple d'y arriver en utilisant le moniteur Qemu ! :-) | ||
+ | |||
+ | Toujours dans la machine virtuelle commencez par appuyer sur le raccourci clavier <key>CTRL+ALT+2</key> (dans la VM qemu) vous accéderez ainsi au moniteur qemu (qui ressemble à un terminal...). | ||
+ | |||
+ | Première chose à faire, il faut identifier les lecteurs vus par Qemu en entrant la commande suivante : | ||
+ | <code config séquence interactive>(qemu) info block</code> | ||
+ | <code config retour de la commande>ide0-hd0: /home/<user>/<RépertoireImage>/image.qcow2 (qcow2) | ||
+ | |||
+ | ide1-cd0: /dev/sr0 (raw,read-only) | ||
+ | Removable device: locked, tray closed | ||
+ | |||
+ | floppy0: [not inserted] | ||
+ | Removable device: not locked, tray closed | ||
+ | |||
+ | sd0: [not inserted] | ||
+ | Removable device: not locked, tray closed | ||
+ | </code> | ||
+ | La ligne **ide1-cd0: /dev/sr0 (raw,read-only)** désigne le lecteur cdrom monté par le système virtuel. \\ | ||
+ | Il est actuellement verrouillé (locked). | ||
+ | |||
+ | Il faut maintenant éjecter le cdrom. | ||
+ | |||
+ | Commencez par appuyer sur le bouton (physique) d'éjection du tiroir cdrom de votre PC et __**laissez-le ouvert**__. \\ | ||
+ | Puis entrez les deux commandes suivantes dans le moniteur Qemu : | ||
+ | <code config séquence interactive>(qemu) eject ide1-cd0</code> | ||
+ | <code config séquence interactive>(qemu) info block</code> | ||
+ | <code config retour de la commande>ide0-hd0: /home/<user>/<RépertoireImage>/image.qcow2 (qcow2) | ||
+ | |||
+ | ide1-cd0: /dev/sr0 (raw,read-only) | ||
+ | Removable device: not locked, tray closed | ||
+ | |||
+ | floppy0: [not inserted] | ||
+ | Removable device: not locked, tray closed | ||
+ | |||
+ | sd0: [not inserted] | ||
+ | Removable device: not locked, tray closed</code> | ||
+ | Removable device: not locked = Le lecteur est déverrouillé. | ||
+ | |||
+ | Insérez **le nouveau** cd dans le lecteur cdrom, fermez le tiroir puis entrez les deux commandes suivantes dans le moniteur Qemu : | ||
+ | |||
+ | <code config séquence interactive>(qemu) change ide1-cd0 /dev/sr0</code> | ||
+ | <code config séquence interactive>(qemu) info block</code> | ||
+ | <code config retour de la commande>ide0-hd0: /home/<user>/<RépertoireImage>/image.qcow2 (qcow2) | ||
+ | |||
+ | ide1-cd0: /dev/sr0 (raw,read-only) | ||
+ | Removable device: locked, tray closed | ||
+ | |||
+ | floppy0: [not inserted] | ||
+ | Removable device: not locked, tray closed | ||
+ | |||
+ | sd0: [not inserted] | ||
+ | Removable device: not locked, tray closed</code> | ||
+ | C'est bon le nouveau CD est correctement reconnu par Qemu. 8-) | ||
+ | |||
+ | Appuyez sur les touches de raccourci <key>CTRL+ALT+1</key> pour retourner dans le mode graphique de l'invité et poursuivez votre installation. | ||
+ | |||
+ | C'est le moment de verser une larme de joie et de chanter un psaume car un miracle s'est accompli. | ||
+ | |||
+ | On ne peut être qu'ému n'est-ce pas ? :-P | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
===== bug carte graphique ===== | ===== bug carte graphique ===== | ||
Ligne 145: | Ligne 229: | ||
Démarrez votre machine virtuelle par cette commande : | Démarrez votre machine virtuelle par cette commande : | ||
<code user>kvm -net nic,model=rtl8139,vlan=0,macaddr=00:11:22:33:44:55 -net tap,vlan=0,ifname=tap0,script=no -enable-kvm -m 512 image.qcow2</code> | <code user>kvm -net nic,model=rtl8139,vlan=0,macaddr=00:11:22:33:44:55 -net tap,vlan=0,ifname=tap0,script=no -enable-kvm -m 512 image.qcow2</code> | ||
- | ===== Ajouter virtuellement une clé usb au démarrage ===== | + | ===== Ajouter un système de fichier d'une clé USB au démarrage ===== |
- | Insérer et identifier la clé usb par la commmande [[:doc:systeme:fdisk | FDISK]] : | + | Insérez sur et identifiez la partition d'une clé usb avec la commmande [[:doc:systeme:fdisk | FDISK]] : |
<code root>fdisk -l</code> | <code root>fdisk -l</code> | ||
- | Et ajoutez : \\ | + | Et pour lancer votre machine virtuelle sous kvm, ajoutez cet extrait dans la ligne de commande : |
<code>-usbdevice disk:/dev/<votre_clé_usb></code> | <code>-usbdevice disk:/dev/<votre_clé_usb></code> | ||
- | dans le rédigé de la ligne de commande pour lancer votre machine virtuelle sous kvm. | + | == Nota : == |
- | **Nota :** \\ | + | Par exemple, avec le système de fichiers d'une partition d'une ''clé usb'' accessible par le fichier de périphérique ''/dev/sdb1'' cela donne : \\ |
- | Avec une ''clé usb'' montée en ''/dev/sdb1'' cela donne : \\ | + | |
<code>-usbdevice disk:/dev/sdb1</code> | <code>-usbdevice disk:/dev/sdb1</code> | ||
- | Par exemple, la ligne complète avec le réseau virtuel également : | + | Et, la ligne complète avec le réseau virtuel itou : |
<code user>kvm -net nic,model=rtl8139,vlan=0,macaddr=00:11:22:33:44:55 -net tap,vlan=0,ifname=tap0,script=no -enable-kvm -usbdevice disk:/dev/<votre_clé_usb> -m 512 image.qcow2</code> | <code user>kvm -net nic,model=rtl8139,vlan=0,macaddr=00:11:22:33:44:55 -net tap,vlan=0,ifname=tap0,script=no -enable-kvm -usbdevice disk:/dev/<votre_clé_usb> -m 512 image.qcow2</code> | ||
Ligne 166: | Ligne 249: | ||
===== Voir : ===== | ===== Voir : ===== | ||
- | [[:doc:systeme:qemu|QEMU - Emulateur]] \\ | + | [[:doc:systeme:vm:qemu|QEMU - Emulateur]] \\ |
===== Exercices Divers ===== | ===== Exercices Divers ===== | ||
- | Voir le ''TP 01 kvm'' là : \\ | + | À créer... |
+ | |||
+ | ===== Pare feu et KVM ===== | ||
- | [[:doc:autres:vm:qemu:tp01|TP 01 KVM]] | + | Un post dans le forum à donné une solution pour configurer le firewall avec KVM : [[https://debian-facile.org/viewtopic.php?pid=320330#p320330|[Résolu] Virt-Manager QEMU/KVM Aucune conexion réseau]]. |
===== Liens ===== | ===== Liens ===== |