====== Virt-manager : Un gestionnaire graphique de machine virtuelle ====== * Objet : Utilisation de Virt-manager * Niveau requis :{{tag>débutant}} * Commentaires : //Gérer ses machines virtuelles avec Virt(ual Machine) Manager.// * Suivi :{{tag>à-tester}} * Création par [[user>gutsblack]] le 29/07/2011 {{tag>obsolète}} * Réécriture par [[user>agp91]] le 02/05/2024 * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=129279#p129279 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) Page réécrite... A valider. **Nota :** Contributeurs, les FIXME sont là pour vous aider, supprimez-les une fois le problème corrigé ou le champ rempli ! ===== Introduction ===== L'usage de **machines virtuelles** ((**Une machine virtuelle** est une machine dont les composants sont virtualisés et/ou émulés par un système que l'on nome **hôte**. Les machines virtuelles hébergés par un hôte sont dites **invitées**. Les composants virtualisés s'appuient sur le partage du matériel physique de l'hôte. Les composants émulés, utilisent les ressources de l'hôte, pour exécuter un logiciel qui reproduit le comportement d'un matériel. Le matériel virtuel (qu'il soit virtualisé ou émulé), est compris par celui qui l'utilise comme un matériel physique. En cloisonnant tout le matériel virtuel nécessaire au fonctionnement de nos ordinateurs (Processeur, RAM, disque, interface réseau, carte graphique et audio, clavier, souris, etc), nous obtenons une machine virtuelle sur laquelle peut être exécuté/installé un système d'exploitation. [[https://fr.wikipedia.org/wiki/Machine_virtuelle||(wikipedia)(fr) Machine virtuelle]] - [[https://www.redhat.com/fr/topics/virtualization/what-is-a-virtual-machine|(redhat)(fr) Qu'est qu'une machine virtuelle ?]] - [[https://www.ibm.com/fr-fr/topics/virtual-machines|(ibm)(fr) Qu'est-ce qu'une machine virtuelle (VM) ?]])) permet (entre autres) de tester.\\ ... De tout tester : * Tester l'installation et l'usage d'un système d'exploitation. * Tester un système live sans redémarrer sa machine. * Tester un programme. * Tester une configuration particulière. * Tester la communication entre plusieurs machines sur une seule. * Jouer avec un système sans redouter de le casser. * Appliquer les tutos diffusés sur le net. * Etc. **Les machines virtuelles peuvent être clonées** (copiées pour fournir une nouvelle machine virtuelle). C'est très pratique pour réaliser des machines virtuelles avec toutes la même configuration matériel virtuel et le même système. Une autre fonctionnalité est **la prise d'instantané d'une machine virtuelle** à chaud (en cour de fonctionnement). Cela permet de restaurer (à chaud) la machine dans l'état de la prise de l'instantané.\\ Bref, la virtualisation est plus qu'un outil pratique...\\ C'est un jouet. ^_^ ... Évidemment, [[doc:autres:vm:vm|la virtualisation]] n'est pas qu'un jeu, elle est aussi couramment utilisée dans le développement, le cloisonnement de services ou d'utilisateurs, le partage des ressources, le portage matériel et logiciel, les tests en tout genre, etc. C'est aussi un outil éducatif, comme par exemple : En ajoutant un second (ou plusieurs) disque(s) virtuel(s), pour s'initier au partitionnement, au RAID logiciel et aux différents systèmes de fichier. **__Note__ :** Nous nommons volontiers **machine virtuelle** par son acronyme anglais **VM** (pour **Virtual Machine**). __**Virt-manager**__, Est une application bureau (une interface graphique) qui permet la gestion de machines virtuelles.\\ Il utilise **l'hyperviseur** ((**Un hyperviseur** est un gestionnaire de machine virtuelle. Il permet à un système hôte de partager ses ressources pour l'exécution des machines virtuelles qu'il a démarré. [[https://fr.wikipedia.org/wiki/Hyperviseur|(wikipedia)(fr) Hyperviseur]] - [[https://www.ibm.com/fr-fr/topics/hypervisors|(ibm)(fr) Qu’est-ce qu’un hyperviseur ?]])) **KVM** ((**KVM** est l'hyperviseur intégré au noyau Linux. Il utilise la virtualisation matérielle des microprocesseurs. [[https://fr.wikipedia.org/wiki/Kernel-based_Virtual_Machine|(wikipedia)(fr) Kernel-based Virtual Machine]] - [[https://www.redhat.com/fr/topics/virtualization/what-is-KVM|(redhat)(fr) Qu'est que KVM ?]] - [[https://linux-kvm.org/page/Main_Page|(linux-kvm)(en)]])) et **l'émulateur**((**Un émulateur** est un logiciel qui simule un matériel. Il fournit aux logiciels qui s'adressent à lui, les fonctionnalités de l'appareil qu'il émule. [[https://fr.wikipedia.org/wiki/%C3%89mulation|(wikipedia)(fr) Émulation]])) **QEMU**((**[[:doc:systeme:vm:qemu | QEMU]]** est un hyperviseur utilisant l'émulation. Il peut émuler complémentent le matériel d'une machine virtuelle (processeur compris). Pouvant tout émuler (aux prix de la performance), il est capable d'émuler différentes architectures matériels. [[https://fr.wikipedia.org/wiki/QEMU|(wikipedia)(fr) QEMU]])) , à travers la librairie **libvirt**((**[[:atelier:chantier:virtualisation-avec-libvirt|Libvirt]]** est une librairie logiciel qui permet de manager les machines virtuelles de plusieurs hyperviseurs, émulateurs et isolateurs. [[https://fr.wikipedia.org/wiki/Libvirt|(wikipedia)(fr) libvirt]])).\\ En plus du couple QEMU/KVM, virt-manager peut utiliser les hyperviseurs **xen**((**[[:doc:systeme:xen |Xen]]** est un hyperviseur utilisant la para-virtualisation (le système invité sait qu'il fonctionne sur un hôte). Le noyau du système hôte et celui du système invité sont modifiés pour qu'ils puissent communiquer entre eux. Ces modifications sont intégrées aux noyaux Linux modernes. Ainsi un noyau Linux peut être utilisé, aussi bien par le système hôte, que par les systèmes invités. [[https://fr.wikipedia.org/wiki/Xen|(wikipedia)(fr) Xen]])), **bhyve**((**Bhyve** est l’hyperviseur intégré au noyau BSD. Il utilise la virtualisation matérielle des microprocesseurs. [[https://en.wikipedia.org/wiki/Bhyve|(wikipedia)(en) Bhyve]])) et les **isolateurs**((**Un isolateur** est un système de virtualisation, qui permet d'exécuter un système invité, dans le noyau de l'hôte, de façon cloisonnée (nous parlons de container). Directement exécuté par l’hôte, le système invité doit-être compatible avec le système hôte. Ainsi, un système hôte GNU/Linux ne pourra faire fonctionner que des systèmes invitées GNU/Linux. Cette restriction offre des performances d'exécution des systèmes invités supérieurs aux systèmes de virtualisations émulés. Une autre restriction, est que le système invité ne peut bénéficier, du matériel que l’hôte ne dispose pas ; Contrairement aux systèmes de virtualisation qui émulent le matériel (aux prix des performances). [[https://fr.wikipedia.org/wiki/Virtualisation#Isolateur|(wikipedia)(fr) Virtualisation : Isolateur]])) **OpenVZ**((**[[:doc:systeme:openvz|OpenVZ]]** est un isolateur open source (provenant de la solution d'isolation propriétaire Virtuozzo). Le noyau du système hôte doit être modifier, pour réaliser la containérisation des systèmes invités. [[https://en.wikipedia.org/wiki/OpenVZ|(wikipedia)(en) OpenVZ]])) et **LXC** ((**[[:doc:autres:vm:lxc-conteneur|LXC]]** (LinuX Containers en anglais) est l'isolateur intégré au noyau Linux. Pour containériser les systèmes invités, deux fonctionnalités du noyau sont employées : Les cgroups pour contrôler les ressources attribuées. Et les espaces de nom (namespaces) pour isoler les processus. [[https://fr.wikipedia.org/wiki/LXC|(wikipedia)(fr) LXC]])). Il permet de créer/supprimer, configurer, démarrer/arrêter/suspendre, sauvegarder, dupliquer (cloner) des machines virtuelles.\\ Localement ou sur une machine distante via ssh((**SSH** (Secure SHell en anglais) est un protocole réseau sécurisé (crypté) et une suite logiciel de type client/serveur (OpenSSH sous GNU/Linux). Permettant de se connecter à une machine distante. Sous un système GNU/Linux, **[[:doc:reseau:ssh |ssh]]** est la commande (le client) d'OpenSSH, pour se connecter à une machine distante, qui dispose de l'implémentation serveur d'OpenSSH.[[https://fr.wikipedia.org/wiki/Secure_Shell|(wikipedie)(fr) Secure Shell]] - [[https://fr.wikipedia.org/wiki/OpenSSH|(wikipedia)(fr)OpenSSH]])). Il permet aussi de créer des réseaux virtuels pour que les machines virtuelles puissent (si souhaité) communiquer entre elles et avec l'extérieur (si l’hôte est connecté à un réseau). Pour obtenir l'affichage graphique d'une machine virtuelle (permettant ainsi d'y installer un système graphique et de l’utiliser), **virt-manager** dispose du client **virt-viewer**. Tous deux utilisent le protocole **VNC**((**VNC** est une suite logiciel historique, de type client/serveur, qui permet l'usage d'une console graphique connectée à système distant. Il a alors été développé un protocole réseau, qui établit, la communication entre la console et la machine distante, par un flux graphique. [[https://fr.wikipedia.org/wiki/VNC|(wikipedia)(fr) Virtual_Network_Computing]])) ou **SPICE**((**SPICE** est le projet qui fournit une console graphique permettant d'accéder à une machine virtuelle. La communication entre la console et la machine virtuelle est réalisée par un flux vidéo. [[https://fr.wikipedia.org/wiki/SPICE_(protocole)|(wikipedia)(fr) SPICE (protocol)]] - [[http://www.spice-space.org/|(spice-space)(en)]])) pour communiquer avec la console graphique. (Le protocole VNC ne véhicule que le flux graphique et ne prend pas en charge le flux audio). Ce tuto propose : * [[#installation|D'installer virt-manager]]. * De configurer [[#reseau|un réseau virtuel]] et [[#stockage|un pool de stockage]]. * De créér une VM sans disque pour [[#systeme-live|tester un système live]]. * De créér une autre VM (avec un disque) pour [[#nouveau-systeme|tester l'installation d'un nouveau système]]. * De [[#clonage|cloner]] cette dernière, pour l'usage. * D'[[#ouvrir|ouvrir]] ; [[#demarrer|démarrer]] ; [[#suspendre-eteindre-redemarrer|suspendre/arrêter/redémarrer]] ; [[#sauvegarder|sauvegarder]] et [[#supprimer|supprimer]] une VM (le clone). * De prendre un [[#instantane|instantané d'une VM]] avant de jouer. * De configurer une VM pour [[#emuler-le-cdrom|émuler le CDROM]] ; [[#modifier-la-ram|modifier la RAM]] et [[#ajouter-un-disque|ajouter un disque virtuel.]] L’hyperviseur **KVM** utilise la "**virtualisation matériel***" intégrée au microprocesseur (**VT-x** pour les processeurs Intel et **AMD-V** pour les processeurs AMD).\\ \\ La commande suivante permet de savoir si un microprocesseur dispose une de ces technologies.\\ Ce qui devrait être le cas avec un microprocesseur récent. \\ \\ grep -E 'vmx|svm' /proc/cpuinfo &>/dev/null && echo "OK" || echo ":/ KVM non compatible" \\ __Notes :__ Les technologies **VT-x** ou **AMD-V** doivent-être activées dans le [[:doc:materiel:bios | BIOS]]. ===== Installation ===== Comme avant chaque installation, **mettre à jour le système** : apt-get update && apt-get upgrade Puis, **installer le paquet** ''virt-manager'' : apt-get install virt-manager ---- Pour obtenir le privilège d'utiliser virt-manager, un utilisateur doit appartenir au groupe ''libvirt''.\\ Nous utilisons donc la commande **[[doc:systeme:adduser|adduser]]** pour **ajouter notre utilisateur à ce groupe**. adduser libvirt Bien sûr, //// est à remplacer par le nom de votre utilisateur. Se déconnecter et se reconnecter de sa session graphique pour que cette modification soit prise en compte. ===== Prérequis ===== La première machine virtuelle que nous créerons n'aura pas de système installé et ne disposera pas de disque. Elle sera démarrée depuis un système live. La seconde disposera d'un disque et nous y installerons un système. Nous avons donc **récupéré les images iso**((**Un fichier iso** nommé aussi **image iso** est une copie intégrale d'un périphérique de stockage (disque optique, disquette, disque dur, clé USB, partition, volume) dans un seul (ou plusieurs) fichier(s). La notion d'image est adaptée car il s'agit d'une photo (un instantané) du périphérique tel qu'il est à un instant. Permettant ainsi de diffuser ou restaurer un périphérique de stockage. [[https://fr.wikipedia.org/wiki/Image_disque|(wikipedia)(fr) Image disque]])) * Du système live de Debian Facile ([[projets:iso-debian-facile|DFiso]]), sur la page : [[https://debian-facile.org/dflinux/isos/]]. * Et d'installation du système [[https://www.debian.org/index.fr.html|GNU/Debian]] stable (GNU/Debian 12 Bookworm à l'écriture du tuto) par le réseau (net-install), à l'adresse : [[https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/]] Nous utiliserons ces images pour émuler le lecteur de CDROM de nos machines virtuelles.\\ Au premier démarrage (après création), une machine virtuelle est configurée temporairement pour être démarrée (bootée) depuis le CDROM. Une fois téléchargées, les intégrités contrôlées, les images ont été copiées dans le répertoire ''~/iso'', que nous avons préalablement créé, dans notre répertoire utilisateur. ls ~/iso debian-12.5.0-amd64-netinst.iso debian-facile-12.5_amd64.iso ===== Détails de l'hyperviseur ===== Ouvrons virt-manager depuis le menu général **''Menu Applications > Système > Gestionnaire de machines virtuelles''**.\\ Ou dans un terminal fenêtre, avec la commande **virt-manager**. virt-manager {{ /file-R8bfd70c753ec265272dccfc78ef3976c.png | }} Par défaut, Virt-manager utilise l'hyperviseur **QEMU/KVM** local. ---- {{ /file-R74972d43042cd5f62e915aa141f5fd6a.png| }} **Sélectionnons le.** Puis, un **double-clic** dessus,\\ ou **depuis le menu ''Edition > Détails de la connexion''** {{ /file-Rb39350a2f80c67aa1ee5545135ddab71.png| }} Affiche les détails de l'hyperviseur, répartis en 3 onglets : * ''Affichage'' * ''Réseaux virtuels'' * ''Stockage'' {{/file-R5d79d401ca8d3f55c92075cd3b112f81.png| }} **Ouvrons l'onglet** ''Réseaux virtuels'' ---- ==== Réseau ==== {{ /file-R66f3f761ffcf604321c25a017affe913.png| }} Pour l'instant, aucun réseau virtuel n'existe.\\ Pour que nos machines virtuelles puissent communiquer, nous devons en émuler au moins un. **Clic sur le bouton ''+''** (en bas à gauche) pour en créer un. ---- {{ /file-R7fbeba4de7bbce3cf881f91779f1b72d.png| }} Nous nommons le réseau **net42**.\\ Le **mode NAT** est retenu. Puis, **Clic sur le bouton** ''Terminer'' En plus d'un **mode isolé**, où une machine virtuelle ne communique qu'avec l'hôte. Nous utilisons trois principaux types de réseaux : * Le **mode NAT** : Un réseau local virtuel est créé. Les machines virtuelles qui y sont connectées peuvent communiquer entre elles. Elles peuvent joindre l'extérieur, sous le masque de l'hôte (avec l'adresse IP de l'hôte). Leurs adresses IP étant masquées, elles ne sont pas joignables depuis l'extérieur. * Le **mode route** : Un réseau local virtuel est créé. Les machines virtuelles qui y sont connectées communiquent entre elles. Elles communiquent avec l'extérieur avec leurs adresses IP, appartenant au réseau virtuel. Elles sont accessibles depuis l'extérieur, à condition de connaître (configurer) la route qui mène au réseau virtuel (l'adresse de l’hôte). * Le **mode pont** : Aucun réseau n'est créé. Le matériel virtuel créé permet de connecter les machines virtuelles au réseau local de l'hôte. Les machines virtuelles qui y sont connectées communiquent entres elles et avec toutes les machines du réseau de l'hôte. Elles y ont leurs propres adresses IP. Elles sont donc joignables depuis l'extérieur. ---- {{ /file-R822ebced687ce416ee018ebae2ccdaf1.png| }} Par défaut, **une adresse IPv4 à été attribuée** au réseau virtuel.\\ Ici, le réseau 192.168.100.0/24. **DHCP**((**DHCP** est un protocole réseau qui permet d'attribuer dynamiquement des adresse IP aux hôtes d'un réseau. [[https://www.google.com/url?sa=t&source=web&rct=j&opi=89978449&url=https://fr.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol|(wikipedia)(fr) Dynamic Host Configuration Protocol]])) y est actif, nous permettant ainsi de ne pas nous soucier de la configuration réseau de nos machines virtuelles.\\ La plage d'adresses qu'il attribuera est configurée entre l'hôte 128 et l'hôte 254. Soit la possibilité d’attribuer 128 adresses. Maintenant, **Ouvrons l'onglet** ''Stockage'' ---- ==== Stockage ==== Virt-manager accède au système de fichiers de l'hôte à travers des **pools** (réservoirs).\\ **Un pool** est un chemin de répertoire du système de fichiers de l’hôte, mémorisé par un nom. Une fois déclaré, un pool permet à virt-manager d’accéder à son contenu. {{ /file-Rfb900c9b5ac258a27d4822cd9706fcf4.png| }} **Il existe déjà un pool nommé** ''Default''. Il a pour chemin ''/var/lib/libvirt/images''.\\ Nous l'utiliserons pour stocker les fichiers images des disques virtuels de nos machines virtuelles. **Nous devons en créer un autre**,\\ Pour accéder aux images situées dans notre répertoire ''~/iso''. Alors, **clic sur le bouton** ''+'' (en bas à gauche) pour créer un nouveau pool. ---- {{ /file-R25b648083807da3d58380fbe5ebbcb30.png| }} Nous **nommons le nouveau pool** ''iso'' **Son chemin** ''/home//iso'' **est renseigné**.\\ (Ici, DF est le nom de notre ////, remplacez le par le votre.)\\ __Remarque__ : le bouton ''Parcourir'' peut-être utilisé. **Clic sur le bouton** ''Terminer'' pour créer le pool. ---- {{ /file-R59646d07bc7fd551c73c4597d2c8293e.png| }} Maintenant que **le pool** ''iso'' existe, son contenu est accessible. ---- {{ /file-R2560b9a0e092b6146d187db1513e57a1.png| }} Voila, nous sommes prêt,\\ Nous avons tout ce qu'il nous faut pour créer et démarrer des machines virtuelles. Fermons la fenêtre ''QEMU/KVM - Détails de connexion''. * Avec le **bouton de fermeture d'une fenêtre** ''x'' (en haut à droite)\\ * Ou avec **la combinaison des touches** ''Ctrl''+''W''\\ * Ou depuis **le menu** ''Fichier > Close''.\\ ---- ===== Nouvelle VM ===== Nous allons dans ce tuto créer 3 machines virtuelles. * La première nous permettra d'utiliser le système live **DFiso** diffusé sous la forme d'une image iso. * Dans la seconde, nous installerons le système **GNU\Debian 12.5**. * La troisième sera créée par le **clonage** de la seconde. {{ /file-Rb39350a2f80c67aa1ee5545135ddab71.png| }} Depuis la fenêtre ''Gestionnaire de machines virtuelles''. **La connexion à l'hyperviseur**, où nous souhaitons créer une nouvelle machine virtuelle, **doit être sélectionnée**. ---- {{ /file-Rba8f4399472b93ccf6009ce4ab9559a6.png|Bouton nouvelle machine virtuelle}} Pour créer une nouvelle machine virtuelle : **Clic sur le bouton** ''Créer une nouvelle machine virtuelle''\\ {{ /file-Rb68ce4329020d94b041e044d937d8fce.png|Menu Fichier / Nouvelle machine virtuelle}} **Ou depuis le menu** ''Fichier > Nouvelle machine virtuelle'' ---- La création d'une nouvelle machine va se réaliser en 5 étapes : - Choix de la méthode d'installation du système d'exploitation. - Choix du média d'installation. - Paramétrages mémoire et processeur (RAM et CPU attribués à la machine virtuelle). - Création du disque virtuel attribué à la machine virtuelle. - Nom de la machine virtuelle et choix du réseau virtuel auquel elle est connectée. **C'est parti...** ==== Système live ==== Commençons par une chose simple :\\ Une machine virtuelle sans disque, sans système installé. Utilisant un système live graphique prêt à l'emploi. {{ /file-R4e37270d7607b874317f77c28c90424c.png| }} == Étape 1 == Nous souhaitons démarrer le système depuis une image iso.\\ Cette méthode d'installation est celle par défaut.\\ **Clic sur le bouton** ''Forward'' ---- {{ /file-R7e4d097583e5d374f70878d2cb27876d.png| }} == Étape 2 == Nous allons sélectionner l'image iso de démarrage.\\ **Clic sur le bouton** ''Parcourir'' ---- {{ /file-R417a1472a1187b9ab17c381ebba2f756.png| }} Dans le panneau de gauche,\\ Nous **sélectionnons le pool** ''iso''. Et dans le panneau de droite,\\ Nous **choisissons l'image de DFiso**.\\ Ici ''debian-facile-12.5_amd64.iso''. Et, **clic sur le bouton** ''Choose Volume''. ---- {{ /file-R0ddcd90219b6fc6ff7fec2181b9546dc.png| }} Nous sommes de retour sur la fenêtre de la 2ème étape. Nous devons sélectionner le type de système d'exploitation que nous allons utiliser. En bas, **nous décochons l'option** ''Détecter automatiquement depuis la source/medias d'installation''.\\ Puis dans le champs de saisie juste au dessus, **nous saisissons** ''ge''. Un menu de choix s'affiche,\\ Nous **sélectionnons** ''Generic Linux 2022''. **Clic sur le bouton** ''Forward'' pour valider. {{ /file-Ra294ce861f63076ca9a11b359d6cdff3.png | }} ---- {{ /file-Rc349a7a6761e7a3304047eff271f3476.png| }} == Étape 3 == Les valeurs proposées nous conviennent,\\ **Clic sur le bouton** ''Forward''. ---- {{ /file-Ra0dd30edee3e7f5a62392fdc5b830362.png| }} == Étape 4 == Nous utilisons un système live, nous n'avons donc pas besoin de disque. Nous **décochons l'option** ''Activer le stockage pour cette machine virtuelle''. Puis, **clic sur le bouton** ''Forward''. __**Remarque**__ : Certains systèmes live, permettent de s'installer sur un disque. C'est le cas du système DFiso.\\ ... Si c'est ce qui est souhaité, alors il faut évidement ne pas décocher l'option.\\ Pour demander la création du disque virtuel. ---- {{ /file-R78156a16bc365375aa67b46b8cf87931.png| }} == Étape 5 == La machine virtuelle est **nommée** ''DF12live''. Nous contrôlons que le réseau **net42** soit sélectionné. Et **clic sur le bouton** ''Terminer'' pour lancer la création de la machine virtuelle. ---- {{ /file-Rb2f0e24a4078105a4ad112cd0f523122.png| }} La console graphique de la machine virtuelle est affichée.\\ La machine est démarrée...\\ Le menu de démarrage de **DFiso** est affiché. En appuyant sur la touche ''Entrée'', nous choisissons de tester DF12. ---- {{ /file-R2e68395e983024ae9b4e9b5a4b3c62db.png| }} Nous patientons... Puis, pour adapter la taille de la console, à la résolution de la session ouverte,\\ Nous **utilisons le menu** ''Afficher > Redimensionner à la taille de la VM'' {{ /file-R304f842c33dbc00a50cc28a39d77ce98.png | }} Yes, voila qui est mieux 8-) {{ /file-R252e0e9fb57f366224090a7c59f5297c.png| }} Par curiosité, nous utilisons l'outil d'introspection ''À propos de ma debian'' que nous offre DF12. {{/file-R1d5774677b95711318b9def17bf5174a.png | }} ---- {{ /file-R0c46f3d95ebaebf92d5de185c5476276.png| }} {{ /file-R8338870e37d463134ddf8b28253c4ac2.png| }} Quand nous avons fini de jouer, nous éteignons le système, ce qui éteint aussi la machine virtuelle. ---- Maintenant que la machine virtuelle est arrêtée, nous avons perdu la configuration de l'émulation du CDROM.\\ Nous l'avons vu plus haut : Virt-manager configure, l'émulation du CDROM depuis une iso, uniquement pour le premier démarrage de la machine virtuelle. Si nous souhaitons que l'émulation persiste (par exemple pour continuer à utiliser DFiso sans l'installer).\\ Il nous faut l'indiquer dans les configurations (détails) de cette machine (voir [[#emuler-le-cdrom|Émuler le CDROM]]). ==== Nouveau système ==== {{ /file-Rb68ce4329020d94b041e044d937d8fce.png|Bouton nouvelle machine virtuelle}} Comme précédemment,\\ **Dans la fenêtre** ''Gestionnaire de machine virtuelle'',\\ L'hyperviseur ''QEMU/KVM'' **sélectionné**,\\ **Clic sur le bouton** ''Créer une nouvelle machine virtuelle'' ---- {{ /file-R4e37270d7607b874317f77c28c90424c.png| }} == Étape 1 == L'installation depuis une image iso est sélectionnée par défaut,\\ Parfait ! **Clic sur le bouton** ''Forward'' ---- {{ /file-Rd5fef0bdacf335f117cc055a4423a4c6.png| }} == Étape 2 == Nous **choisissons l'image d'installation du système GNU/Debian**. En bas, nous **décochons l'option** ''Détecter automatiquement depuis la source/medias d'installation'' Et nous **sélectionnons** ''Generic Linux 2022''. Puis **clic sur le bouton** ''Forward''. (Pour plus de détail, voir plus haut, à la même étape.) ---- {{ /file-R927e316af06da513d3218f440a6084d5.png| }} == Étape 3 == Nous attribuons 2048 Mo de RAM . **Clic sur le bouton** ''Forward''. ---- {{ /file-Rd022ee7173a958106f4bbec001b561ba.png| }} == Étape 4 == Nous allons installer un système, il nous faut donc un disque dur.\\ Le disque sera émulé dans un fichier (une **image qcow2((**Qcow** est le format d'image disque qu'utilise QEMU pour émuler un disque dur. [[https://fr.wikipedia.org/wiki/Qcow2|(wikipedia)(fr) Qcow2]]))**) placé dans le pool de stockage ''Default''. Une taille de 20 Go est choisie. Puis, **clic sur le bouton** ''Forward''. ---- {{ /file-Re9a238ccb01f968c438bd446f3fea6c6.png| }} == Étape 5 == La machine virtuelle est **nommée** ''deb12xfce''.\\ Car ici, nous installerons le système avec le bureau xfce4.\\ ... Mais choisissez le bureau que vous souhaitez. Nous contrôlons que le réseau **net42** soit sélectionné. Et **clic sur le bouton** ''Terminer'' pour lancer la création de la machine virtuelle. ---- La console graphique de la machine virtuelle est affichée.\\ La machine est démarrée.\\ Le menu d'installation GNU/Debian est affiché. {{ /file-R36eb0b72d9f10864fda8c6587786aef8.png | }} {{ /file-Ra0c89410e01a5f5f025cb51e9b6dc0db.png| }} Après l'installation du système et de son redémarrage, la console graphique doit être redimensionnée pour afficher la résolution du bureau de la machine invitée. ---- ==== Clonage ==== {{ /file-R39eb2beb86831c7855b8467a43f1fa42.png| }} Le clonage de machine virtuelle est un outil puissant et pratique.\\ Il permet d'obtenir rapidement une machine virtuelle en en copiant (clonant) une autre. Pour cloner une machine virtuelle, elle doit être à l'arrêt. Dans la fenêtre ''Gestionnaire de machine virtuelle'', **Clic droit** sur la ligne de la machine virtuelle que nous voulons cloner (ici ''deb12xfce''),\\ Pour **lancer la commande** ''Cloner...'' **du menu contextuel**. ---- {{ /file-R1f47bb6a7f52c5f98c537bca381f5095.png| }} La fenêtre suivante nous demande de nommer la nouvelle machine que nous allons créer. Et de sélectionner le(s) disque(s) que nous souhaitons cloner (la machine virtuelle d'origine pourrait en disposer plusieurs).\\ Nous **nommons la machine virtuelle** ''tutoz''.\\ Puis **clic sur le bouton** ''Cloner'' ---- {{ /file-R0345886f4fad881707907e75197c42ab.png| }} {{ /file-R9efd1d79242890d753a62dd291a9fa45.png| }} L'image disque de la MV d'origine est copiée avec le nom de la nouvelle. ... Et la machine virtuelle ''tutoz'' est créée. Dans les deux sections précédentes, les machines virtuelles que nous avons créé ont été automatiquement démarrées et leurs consoles affichées.\\ Par le clonage, ce n'est pas le cas, la machine virtuelle créée, est livrée à l'arrêt. Pour démarrer une machine virtuelle et afficher sa console graphique, voir la section suivante. ---- ===== Management ===== Nous venons de voir comment créer des machines virtuelles. Ici, nous montrons les autres fonctions de management, que nous propose virt-manager :\\ **Ouvrir** ; **Démarrer** ; **Suspendre** ; **Prendre/Appliquer un instantané** ; **Arrêter/Redémarrer** ; Et **supprimer** des machines virtuelles. La plupart de ces opérations de managements se réalisent depuis : * La fenêtre ''Gestionnaire de machine virtuelle''. * Et la fenêtre ''Console/Détails''. ==== Ouvrir ==== {{ /file-Ra1e240585cd093586c1343806b155a8e.png|Bouton "Ouvrir" une machine virtuelle}} Ouvrir **la fenêtre ''Console/Détails''** d'une machine virtuelle,\\ Permet d'afficher : * Sa **console graphique**, le terminal (écran, clavier et souris) qui nous permet de communiquer avec elle. * Son **interface de configuration** (les détails). * Et son **interface de gestion des instantanés**. **Nous ouvrirons la fenêtre** ''Console/Détails'',\\ **Depuis la fenêtre** ''Gestionnaire de machine virtuelle'' : * Avec un **double-clic** sur la machine virtuelle. * Ou avec la **commande** ''Ouvrir'' **du menu contextuel** de la machine virtuelle. * Ou encore en **sélectionnant la machine virtuelle**, puis **clic sur le bouton** ''Ouvrir''. La fenêtre ''Console/Détails'' peut être ouverte, que le machine virtuelle soit, démarrée ou pas. ---- Elle permet d'afficher l'interface de la **''Console graphique''**, celle des **''Détails''** ou celle de la **''Gestion des instantanés''**,\\ A l'aide de trois boutons : {{/file-Rf94732c6d75b0a898f64b73c71eb4a32.png |Bouton "Afficher la console graphique" d'une machine virtuelle}} {{/file-R71c10eee458ae67a5d13f10c4dca68f0.png |Bouton "Afficher les détails" d'une machine virtuelle}} {{/file-R7b5e60339972f61a9b7a112c89885dca.png |Boutton "Afficher les instantanés" d'une machine virtuelle}} ---- L'interface de la ''Console graphique'' dispose du **menu ''Touche d’envoi''**.\\ {{/file-R3109b25c755d72b8f1b9bd2c8c6a4a9b.png | }} Il permet **d'envoyer à la machine virtuelle des séquences de touches**,\\ Qui si, elles étaient produites au clavier, seraient plutôt envoyées, à l’hôte qu'à la machine virtuelle. ---- ==== Démarrer ==== {{ /file-R28bc3ed981db604e67c6ffeb9c9abdd6.png| }} ** Depuis la fenêtre** ''Gestionnaire de machine virtuelle'' * La machine virtuelle sélectionnée, **clic sur le bouton** ''Ouvir''. * **Clic droit** pour afficher le menu contextuel, puis **clic sur la commande** ''Démarrer''. {{ /file-R838eaa4326b33afffe750b54676e46cd.png | }} ---- {{ /file-Re4b2ff8ffa710bb4cf9357620cf236d1.png| }} **Depuis la fenêtre** ''Console/Détails'' : * **Clic sur le bouton** ''Démarer'' * **Depuis le menu** ''Machine virtuelle > Démarrer'' {{ /file-R8f81e6533d924a975c7ed5f7af6be355.png | }} ---- ==== Instantané ==== **Un instantané** d'une machine virtuelle est une sauvegarde de son système,\\ C'est **un cliché** (une image) du disque (virtuel), tel qu'il est à l'instant. Il peut-être réalisé sur une machine virtuelle éteinte, démarrée et même en court d'usage.\\ La réalisation d'un cliché n'arrête pas le système, comme le fait la commande ''[[#sauvegarder|Sauvegarder]]'' (voir plus bas). **Un instantané créé**, peut-être utilisé à tout moment, pour restaurer le système tel qu'il était lors de la prise de l'instantané. {{ /file-R7b5e60339972f61a9b7a112c89885dca.png| }} Virt-manager permet de gérer graphiquement, plusieurs instantanés (clichés) pour une machine virtuelle. Pour les manipuler, il met à disposition une interface de gestion accessible par son bouton depuis la fenêtre ''Console/Détails''.\\ (Voir plus haut [[#ouvrir|Ouvrir une VM]].) ---- {{ /file-Reb69085e11c3299dac5a9973701c13c8.png| }} Hihi, ici, nous allons jouer à Sid((**Sid** est réputé chez Debian pour casser ses jouets.)). **Démarrons le clone...** Avant de jouer, **faisons un instantané** (un cliché). **Ouvrons la fenêtre** ''Console/détails'',\\ Puis nous **affichons l'interface de ** ''Gestion des instantanés'' **avec son bouton** (voir ci-dessus). Et, en bas, à gauche, **Clic sur le bouton** ''+'' pour créer un nouveau cliché. ---- {{ /file-R124e8aa444b092cfc5238a41d75e6ea4.png| }} Si la machine virtuelle est démarrée, une capture d'écran est réalisée.:\\ Elle sera utilisée pour présenter le cliché. Nous pouvons nommer le cliché à notre convenance. **Clic sur le bouton** ''Terminer'' ---- {{ /file-R32e211284b40e66cb27bc39f605f37fa.png| }} {{ /file-R7f47a43d879f88555b292637074ed384.png| }} Le cliché est créé. Voila qui est bien fait :-) ---- {{ /file-Rcee7775c2009e7f4fbd256aa99d3e0f2.png| }} Jouons maintenant,\\ **Affichons la console graphique** avec son bouton. Puis, nous **utilisons le menu** ''Touche d’envois > Ctrl+Alt+F1'', pour envoyer cette séquence de touches à la machine virtuelle. Afin d'afficher la (première) console virtuelle de la machine virtuelle. N'utilisez pas le clavier pour envoyer cette séquence de touche.\\ \\ Car elle serait envoyée à l’hôte. La console virtuelle affichée serait celle de l'hôte et non celle de la machine virtuelle invitée dans sa console graphique. ---- La console virtuelle est affichée, il nous est demandé un nom d'utilisateur. **Connectons-nous en root**\\ (la machine virtuelle nous appartient. Nous y avons nous même installé le système. Nos connaissons donc le mot de passe root.) {{ /file-R73d5849289b9043603b803a8866be9ec.png | }} ---- Contrôlez que vous utilisez bien la console de la machine virtuelle ;\\ Et non pas, un terminal fenêtre de l’hôte. Et, **Exécutons la commande qui tue.**\\ Celle, que tous déconseillent : ''rm -rf /'' rm -rf / rm: il est dangereux d'opérer récursivement sur '/' rm: utilisez --no-preserve-root pour inhiber cette mesure de sécurité Haha, même le système nous le déconseille...\\ **Forçons le !** rm -rf --no-preserve-root / ... Rooh, root ne peut pas tout supprimer.\\ Linux (le noyau) serait-il plus puissant que root ? ... Y en a pour un certain temps.\\ Pour aller plus vite, **forçons le redémarrage** de notre machine. {{/file-Rcbf3d957b0cc8491a1bbd584afdab985.png| }} {{ /file-R6b4ffee807504936a6ca48a25fd5dc98.png| }} Pas de doute, le système est cassé ! LOL {{/file-R93d1ab69e67a506f285fd72461fd47bd.png | }} ---- {{ /file-R80abb3eb6b274b284d952d6f305adebd.png| }} {{ /file-R243b0e5d237c3e403431af64f048829f.png| }} Pour restaurer le système, nous utilisons l'instantané réalisé plus haut. Nous **affichons l'interface de gestion des instantanés**.\\ Avec le bouton approprié. Puis nous **sélectionnons l'instantané** existant. {{ /file-Rb90da708deafd49d236bd5e67c314c04.png| }} Et **clic sur le bouton** ''Exécuter le cliché sélectionné'' ---- {{ /file-R9d98816e5d963fd31ee802873877b493.png| }} Une fois fait,\\ Nous **Affichons la console graphique**.\\ Et... Yes ! Le système a été restauré. :-P Hyper puissant, non ?\\ ---- ==== Suspendre/Éteindre/Redémarrer ==== Depuis les fenêtres ''Gestionnaire de machines virtuelles'' ou la fenêtre ''Console/Détails'',\\ Il nous est facile de trouver les commandes qui permettent de **suspendre/reprendre**, **arrêter** ou **redémarrer** une machine virtuelle. Ces commandes sont disponibles : * **Par des boutons** dans les deux fenêtres. {{/file-R4cdb0c57134680d188cbb7a2c3f2162b.png| }} {{/file-R8ef644eea380a0e51f3ae2f2795aa7b2.png| }} {{/file-Rf5b310dacc90d05442b18b9bb976dbb9.png| }} {{/file-Re759e21058babda4a5b0bb440762f24a.png| }} * **Depuis le menu** ''machine virtuelle'' de la fenêtre ''Console/Détails'' d'une machine virtuelle. * **Depuis le menu contextuel** d'une machine virtuelle (dans la fenêtre ''Gestionnaire de machines virtuelles''). {{/file-Rc472dca0175fa3170b1aa9f0adf8f219.png | }} {{ /file-Rb1971b7e433f3d2648cbd3e41ee42486.png | }} Si le signal ''Éteindre'' ou ''Redémarrer'' ne suffit pas,\\ Et que la machine virtuelle ne s'ordonne pas.\\ Sont disponibles les commandes : * ''Forcer l’extinction'' * ''Forcer la réinitialisation'' ==== Sauvegarder ==== **La commande** ''Sauvegarder'' permet d'**arrêter la machine virtuelle en sauvegardant son système** préalablement. ... **Au prochain démarrage**, elle sera **redémarrée dans le même état** que lorsque qu'elle a été arrêtée. {{ /file-R14cc9cc60a4e3a04f91b4d9c8c141563.png| }} Cette commande est accessible : * **Par le bouton déroulant** ''Arrêt''. * **Depuis le menu contextuel** d'une machine virtuelle (dans la fenêtre ''Gestionnaire de machine virtuelle''). * **Depuis le menu** ''Machine virtuelle > Éteindre > Sauvegarder'' de la fenêtre ''Console/Détails''. ---- ==== Supprimer ==== {{ /file-R666857ac63a4708f5f8c0a10cc5d5a7d.png| }} Pour supprimer une machine virtuelle, elle doit être arrêtée. Une machine virtuelle est supprimée,\\ **Depuis la fenêtre** ''Gestionnaire de machine virtuelle'',\\ Soit en utilisant : * Le **menu** ''Édition / Supprimer''. * Ou depuis le **menu contextuel** d'une machine virtuelle. {{/file-R23fd9ef8a1e873a90e0966791eaa9850.png| }} ---- {{ /file-R13e92f23b3be2918afc172dd11c41a31.png| }} Virt-manager nous demande si nous souhaitons supprimer le ou les périphérique(s) de stockage associé(s) à la machine virtuelle. Ici, nous avons aucune raison de le conserver.\\ Alors nous autorisons la suppression de l'image ''tutoz.qcow2''. ... Mais nous aurions aussi pu la conserver.\\ Et ainsi recréer un jour une machine virtuelle qui utiliserait cette image comme disque virtuel. **Clic sur le bouton** ''Supprimer''. ---- {{ /file-R1e912f69d1cb9243b5e9c36ef8f629d5.png| }} Puis **clic sur le bouton** ''OUI'' pour confirmer. {{/file-Rad4c455c47a3668e6ac845aa633e28cb.png | }} Voila la machine virtuelle ''tutoz'' a été supprimé. ---- ===== Détails d'une VM ===== La fenêtre ''Console/Détails'' permet d'afficher **les détails (la configuration) d'une machine virtuelle**. Ouvrirons la fenêtre ''Console/détails'',\\ Puis nous affichons la page ''Détails'' avec son bouton.\\ (Voir plus haut [[#ouvrir|Ouvrir une VM]].) {{ /file-R1f660d0004337bb885bcdf5223d7a78c.png |Affichage des détails d'une machine virtuelle}} Nous montons ci-dessous, quelques usages de configurations ==== Options de démarrage ==== {{ /file-Raac108708ab7b3b0f89e10bae73415ce.png|Les options de démarrage d'une machine virtuelle}} Les options de démarrage permettent * D'indiquer à l'hyperviseur de démarrer la machine virtuelle au démarrage de l'hôte. * D'activer/désactiver le démarrage de la machine virtuelle depuis un périphérique. Et d'en choisir l'ordre des tentatives (le premier périphérique activé, qui démarre, suffit). ---- ==== Émuler le CDROM ==== {{ /file-Re0601f0b2ae27eceabd29ea46b3af365.png|Détails du CDROM d'une machine virtuelle}} Pour émuler le CDROM par une image iso,\\ Par exemple pour utiliser un système live.\\ Ou simplement pour rendre son contenu accessible depuis le cdrom de la machine virtuelle. Pour l'indiquer à l'hyperviseur, il suffit de **cliquer sur le bouton** ''Naviguer''.\\ Et de **sélectionner l'image iso**, dans le pool approprié.\\ Puis **clic sur le bouton** ''Apply''. ---- ==== Modifier la RAM ==== {{ /file-R1f3fb23d481dcac42aae33b2aa6d1932.png|Configuration de la mémoire d'une machine virtuelle}} Si la quantité de mémoire attribuée ne suffit pas,\\ Il est possible d'en modifier la quantité. ---- ==== Ajouter un disque ==== {{ /file-R972161a4e543e80b166b07171a4f13fd.png|Bouton "Ajouter un matériel" à une machine virtuelle}} Pour ajouter un matériel,\\ **Clic sur le bouton** ''Ajouter un matériel'' La fenêtre ''Ajouter un matériel virtuelle'' est affichée. {{ /file-Racac8a68cc3b51332dd04ff69911ff43.png|Fenêtre d'ajout d'un matériel virtuel pour une machine virtuelle}} La liste des matériels qui peuvent être ajouter est disponible dans le panneau de gauche.\\ Le premier de la liste est le stockage. ... Cela tombe bien, c'est ce qu'ici nous souhaitons : **Ajouter un disque dur virtuel**. Ici, **nous en un créons un nouveau**,\\ Dans le pool ''Deffault''. Mais nous aurions pu aussi le créer ailleurs, dans un autre pool.\\ Ou utiliser une image disque déjà existante. Nous pouvons aussi **choisir un autre type de périphérique**. {{ /file-Raa5813c1e91bc6bb35981e5379d7abb8.png |Choix du type de disque}} Ou **choisir le type de bus** de communication entre le disque et les composants de la carte mère virtuelle.\\ Utiliser le type ''VirtiO'', permet l'usage (tant que possible) de la virtualisation matériel, via KVM.\\ Cela à pour effet d’accélérer les performances de communication entre les composants virtuels. D'autre options sont disponibles comme en faire un disque en lecteur seule. Une fois nos choix établis, pour terminer l'ajout : **Clic sur le bouton** ''Terminer''. {{/file-R72160fb17d5e483d921b14e4f8097219.png | }} {{ /file-R24c76472374ec7305a7c0ce9ea12bdae.png|Le nouveau disque virtuel dans les détails de la machine virtuelle}} Puis le nouveau disque est connecté à la machine virtuelle. ---- {{ /file-R423542d6e28119b136a13f2346c4a484.png|L'image qcow2 du nouveau disque virtuel dans son pool de stockage.}} Dans l'onglet ''Stockage'', nous retrouvons sont image dans le pool ''Défault''. ---- La machine virtuelle démarrée. Connecté en tant que root, nous pouvons lister les disques (virtuels) que le système dispose avec la commande **fdisk -l**. {{ /file-Re7a5005cb1c533e4e9d619f807b3891e.png |Commande fdisk depuis la machine virtuelle}} Nous pouvons maintenant tester ''fdisk'' ou ''gparted'', ''lvm'', ''mkfs'', etc, sans soucis.\\ :!: A condition de toujours veiller que les commandes soient exécutées dans la console graphique de la machine virtuelle.\\ Et, non pas, dans un terminal fenêtre de l'hôte. ---- ===== Conclusions ===== **Virt-manager** est un logiciel, qui par son interface graphique, rend abordable la gestion de machine virtuelle. Sa simplicité d'usage est son atout,\\ Il offre les fonctionnalités de base pour manipuler les machines virtuelles à travers quelques clics.\\ Haha, il est plus ludique que la ligne de commande.\\ ... Que nous serons tout de même obligés d'utiliser pour un usage plus avisé. =) Ça à été un plaisir de jouer avec vous.\\ By.