
Vous avez installé KVM/libvirt et vous voulez créer votre première VM ? Ce guide vous montre les deux méthodes : virt-manager (interface graphique) et virt-install (ligne de commande). À la fin, vous saurez créer une VM fonctionnelle en moins de 10 minutes.
| Méthode | Pour qui | Avantage |
|---|---|---|
| virt-manager | Débutants, homelab | Visuel, intuitif |
| virt-install | Sysadmins, automatisation | Scriptable, reproductible |
Prérequis
Section intitulée « Prérequis »- KVM/libvirt installé et fonctionnel (guide installation)
- Réseau default actif (
virsh net-list→ default active) - Pool de stockage configuré (
virsh pool-list→ default active) - Une image ISO d’installation (Ubuntu Server, Debian, Rocky Linux…)
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Créer une VM avec virt-manager (workflow visuel)
- Créer une VM avec virt-install (workflow CLI, scriptable)
- Choisir entre BIOS et UEFI
- Configurer les paramètres essentiels : CPU, RAM, disque, réseau
Méthode 1 : virt-manager (interface graphique)
Section intitulée « Méthode 1 : virt-manager (interface graphique) »virt-manager est l’outil graphique officiel pour gérer les VMs libvirt. Idéal pour :
- Découvrir KVM sans apprendre les commandes
- Gérer un homelab avec quelques VMs
- Accéder aux consoles graphiques facilement
Lancer virt-manager
Section intitulée « Lancer virt-manager »virt-managerSi vous êtes sur un serveur distant (SSH avec X11 forwarding) :
ssh -X user@serveurvirt-managerCréer une VM pas à pas
Section intitulée « Créer une VM pas à pas »-
Nouvelle VM
Cliquez sur File → New Virtual Machine (ou l’icône ➕)
-
Choisir la source d’installation
- Sélectionnez Local install media (ISO image or CDROM)
- Cliquez Forward
-
Sélectionner l’ISO
- Cliquez Browse → Browse Local
- Naviguez jusqu’à votre fichier ISO
- Le système détecte automatiquement l’OS (sinon, décochez “Automatically detect” et choisissez manuellement)
-
Configurer CPU et RAM
Paramètre Valeur recommandée (lab) Production Memory 2048 MB 4096+ MB CPUs 2 4+ -
Configurer le disque
- Cochez Enable storage for this virtual machine
- Taille : 20 GB minimum (40+ GB pour production)
- Le disque sera créé dans le pool
default(/var/lib/libvirt/images/)
-
Nom et réseau
- Name :
ubuntu-test(ou le nom de votre choix) - Cochez Customize configuration before install si vous voulez ajuster le firmware (UEFI)
- Cliquez Finish
- Name :
-
Personnaliser (optionnel)
Si vous avez coché “Customize” :
- Overview → Firmware : choisissez UEFI si vous voulez un boot moderne
- NIC : vérifiez que le réseau est
default(NAT) - Cliquez Begin Installation
-
Installation
La console graphique s’ouvre. Suivez l’assistant d’installation de votre OS.
Méthode 2 : virt-install (ligne de commande)
Section intitulée « Méthode 2 : virt-install (ligne de commande) »virt-install est l’outil CLI pour créer des VMs. Avantages :
- Scriptable : automatisez la création de VMs
- Reproductible : même commande = même résultat
- SSH-friendly : pas besoin de X11
Syntaxe de base
Section intitulée « Syntaxe de base »virt-install \ --name <nom> \ --memory <MB> \ --vcpus <nombre> \ --disk <options> \ --network <options> \ --cdrom <chemin-iso> \ --os-variant <type>Exemple complet : VM Ubuntu avec ISO
Section intitulée « Exemple complet : VM Ubuntu avec ISO »virt-install \ --name ubuntu-test \ --memory 2048 \ --vcpus 2 \ --disk size=20,format=qcow2,pool=default \ --network network=default \ --cdrom /var/lib/libvirt/images/ubuntu-24.04-live-server-amd64.iso \ --os-variant ubuntu24.04 \ --graphics vnc,listen=0.0.0.0 \ --noautoconsoleDécryptage des options :
| Option | Signification |
|---|---|
--name ubuntu-test | Nom de la VM dans libvirt |
--memory 2048 | 2 GB de RAM |
--vcpus 2 | 2 vCPUs |
--disk size=20,format=qcow2,pool=default | Disque 20 GB QCOW2 dans le pool default |
--network network=default | Connecté au réseau NAT |
--cdrom /chemin/... | ISO d’installation |
--os-variant ubuntu24.04 | Optimisations pour Ubuntu 24.04 |
--graphics vnc | Console VNC (pour virt-manager) |
--noautoconsole | Ne pas ouvrir la console automatiquement |
Lister les os-variant disponibles
Section intitulée « Lister les os-variant disponibles »virt-install --osinfo list | grep -i ubuntuSortie réelle :
ubuntu25.10, ubuntuquestingubuntu-stable-latest, ubuntu25.04, ubuntupluckyubuntu24.10, ubuntuoracularubuntu-lts-latest, ubuntu24.04, ubuntunobleubuntu23.10, ubuntumanticubuntu22.04, ubuntujammyubuntu20.04, ubuntufocalubuntu18.04, ubuntubionicVariante : VM avec boot UEFI
Section intitulée « Variante : VM avec boot UEFI »virt-install \ --name ubuntu-uefi \ --memory 2048 \ --vcpus 2 \ --disk size=20,format=qcow2,pool=default \ --network network=default \ --cdrom /var/lib/libvirt/images/ubuntu-24.04-live-server-amd64.iso \ --os-variant ubuntu24.04 \ --boot uefi \ --graphics vnc \ --noautoconsoleL’option --boot uefi utilise automatiquement OVMF si installé.
Variante : VM serveur sans interface graphique
Section intitulée « Variante : VM serveur sans interface graphique »Pour un serveur headless, utilisez une console série :
virt-install \ --name ubuntu-server \ --memory 2048 \ --vcpus 2 \ --disk size=20,format=qcow2,pool=default \ --network network=default \ --location https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso \ --os-variant ubuntu24.04 \ --graphics none \ --console pty,target_type=serial \ --extra-args 'console=ttyS0,115200n8'Différences :
| Option | Effet |
|---|---|
--location au lieu de --cdrom | Permet d’injecter des paramètres kernel |
--graphics none | Pas de console graphique |
--console pty,target_type=serial | Console série |
--extra-args 'console=ttyS0' | Redirige la sortie vers la console série |
Vous accéderez à la VM via :
virsh console ubuntu-serverVariante : VM connectée à un bridge
Section intitulée « Variante : VM connectée à un bridge »Si vous avez configuré un bridge br0 (guide réseau) :
virt-install \ --name ubuntu-bridge \ --memory 2048 \ --vcpus 2 \ --disk size=20,format=qcow2,pool=default \ --network bridge=br0 \ --cdrom /var/lib/libvirt/images/ubuntu-24.04-live-server-amd64.iso \ --os-variant ubuntu24.04 \ --graphics vnc \ --noautoconsoleLa VM obtiendra une IP directement sur votre LAN.
Variante : Import d’une image cloud (sans installation)
Section intitulée « Variante : Import d’une image cloud (sans installation) »Les images cloud sont des disques pré-installés, prêts à booter. C’est la méthode la plus rapide pour créer une VM :
-
Télécharger l’image cloud
Fenêtre de terminal cd /var/lib/libvirt/imagessudo wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img -
Créer un disque basé sur l’image (backing file)
Fenêtre de terminal sudo qemu-img create -f qcow2 -F qcow2 \-b /var/lib/libvirt/images/noble-server-cloudimg-amd64.img \/var/lib/libvirt/images/ubuntu-test.qcow2 20G -
Créer la VM avec
--importFenêtre de terminal virt-install \--name ubuntu-test \--memory 2048 \--vcpus 2 \--disk /var/lib/libvirt/images/ubuntu-test.qcow2 \--network network=default \--os-variant ubuntu24.04 \--import \--graphics vnc \--noautoconsole
Après la création : commandes utiles
Section intitulée « Après la création : commandes utiles »Lister les VMs
Section intitulée « Lister les VMs »virsh list --allSortie réelle :
Id Name State----------------------------- 1 ubuntu-test runningAccéder à la console
Section intitulée « Accéder à la console »Console graphique (via virt-manager) :
virt-viewer ubuntu-testConsole série (si configurée) :
virsh console ubuntu-test# Pour sortir : Ctrl+]Démarrer / Arrêter
Section intitulée « Démarrer / Arrêter »# Démarrervirsh start ubuntu-test
# Arrêter proprement (ACPI shutdown)virsh shutdown ubuntu-test
# Arrêt forcé (équivalent couper le courant)virsh destroy ubuntu-testVoir les informations
Section intitulée « Voir les informations »virsh dominfo ubuntu-testSortie réelle :
Id: 1Name: ubuntu-testUUID: 09978674-04a9-4f02-a61f-18615ddedca1OS Type: hvmState: runningCPU(s): 2CPU time: 8,1sMax memory: 2097152 KiBUsed memory: 2097152 KiBPersistent: yesAutostart: disableManaged save: noSecurity model: apparmorSecurity DOI: 0Security label: libvirt-09978674-... (enforcing)Activer le démarrage automatique
Section intitulée « Activer le démarrage automatique »virsh autostart ubuntu-testTableau comparatif des options
Section intitulée « Tableau comparatif des options »| Besoin | virt-manager | virt-install |
|---|---|---|
| Découvrir KVM | ✅ Idéal | ⚠️ Courbe d’apprentissage |
| Automatisation | ❌ Manuel | ✅ Scriptable |
| Serveur distant SSH | ⚠️ Besoin X11 | ✅ Natif |
| Console graphique | ✅ Intégrée | ⚠️ Via virt-viewer |
| Homelab | ✅ Confortable | ✅ OK |
| Production | ⚠️ Pas reproductible | ✅ Recommandé |
Erreurs fréquentes
Section intitulée « Erreurs fréquentes »| Erreur | Cause | Solution |
|---|---|---|
ERROR: --os-variant unknown | os-variant incorrect | Lister avec virt-install --osinfo list |
Permission denied sur l’ISO | ISO pas lisible par qemu | chmod 644 ou déplacer dans /var/lib/libvirt/images/ |
Cannot access storage | Pool non démarré | virsh pool-start default |
Network not found | Réseau default inactif | virsh net-start default |
Unable to complete install | RAM insuffisante | Augmenter --memory |
UEFI firmware not found | OVMF non installé | apt install ovmf ou dnf install edk2-ovmf |
Checklist création VM
Section intitulée « Checklist création VM »- ISO téléchargée et accessible
- Pool de stockage actif (
virsh pool-list) - Réseau actif (
virsh net-list) - Ressources disponibles (RAM, espace disque)
- os-variant correct pour l’OS cible
- Mode boot choisi (BIOS ou UEFI)
À retenir
Section intitulée « À retenir »-
virt-manager = interface graphique, idéale pour découvrir et gérer un homelab
-
virt-install = ligne de commande, idéale pour l’automatisation et les scripts
-
Options essentielles :
--name,--memory,--vcpus,--disk,--network,--cdrom/--location -
os-variant active les optimisations pour l’OS cible — toujours le spécifier
-
UEFI (
--boot uefi) pour les OS modernes, BIOS par défaut pour la compatibilité -
Console série (
--graphics none --console pty) pour les serveurs headless
Prochaines étapes
Section intitulée « Prochaines étapes »Références
Section intitulée « Références »- virt-install man page — Documentation complète des options
- Red Hat - Creating guests with virt-install — Guide officiel RHEL
- libvirt - Domain XML format — Référence du format XML des VMs