Outils pour utilisateurs

Outils du site


proxmox:lxc-vers-vm

Ceci est une ancienne révision du document !


Proxmox: migrer un container LXC vers une VM

Procédure

Préparation

  1. Créer une machine virtuelle
  2. Booter avec un cd de récupération (Par exemple systemrescue cd)
  3. Créer une partion ext4 et un swap
  4. Rendre la partition bootable
  5. é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-amd64
 
#centos:
grub2-install
grub2-mkconfig -o /boot/grub2/grub.cfg f
 
#debian: 
grub-install /dev/sda --force
grub-mkconfig > /boot/grub/grub.cfg

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

proxmox/lxc-vers-vm.1679755531.txt.gz · Dernière modification : de root