Table des matières
Convertir un container LXC en VM
Afin de convertir un container LXC en VM, il va falloir simplement créer la machine, copier tout les fichiers et réinstaller les briques manquantes.
Préparation de la VM
Pour commencer il va falloir reproduire les disques durs comme ils le sont dans le container, peut importe la taille tant qu'ils peuvent contenir l'intégralité des DATAS du containers et qu'ils aient les mêmes point de montage.
On va ensuite boot sur une distribution live,formater les disques puis les monter afin d'obtenir une arborescence identique au container, par exemple comme ceci :
Container | VM en live |
---|---|
/ | /mnt/root |
/mnt/datas | /mnt/root/mnt/datas |
n'oubliez pas de faire une partition de swap.
Transfert des données
et il vous faut rsync la racine du container :
# rsync -aAXv root@lxc.exemple.net:/ --exclude=/proc --exclude=/sys --exclude=/dev /mnt/root/
Il va y avoir des erreurs lors du rsync et c'est normal.
Entrer dans l’environnement virtuel
Il va maintenant falloir supprimer le contenu des dossiers /mnt/root/proc,/mnt/root/dev et /mnt/root/sys
# mkdir /mnt/root/proc/ /mnt/root/sys/ /mnt/root/dev/
et il va ensuite falloir monter ceux de la VM :
# mount -o bind /proc /mnt/root/proc && mount -o bind /sys /mnt/root/sys && mount -o bind /dev /mnt/root/dev && mount -o bind /dev/pts /mnt/root/dev/pts/
et ensuite entrer dans l’environnement virtuel avec :
# chroot /mnt/root/
et à partir de là, vous êtes dans votre futur VM.
Configuration de l'OS
Maintenant il va falloir installer les éléments necessaire au boot et à l'OS, dans mon exemple, je suis sous debian.
# apt install linux-image-amd64 grub2 console-setup
et suivre les petites demandes rapport au langage, puis d'installer le bootloader :
# update-grub && grub-install --force --recheck /dev/sda
Et enfin créer le fichier /etc/fstab et de modifier la configuration réseau.
Normalement, un reboot suffit !