Le disque dur de mon serveur commencant à lacher - apparition de badblocks faisant crasher rtorrent- je me suis acheté un nouveau disque dur de 320go afin de le remplacer. Ne voulant pas tout réinstaller et configurer, j'ai choisi de directement migrer tout l'ancien système dessus. Heureusement j'avais déjà effectué une opération similaire quelques mois plus tôt pour le serveur du BES, lorsqu'ils avaient migré vers du RAID.

Je vous recommande de faire les manipulations au niveau 1, ainsi il n'y aura pas de démons qui tourne et d'autres personnes ne pourront pas se connecter a votre serveur, ca vous évitera la mauvaise surprise d'avoir des fichiers modifiés après ou pendant la copie des fichiers et donc perdu. Tapez simplement init 1 en console pour passer au niveau 1. Le désavantage c'est que vous ne pourrez pas effectuer la migration via SSH.

Voici un aide-mémoire de la marche à suivre:

Installer le nouveau disque dur dans le PC Recréer la table des partitions dans fdisck

J'ai généralement un root en première partition de 5 à 10go (hdc1), un swap de 512mo (hdc2) puis la home (hdc3) avec ce qu'il reste.
Rappel pour les types de partitions 82 = Linux, 83 = Swap

Créer les partitions

mkswap /dev/hdXY pour refaire la swap
et mkfs.reiserfs ou mkfs.ext3 pour les autre partitions selon vos croyances religieuses

Monter les partitions nouvellement créée

mount /dev/hdc1 /home/newRoot
mount /dev/hdc3 /home/newHome

Déplacer les anciens fichiers vers les nouvelles partitions.

Utilisez cp -ax
-x pour rester sur la même partition
et -a pour le mode archive qui est équivalent à -dpR. C'est à dire qu'il copie récursivement, préserve les liens et les attributs (droits, proprio, date)

Modifier votre fstab

L'ancien système à base de /dev/hdXX a été remplacé par un système d'ID unique attribué à chaque partition. Ce qui fait que maintenant vos partions sont montées indépendamment de la nappe sur laquelle votre disque dur est branché. Cela apporte des avantages tout comme des désavantages dont je ne discuterai pas ici.

Pour connaître l'UUID de votre partion vous pouvez utilisez la commande vol_id /dev/hdXX. Remplacez simplement les anciens UUID par les nouveaux dans votre fichier fstab dans votre nouvelle partition root. Et uniquement dans celle-ci, ainsi vous pourrez toujours booter sur votre ancien disque en cas de problème.

Modifier le fichier de configuration Grub

Dans le fichier /boot/grub/menu.lst, toujours sur le nouveau disque, effectuez la meme opération qu'a l'étape précédente.

Installer Grub sur votre nouveau disque

Sinon vous pourrez pas booter dessus.
Grub ne reconnaitra votre disque nouvellement installé, utilisez grub-install --recheck pour qu'il détecte les nouvelles partitions.
Puis installez Grub sur votre partition root avec grub-install /dev/hdXX

Eteigner le PC, booter sur nouveau disque

et prier