Migration Serveur Physique vers VM Proxmox
📋 Informations du Serveur Source
- Serveur : serveur physique ( dans mon cas : chez OVH )
- OS : Debian xx
- Disque : 2 To (1,8 To partition principale + 511 Mo swap)
- Utilisation : ~15 Go seulement actuellement
- SSH : Port 22
- Type de boot : BIOS Legacy
🎯 Objectif
Cloner le serveur physique OVH vers une machine virtuelle Proxmox , en utilisant rsync pour ne transférer que les données utilisées.
✅ Étape 1 : Création de la VM sur Proxmox
- Créer une nouvelle VM (ex: VM ID 100)
- Configuration :
- Disque : 100-200 Go (largement suffisant pour 15 Go de données)
- Type de boot : BIOS
- RAM/CPU : 2 CPU – 2Go RAM
- Attacher une ISO Debian Live
- Démarrer la VM sur le Live CD
🔧 Étape 2 : Préparation du Disque dans la VM
Dans la console de la VM (Live CD) :
# Créer les partitions
sudo fdisk /dev/sda
# Commandes : n, p, 1, Entrée, +95G, w
# Puis : n, p, 2, Entrée, Entrée, t, 2, 82, w
# Formater les partitions
sudo mkfs.ext4 /dev/sda1
sudo mkswap /dev/sda2
# Monter la partition principale
sudo mkdir -p /mnt/restore
sudo mount /dev/sda1 /mnt/restore
# Installer les outils nécessaires
sudo apt-get update
sudo apt-get install -y rsync pv openssh-client
📦 Étape 3 : Synchronisation des Données avec rsync
Depuis la VM, récupérer les données du serveur OVH :
# Tester la connexion SSH (port 22 ou autre selon config)
ssh user@IP_SERVEUR_OVH
# Lancer la synchronisation rsync
cd /mnt/restore
sudo rsync -aAXvP --delete \
-e "ssh -p 22" \
--exclude=/dev/* \
--exclude=/proc/* \
--exclude=/sys/* \
--exclude=/tmp/* \
--exclude=/run/* \
--exclude=/mnt/* \
--exclude=/media/* \
--exclude=/lost+found \
--exclude=/var/cache/* \
--exclude=/var/tmp/* \
user@IP_SERVEUR_OVH:/ /mnt/restore/
Options rsync utilisées :
-a : Mode archive (préserve permissions, liens symboliques, timestamps, etc.)
-A : Préserve les ACLs
-X : Préserve les attributs étendus
-v : Mode verbose
-P : Affiche la progression et permet la reprise
–delete : Synchronise les suppressions –
-e « ssh -p 22 » : Utilise SSH sur le port différent que 22
🗂️ Étape 4 : Finalisation du Système
4.1 – Recréer les répertoires système
cd /mnt/restore
sudo mkdir -p proc sys dev tmp run mnt media
4.2 – Configuration du fstab
# Monter pour le chroot
sudo mount --bind /dev /mnt/restore/dev
sudo mount --bind /proc /mnt/restore/proc
sudo mount --bind /sys /mnt/restore/sys
# Entrer dans le système cloné
sudo chroot /mnt/restore
# Récupérer les UUID des partitions
blkid /dev/sda1
blkid /dev/sda2
# Éditer le fstab
nano /etc/fstab
Contenu du /etc/fstab :
UUID=VOTRE_UUID_SDA1 / ext4 errors=remount-ro 0 1
UUID=VOTRE_UUID_SDA2 none swap sw 0 0
🚀 Étape 5 : Installation de GRUB
5.1 – Installer GRUB depuis le Live CD
# Sortir du chroot si vous y êtes
exit
# Installer les paquets GRUB dans le Live CD
sudo apt-get update
sudo apt-get install -y grub-pc-bin grub-common grub-pc
# Installer GRUB sur le disque
sudo grub-install --target=i386-pc --boot-directory=/mnt/restore/boot --recheck --force /dev/sda
Note : –target=i386-pc pour BIOS / Legacy
5.2 – Générer la configuration GRUB
# Re-rentrer en chroot
sudo mount --bind /dev /mnt/restore/dev
sudo mount --bind /proc /mnt/restore/proc
sudo mount --bind /sys /mnt/restore/sys
sudo chroot /mnt/restore
# Générer la config GRUB
update-grub
# Vérifier que tout est ok
ls -la /boot/grub/grub.cfg
cat /boot/grub/grub.cfg | grep menuentry
🔄 Étape 6 : Modifications Post-Migration (Optionnel)
Installation de paquets supplémentaires
Dans le chroot, vous pouvez installer des paquets :
# Agent Proxmox (recommandé)
apt-get update
apt-get install -y qemu-guest-agent
systemctl enable qemu-guest-agent
# Autres paquets utiles
apt-get install -y openssh-server sudo curl
Changement de kernel (optionnel)
# Installer un kernel plus récent depuis les backports ( xxx : distrib , par ex trixie)
echo "deb http://deb.debian.org/debian xxxx-backports main" >> /etc/apt/sources.list
apt-get update
apt-get install -y -t xxxx-backports linux-image-amd64
# Regénérer GRUB
update-grub
Désactiver e2fsck au boot
Méthode 1 – via fstab (déjà fait ci-dessus) : Mettre 0 en dernier champ dans /etc/fstab
Méthode 2 – via tune2fs :
tune2fs -c 0 -i 0 /dev/sda1
🎬 Étape 7 : Premier Démarrage
7.1 – Nettoyage et démontage
# Sortir du chroot
exit
# Démonter proprement
sudo umount /mnt/restore/dev
sudo umount /mnt/restore/proc
sudo umount /mnt/restore/sys
sudo umount /mnt/restore
# Redémarrer
sudo reboot
7.2 – Configuration Proxmox avant le boot
Important : 1. Dans l’interface Proxmox, aller dans les options de la VM 2. Retirer l’ISO du lecteur CD/DVD 3. Vérifier l’ordre de boot (Hard Disk en premier) 4. Démarrer la VM
7.3 – Vérifications post-boot
Une fois la VM démarrée :
# Vérifier le système de fichiers
df -h
# Vérifier le swap
swapon -s
# Vérifier le kernel
uname -a
# Vérifier les services
systemctl status
# Activer le swap si nécessaire
swapon -a
🔍 Dépannage
La VM ne boot pas
- Redémarrer avec l’ISO Live
- Remonter le système :
sudo mount /dev/sda1 /mnt/restore
sudo mount --bind /dev /mnt/restore/dev
sudo mount --bind /proc /mnt/restore/proc
sudo mount --bind /sys /mnt/restore/sys
sudo chroot /mnt/restore
- Réinstaller GRUB :
grub-install --force /dev/sda
update-grub
Erreur « unknown filesystem » avec grub-probe
Ignorez l’avertissement si update-grub se termine quand même avec succès. Sinon, créez manuellement le grub.cfg (voir section installation GRUB).
Réseau ne fonctionne pas dans le chroot
# Sortir du chroot
exit
# Copier la configuration DNS
sudo cp /etc/resolv.conf /mnt/restore/etc/resolv.conf
# Re-rentrer en chroot
sudo chroot /mnt/restore
✨ Avantages de cette Méthode
✅ Rapide : Seulement 15 Go transférés au lieu de 2 To
✅ Sans interruption : Le serveur OVH reste en production pendant la migration
✅ Sécurisé : Transfert via SSH chiffré
✅ Reprise possible : rsync permet de reprendre en cas d’interruption
✅ Préserve tout : Liens symboliques, permissions, ACLs, attributs
✅ Testable : Possibilité de tester la VM avant de couper l’ancien serveur
📝 Notes Importantes
- Le serveur source reste accessible pendant toute la migration
- La VM peut être testée avant de désactiver le serveur OVH
- Les données peuvent être re-synchronisées avec rsync si nécessaire
- Pensez à installer qemu-guest-agent pour une meilleure intégration Proxmox
🎓 Ce que rsync préserve
- ✅ Liens symboliques
- ✅ Liens durs (hardlinks)
- ✅ Permissions (chmod)
- ✅ Propriétaires (chown)
- ✅ Timestamps
- ✅ Attributs étendus
- ✅ ACLs
- ✅ Fichiers spéciaux (devices)