Introduction
Cette page concernant la virtualisation va porter principalement sur QEMU/KVM sous GNU/Linux.
Pour d’autres technologies portez-vous sur les liens suivants :
Concepts
Sous GNU/Linux, plusieurs technologies existent pour créer des machines virtuelles.
On va se concentrer sur QEMU qui a de bonnes performances pour émuler des machines avec une architecture différente de la sienne (par exemple émuler une architecture ARM sur notre ordinateur de bureau qui est en x86_64).
QEMU ne propose pas d’interface graphique par défaut. On va donc utiliser libvirt pour disposer de solutions d’interface graphique.
Il faudra donc choisir une interface parmi :
- (graphique) Boxes souvent utilisé par GNOME,
- (web) Cockpit qui est une interface Web. Ce qui a pour avantage d’être installé sur une machine serveur par exemple,
- (graphique) Virt-manager qui permet à la fois de gérer des machines QEMU/KVM, Xen et LXC,
- (ligne de commande) Virsh qui permet de gérer les machines virtuelles en ligne de commande.
Installation
Sous ArchLinux
On peut :
- soit installer qemu-desktop pour du x86_64,
- soit installer qemu-full pour installer plus d’architectures.
Récap sur ma machine :
paru -S qemu-desktop virt-manager dmidecode
sudo gpasswd -a od libvirt # remplacez od par votre nom d'utilisateur
sudo gpasswd -a od libvirt-qemu # remplacez od par votre nom d'utilisateur
# Redémarrer la session graphique
sudo systemctl start virtlogd.socket libvirtd.socket
Sous Ubuntu/Debian
sudo apt-get update
sudo adduser od libvirt # remplacez od par votre nom d'utilisateur
# Redémarrer la session graphique
sudo apt install qemu-system libvirt-daemon-system virt-manager
Utilisation de virt-manager
Je vous conseille l’excellent message sur le forum debian.net pour savoir comment configurer étape par étape une machine virtuelle.
Astuces
IP statique pour Ubuntu Server 24.04
- Vérifiez l’adresse IP actuelle via
ip addr
- Modifiez le fichier /etc/netplan/50-cloud-init.yaml avec les informations nécessaires :
network:
ethernets:
enp1s0:
dhcp4: no
addresses:
- 192.168.122.10/24
routes:
- to: default
via: 192.168.122.1
nameservers:
addresses: [1.1.1.1, 1.0.0.1]
version: 2
Puis mettez à jour avec la commande suivante :
sudo netplan apply
Si vous étiez en SSH… forcément l’IP a changé, donc cela coupe/plante la connexion.