Proxmox: migrer un container LXC vers une VM

Procédure

Préparation

Créer une machine virtuelle

Booter avec un cd de récupération (Par exemple systemrescue cd)

Créer une partion ext4 et un swap

Rendre la partition bootable

éteindre

Montage du disque de la VM

Sur le proxmox:

apt install nbd-client modprobe nbd max_part=3 qemu-nbd -c /dev/nbd0 /var/lib/vz/images/100/vm-100-disk-0.qcow2 mount /dev/nbd0p2 /media

Montage du disque du container et migration des données

pct mount 2101 cd /var/lib/lxc/2101/rootfs rsync -a -P * /media

Changer les permissions sur les données

lancer le script suivant dans le répertoire media:

#!/bin/bash UID_SHIFT=100000 for OLD_UID in `awk -F: '{print $3}' etc/passwd` do NEW_UID=$(echo $(($OLD_UID + $UID_SHIFT))) echo "USER Change from $OLD_UID TO $NEW_UID" find . -uid $NEW_UID -exec chown -h $OLD_UID {} \; done for OLD_UID in `awk -F: '{print $3}' etc/group` do NEW_UID=$(echo $(($OLD_UID + $UID_SHIFT))) echo "GROUP Change from $OLD_UID TO $NEW_UID" find . -gid $NEW_UID -exec chgrp -h $OLD_UID {} \; done

Démontage des répertoires

umount /media qemu-nbd -d /dev/nbd0 rmmod nbd pct unmount 2101

Démontage des répertoires

démarrer la vm avec le disque d'installation de l'os d'origine en mode rescue

mount /dev/sda2 /mnt #mount /dev/sda1 /mnt/boot mount -o bind /sys /mnt/sys mount -o bind /dev /mnt/dev mount -t proc /proc /mnt/proc chroot /mnt apt install grub2 apt install linux-image-x64 #centos: grub2-install grub2-mkconfig -o /boot/grub2/grub.cfg f #debian: grub-install /dev/sda --force

faire un fichier /etc/fstab

attention que le ownership de la racine / n'est pas bien indiqué vérifier ls / -ld et modifier si nécessaire

Sources

https://forum.proxmox.com/threads/migrate-lxc-to-kvm.56298/