VirtualBox · 4 min read · Jan 05, 2026
VirtualBox : Création de sauvegardes et de clones de machines virtuelles en cours d'exécution (sans temps d'arrêt) avec des instantanés LVM
VirtualBox : Création de sauvegardes et de clones de machines virtuelles en cours d’exécution (sans temps d’arrêt) avec des instantanés LVM
Version 1.0
Auteur : Falko Timme
Suivez-moi sur Twitter
Si vous utilisez des volumes LVM pour vos VM VirtualBox (comme montré dans le tutoriel Utilisation de périphériques RAW dans les VM VirtualBox), vous pouvez créer des sauvegardes et des clones d’une VM en cours d’exécution sans l’arrêter. Ce tutoriel montre exactement cela : utiliser des instantanés LVM pour créer des sauvegardes et des clones de VM VirtualBox en cours d’exécution sans temps d’arrêt.
Je ne donne aucune garantie que cela fonctionnera pour vous !
1 Remarque préliminaire
Parce que j’ai installé VirtualBox sur un serveur sans tête, j’utilise phpvirtualbox comme interface graphique de VirtualBox ici. Si vous utilisez l’interface graphique originale de VirtualBox, c’est tout à fait acceptable.
Ma machine virtuelle en cours d’exécution (dont je veux faire une sauvegarde) s’appelle vm10, et elle est située sur le volume LVM /dev/vg0/vm10.
Assurez-vous que vous êtes connecté en tant que root (tapez
sudo supour devenir root), car nous devons exécuter toutes les étapes de ce tutoriel en tant qu’utilisateur root.
2 Créer une sauvegarde d’une VM en cours d’exécution avec des instantanés LVM
Pour créer une sauvegarde de la machine virtuelle en cours d’exécution vm10, je crée d’abord un instantané LVM de /dev/vg0/vm10 appelé vm10_snap. Les instantanés peuvent être plus petits que le volume original - 512 Mo seraient probablement suffisants, mais j’utilise ici une taille de 5 Go :
lvcreate -L5G -s -n vm10_snap /dev/vg0/vm10Ensuite, j’utilise dd pour lire le contenu de l’instantané et le diriger vers gzip pour créer une image de sauvegarde gzippée dans le répertoire /backup (vous pouvez, bien sûr, utiliser n’importe quel autre répertoire) :
dd if=/dev/vg0/vm10_snap bs=64k | gzip -c > /backup/vm10.img.gzC’est tout - votre sauvegarde de vm10 est maintenant située dans /backup/vm10.img.gz.
Maintenant, supprimez l’instantané LVM :
lvremove -f /dev/vg0/vm10_snap3 Restaurer à partir d’une sauvegarde/Cloner à partir d’une sauvegarde
Restaurer et cloner est essentiellement la même chose, donc je vais montrer comment créer un clone appelé vm11 à partir de la sauvegarde que nous venons de créer.
Tout d’abord, créez un volume LVM de la même taille que le volume LVM original (20 Go dans cet exemple) :
lvcreate -L20G -n vm11 vg0Restaurer la sauvegarde de vm10 vers le nouveau volume logique /dev/vg0/vm11 :
gunzip -c /backup/vm10.img.gz | dd of=/dev/vg0/vm11 bs=64kEnsuite, créez un fichier .vmdk pour /dev/vg0/vm11 (par exemple, vm11.vmdk) afin que nous puissions l’utiliser avec VirtualBox. Il est probablement préférable de le créer dans le répertoire personnel de l’utilisateur sous lequel VirtualBox s’exécute (par exemple, /home/vbox si vous utilisez phpvirtualbox) - le fichier doit également appartenir à cet utilisateur :
cd /home/vbox
VBoxManage internalcommands createrawvmdk -filename vm11.vmdk -rawdisk /dev/vg0/vm11
chown vbox:vbox vm11.vmdkEnsuite, allez dans votre interface graphique VirtualBox (interface graphique originale de VirtulBox ou phpvirtualbox) et cliquez sur Nouveau :

Cliquez sur Suivant>> dans l’assistant de création de nouvelle machine virtuelle :

Spécifiez le nom de la nouvelle VM et sélectionnez le même système d’exploitation et la même version que ceux utilisés par la VM originale :

Spécifiez la mémoire du clone :

Sur l’écran du disque dur virtuel, sélectionnez Utiliser un disque dur virtuel existant et cliquez sur l’icône Choisir un fichier de disque dur virtuel :

Sélectionnez le fichier vm11.vmdk et cliquez sur OK :

Cliquez sur Suivant>> :

Cliquez sur Créer :

Avant de démarrer le clone, vous voudrez peut-être ajuster certains paramètres, par exemple si la VM originale utilise le pontage, vous voudrez peut-être sélectionner le pontage pour le clone dans la configuration réseau également :


Maintenant, cliquez sur Démarrer pour démarrer le clone :

Lors du démarrage, vous remarquerez probablement que la configuration réseau se bloque :

Cela se produit parce que VirtualBox a attribué une adresse MAC différente pour l’interface eth0 au clone, mais le fichier /etc/udev/rules.d/70-persistent-net.rules du clone utilise toujours l’adresse MAC originale. Après le démarrage, connectez-vous au clone et exécutez…
ifconfig… et vous verrez qu’eth0 est manquant (en raison du problème d’adresse MAC), ce qui signifie que le clone ne peut pas utiliser le réseau :

Pour résoudre le problème, ouvrez /etc/udev/rules.d/70-persistent-net.rules dans le clone…
vi /etc/udev/rules.d/70-persistent-net.rules… et commentez la ligne eth0 (et également la ligne eth1 qui a été ajoutée lors du démarrage parce que l’adresse MAC d’eth0 était incorrecte). Cela garantit qu’au prochain démarrage, le système ajoutera une nouvelle ligne eth0 avec la bonne adresse MAC.

Maintenant, redémarrez le clone. Après le redémarrage, son réseau devrait fonctionner, et vous devriez voir eth0 dans la sortie de
ifconfig
Félicitations, vous avez cloné avec succès une VM sans arrêter la VM originale.
4 Liens
- VirtualBox : http://www.virtualbox.org/
- phpvirtualbox : http://code.google.com/p/phpvirtualbox/
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.