
Vous voulez créer des machines virtuelles sur votre serveur Linux ? Ce guide vous accompagne pour installer KVM/libvirt en 15 minutes. À la fin, vous aurez un hôte de virtualisation fonctionnel, prêt à créer vos premières VMs.
Quick path (5 commandes)
Section intitulée « Quick path (5 commandes) »Si vous êtes pressé et sur une distribution standard (Ubuntu/Debian ou RHEL/Rocky) :
# 1. Vérifier le CPUegrep -c '(vmx|svm)' /proc/cpuinfo # Doit être > 0
# 2. Installersudo apt install -y qemu-kvm libvirt-daemon-system libvirt-clients virtinst
# 3. Activersudo systemctl enable --now libvirtd
# 4. Permissionssudo usermod -aG libvirt,kvm $USER && newgrp libvirt
# 5. Testervirt-host-validate && virsh -c qemu:///system list --all# 1. Vérifier le CPUegrep -c '(vmx|svm)' /proc/cpuinfo # Doit être > 0
# 2. Installersudo dnf install -y @virtualization
# 3. Activersudo systemctl enable --now libvirtd
# 4. Permissionssudo usermod -aG libvirt $USER && newgrp libvirt
# 5. Testervirt-host-validate && virsh -c qemu:///system list --allCe que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Vérifier que votre CPU supporte la virtualisation
- Installer les paquets nécessaires selon votre distribution
- Configurer les permissions pour gérer les VMs sans sudo
- Valider l’installation avec les commandes de diagnostic
Prérequis
Section intitulée « Prérequis »- Un serveur ou PC avec un processeur Intel VT-x ou AMD-V
- Un système Linux (Debian/Ubuntu ou RHEL/Rocky/Fedora)
- Accès root ou sudo
Étape 1 : Vérifier le support CPU
Section intitulée « Étape 1 : Vérifier le support CPU »La virtualisation KVM nécessite un processeur avec les extensions Intel VT-x ou AMD-V. Sans ce support matériel, vos VMs fonctionneront en émulation pure (très lent).
Vérifier les extensions CPU
Section intitulée « Vérifier les extensions CPU »# Compter le nombre de cœurs avec support virtualisationegrep -c '(vmx|svm)' /proc/cpuinfoRésultat attendu : un nombre supérieur à 0.
| Résultat | Signification |
|---|---|
0 | Pas de support ou désactivé dans le BIOS |
4, 8, 16… | Support activé (nombre = cœurs logiques) |
Identifier le type de CPU
Section intitulée « Identifier le type de CPU »# Intel ou AMD ?grep -E 'vmx|svm' /proc/cpuinfo | head -1| Extension | Fabricant | Module kernel |
|---|---|---|
vmx | Intel | kvm_intel |
svm | AMD | kvm_amd |
Étape 2 : Installer les paquets
Section intitulée « Étape 2 : Installer les paquets »L’installation diffère selon votre distribution. Sélectionnez l’onglet correspondant :
Mise à jour du système
Section intitulée « Mise à jour du système »sudo apt update && sudo apt upgrade -yInstallation des paquets KVM/libvirt
Section intitulée « Installation des paquets KVM/libvirt »sudo apt install -y \ qemu-kvm \ libvirt-daemon-system \ libvirt-clients \ virtinst \ virt-managerDétail des paquets :
| Paquet | Rôle |
|---|---|
qemu-kvm | QEMU avec accélération KVM |
libvirt-daemon-system | Daemon libvirtd + configuration système |
libvirt-clients | Outils CLI (virsh) |
virtinst | Outil virt-install pour créer des VMs |
virt-manager | Interface graphique (optionnel sur serveur) |
Vérification avec kvm-ok (Ubuntu)
Section intitulée « Vérification avec kvm-ok (Ubuntu) »Sur Ubuntu, un utilitaire dédié vérifie la configuration :
sudo apt install -y cpu-checkerkvm-okRésultat attendu :
INFO: /dev/kvm existsKVM acceleration can be usedMise à jour du système
Section intitulée « Mise à jour du système »sudo dnf update -yInstallation du groupe de virtualisation
Section intitulée « Installation du groupe de virtualisation »sudo dnf install -y @virtualizationCe groupe installe automatiquement :
| Paquet | Rôle |
|---|---|
qemu-kvm | QEMU avec accélération KVM |
libvirt | Daemon et bibliothèques |
libvirt-client | Outils CLI (virsh) |
virt-install | Création de VMs en CLI |
virt-viewer | Console graphique |
Installation de virt-manager (optionnel)
Section intitulée « Installation de virt-manager (optionnel) »Si vous avez un environnement graphique :
sudo dnf install -y virt-managerVérification du support KVM
Section intitulée « Vérification du support KVM »lsmod | grep kvmRésultat attendu (Intel) :
kvm_intel 380928 0kvm 1036288 1 kvm_intelRésultat attendu (AMD) :
kvm_amd 139264 0kvm 1036288 1 kvm_amdMise à jour du système
Section intitulée « Mise à jour du système »sudo dnf update -yInstallation du groupe de virtualisation
Section intitulée « Installation du groupe de virtualisation »sudo dnf install -y @virtualizationVérification
Section intitulée « Vérification »# Modules KVM chargés ?lsmod | grep kvm
# Outil de vérificationvirt-host-validateRésultat attendu de virt-host-validate :
QEMU: Checking for hardware virtualization : PASSQEMU: Checking if device /dev/kvm exists : PASSQEMU: Checking if device /dev/kvm is accessible : PASS...Étape 3 : Activer le service libvirt
Section intitulée « Étape 3 : Activer le service libvirt »Le daemon libvirt doit être démarré et activé au boot.
-
Activer et démarrer le service
Fenêtre de terminal sudo systemctl enable --now libvirtd -
Vérifier le statut
Fenêtre de terminal sudo systemctl status libvirtdRésultat attendu :
Active: active (running) -
Vérifier la socket
Fenêtre de terminal ls -la /run/libvirt/libvirt-sockCe fichier socket permet la communication avec libvirt.
Étape 4 : Configurer les permissions
Section intitulée « Étape 4 : Configurer les permissions »Par défaut, seul root peut gérer les VMs. Pour éviter d’utiliser sudo à chaque commande, ajoutez votre utilisateur aux groupes appropriés.
# Ajouter l'utilisateur aux groupes libvirt et kvmsudo usermod -aG libvirt $USERsudo usermod -aG kvm $USER# Ajouter l'utilisateur au groupe libvirtsudo usermod -aG libvirt $USERVérifier l’appartenance aux groupes
Section intitulée « Vérifier l’appartenance aux groupes »groups $USERRésultat attendu : ... libvirt kvm ...
Étape 5 : Configurer l’URI par défaut
Section intitulée « Étape 5 : Configurer l’URI par défaut »Résumé : libvirt a deux modes — system (serveurs) et session (desktop). Si virsh net-list est vide sans sudo, vous êtes probablement connecté à session au lieu de system.
Solution rapide (recommandée pour serveurs) :
# Ajouter dans ~/.bashrc ou ~/.zshrcexport LIBVIRT_DEFAULT_URI="qemu:///system"source ~/.bashrcVérification :
virsh uri# Doit afficher : qemu:///systemÉtape 6 : Valider l’installation
Section intitulée « Étape 6 : Valider l’installation »Plusieurs commandes permettent de confirmer que tout fonctionne.
Test 1 : Lister les VMs
Section intitulée « Test 1 : Lister les VMs »# Si LIBVIRT_DEFAULT_URI est configuré :virsh list --all
# Sinon, précisez l'URI :virsh -c qemu:///system list --allRésultat attendu (installation fraîche) :
Id Name State--------------------Une liste vide est normale — vous n’avez pas encore créé de VM.
Test 2 : Vérifier le réseau par défaut
Section intitulée « Test 2 : Vérifier le réseau par défaut »virsh net-list --allRésultat attendu :
Name State Autostart Persistent-------------------------------------------- default active yes yesSi le réseau default n’est pas actif (State = inactive) :
virsh net-start defaultvirsh net-autostart defaultTest 3 : Vérifier (et créer) le pool de stockage
Section intitulée « Test 3 : Vérifier (et créer) le pool de stockage »Le pool default peut exister ou non selon votre distribution et méthode d’installation.
virsh pool-list --allSi le pool existe déjà (virt-manager l’a peut-être créé) :
Name State Autostart------------------------------- default active yesSi le pool est absent (fréquent sur installation minimale) :
Créer le pool default :
# Définir le pool (pointe vers /var/lib/libvirt/images/)virsh pool-define-as default dir --target /var/lib/libvirt/images
# Créer le répertoire si nécessairesudo mkdir -p /var/lib/libvirt/images
# Démarrer et activer au bootvirsh pool-start defaultvirsh pool-autostart defaultVérification :
virsh pool-list --allRésultat attendu :
Name State Autostart------------------------------- default active yesLe pool default pointe vers /var/lib/libvirt/images/.
Test 4 : Validation complète (recommandé)
Section intitulée « Test 4 : Validation complète (recommandé) »virt-host-validateExemple de résultat :
QEMU: Checking for hardware virtualization : PASS QEMU: Checking if device /dev/kvm exists : PASS QEMU: Checking if device /dev/kvm is accessible : PASS QEMU: Checking if device /dev/vhost-net exists : PASS QEMU: Checking if device /dev/net/tun exists : PASS QEMU: Checking for cgroup 'memory' controller support : PASS QEMU: Checking for device assignment IOMMU support : WARN (...) QEMU: Checking for secure guest support : WARN (...)Récapitulatif des fichiers importants
Section intitulée « Récapitulatif des fichiers importants »| Chemin | Contenu |
|---|---|
/etc/libvirt/ | Configuration libvirt |
/etc/libvirt/qemu/ | Définitions XML des VMs |
/var/lib/libvirt/images/ | Disques virtuels (pool default) |
/run/libvirt/libvirt-sock | Socket de communication |
/var/log/libvirt/qemu/ | Logs des VMs |
Erreurs fréquentes
Section intitulée « Erreurs fréquentes »| Erreur | Cause probable | Solution |
|---|---|---|
Permission denied sur socket | Groupe libvirt non actif | Se déconnecter/reconnecter ou newgrp libvirt |
/dev/kvm n’existe pas | Virtualisation désactivée | Activer VT-x/AMD-V dans le BIOS, puis modprobe kvm kvm_intel |
virsh net-list vide | Connecté à qemu:///session | Utiliser virsh -c qemu:///system ou configurer LIBVIRT_DEFAULT_URI |
libvirtd inactif / n’existe pas | Service non démarré ou démons modulaires | systemctl enable --now libvirtd ou activer les sockets modulaires |
À retenir
Section intitulée « À retenir »-
Vérifier le CPU avec
egrep -c '(vmx|svm)' /proc/cpuinfo— doit être > 0 -
Installer les paquets :
qemu-kvm,libvirt-daemon-system,virtinst(Debian) ou@virtualization(RHEL) -
Activer libvirt :
systemctl enable --now libvirtd(ou sockets modulaires sur distros récentes) -
Configurer les permissions :
usermod -aG libvirt,kvm $USERpuis se reconnecter -
Valider avec
virt-host-validate—/dev/kvmdoit être PASS
Prochaines étapes
Section intitulée « Prochaines étapes »Références
Section intitulée « Références »- Ubuntu Server — libvirt — Documentation officielle Ubuntu
- Red Hat — Installing virtualization packages — Documentation RHEL 9
- ArchWiki — KVM — Guide communautaire détaillé
- libvirt.org — Documentation officielle libvirt