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 tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn