Aller au contenu
Virtualisation medium

Créer une VM KVM : virt-manager et virt-install

12 min de lecture

Logo KVM

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éthodePour quiAvantage
virt-managerDébutants, homelabVisuel, intuitif
virt-installSysadmins, automatisationScriptable, reproductible
  • 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…)
  • 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

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
Fenêtre de terminal
virt-manager

Si vous êtes sur un serveur distant (SSH avec X11 forwarding) :

Fenêtre de terminal
ssh -X user@serveur
virt-manager
  1. Nouvelle VM

    Cliquez sur File → New Virtual Machine (ou l’icône ➕)

  2. Choisir la source d’installation

    • Sélectionnez Local install media (ISO image or CDROM)
    • Cliquez Forward
  3. Sélectionner l’ISO

    • Cliquez BrowseBrowse Local
    • Naviguez jusqu’à votre fichier ISO
    • Le système détecte automatiquement l’OS (sinon, décochez “Automatically detect” et choisissez manuellement)
  4. Configurer CPU et RAM

    ParamètreValeur recommandée (lab)Production
    Memory2048 MB4096+ MB
    CPUs24+
  5. 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/)
  6. 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
  7. 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
  8. Installation

    La console graphique s’ouvre. Suivez l’assistant d’installation de votre OS.

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
Fenêtre de terminal
virt-install \
--name <nom> \
--memory <MB> \
--vcpus <nombre> \
--disk <options> \
--network <options> \
--cdrom <chemin-iso> \
--os-variant <type>
Fenêtre de terminal
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 \
--noautoconsole

Décryptage des options :

OptionSignification
--name ubuntu-testNom de la VM dans libvirt
--memory 20482 GB de RAM
--vcpus 22 vCPUs
--disk size=20,format=qcow2,pool=defaultDisque 20 GB QCOW2 dans le pool default
--network network=defaultConnecté au réseau NAT
--cdrom /chemin/...ISO d’installation
--os-variant ubuntu24.04Optimisations pour Ubuntu 24.04
--graphics vncConsole VNC (pour virt-manager)
--noautoconsoleNe pas ouvrir la console automatiquement
Fenêtre de terminal
virt-install --osinfo list | grep -i ubuntu

Sortie réelle :

ubuntu25.10, ubuntuquesting
ubuntu-stable-latest, ubuntu25.04, ubuntuplucky
ubuntu24.10, ubuntuoracular
ubuntu-lts-latest, ubuntu24.04, ubuntunoble
ubuntu23.10, ubuntumantic
ubuntu22.04, ubuntujammy
ubuntu20.04, ubuntufocal
ubuntu18.04, ubuntubionic
Fenêtre de terminal
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 \
--noautoconsole

L’option --boot uefi utilise automatiquement OVMF si installé.

Pour un serveur headless, utilisez une console série :

Fenêtre de terminal
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 :

OptionEffet
--location au lieu de --cdromPermet d’injecter des paramètres kernel
--graphics nonePas de console graphique
--console pty,target_type=serialConsole série
--extra-args 'console=ttyS0'Redirige la sortie vers la console série

Vous accéderez à la VM via :

Fenêtre de terminal
virsh console ubuntu-server

Si vous avez configuré un bridge br0 (guide réseau) :

Fenêtre de terminal
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 \
--noautoconsole

La 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 :

  1. Télécharger l’image cloud

    Fenêtre de terminal
    cd /var/lib/libvirt/images
    sudo wget https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img
  2. 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
  3. Créer la VM avec --import

    Fenê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
Fenêtre de terminal
virsh list --all

Sortie réelle :

Id Name State
-----------------------------
1 ubuntu-test running

Console graphique (via virt-manager) :

Fenêtre de terminal
virt-viewer ubuntu-test

Console série (si configurée) :

Fenêtre de terminal
virsh console ubuntu-test
# Pour sortir : Ctrl+]
Fenêtre de terminal
# Démarrer
virsh start ubuntu-test
# Arrêter proprement (ACPI shutdown)
virsh shutdown ubuntu-test
# Arrêt forcé (équivalent couper le courant)
virsh destroy ubuntu-test
Fenêtre de terminal
virsh dominfo ubuntu-test

Sortie réelle :

Id: 1
Name: ubuntu-test
UUID: 09978674-04a9-4f02-a61f-18615ddedca1
OS Type: hvm
State: running
CPU(s): 2
CPU time: 8,1s
Max memory: 2097152 KiB
Used memory: 2097152 KiB
Persistent: yes
Autostart: disable
Managed save: no
Security model: apparmor
Security DOI: 0
Security label: libvirt-09978674-... (enforcing)
Fenêtre de terminal
virsh autostart ubuntu-test
Besoinvirt-managervirt-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é
ErreurCauseSolution
ERROR: --os-variant unknownos-variant incorrectLister avec virt-install --osinfo list
Permission denied sur l’ISOISO pas lisible par qemuchmod 644 ou déplacer dans /var/lib/libvirt/images/
Cannot access storagePool non démarrévirsh pool-start default
Network not foundRéseau default inactifvirsh net-start default
Unable to complete installRAM insuffisanteAugmenter --memory
UEFI firmware not foundOVMF non installéapt install ovmf ou dnf install edk2-ovmf
  • 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)
  1. virt-manager = interface graphique, idéale pour découvrir et gérer un homelab

  2. virt-install = ligne de commande, idéale pour l’automatisation et les scripts

  3. Options essentielles : --name, --memory, --vcpus, --disk, --network, --cdrom/--location

  4. os-variant active les optimisations pour l’OS cible — toujours le spécifier

  5. UEFI (--boot uefi) pour les OS modernes, BIOS par défaut pour la compatibilité

  6. Console série (--graphics none --console pty) pour les serveurs headless

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.