Cloner un disque dur

Pour une raison ou une autre, on peut avoir besoin de changer son disque dur principal (perso, c’est pour un disque moins bruyant et de plus grande capacité), mais on ne veut pas forcément réinstaller le(s) système(s) d’exploitation.
De plus, les disques fournis avec les pcs actuels sont à peu près tous dotés d’une partition de restauration, voire une partition de diagnostics.

Alors si on ne veut pas perdre les infos du disque actuel, une seule solution: cloner les partitions du disque.

Attention:

  • manipuler directement les partitions peut être risqué, vaut mieux être vigilant.
  • pour cloner une partition, il ne faut pas que ca soit celle où le système est en train de fonctionner, vaut mieux utiliser un livecd, SystemRescueCd par exemple.
  • pour sauvegarder une partition ntfs avec partimage, il est conseillé de la défragmenter avant.

Applications

Au départ, je m’étais tourné vers 2 outils:

  • dd: permet de faire une copie à l’identique (bit par bit) de la partition mais il vaut mieux que les partitions soient identiques. L’inconvénient est qu’il copie même les zones vides, ce qui prend énormément de temps pour les partitions de grandes tailles.
  • rsync: permet de synchroniser 2 arborescences, suffisant pour des partitions linux, mais pas pour windows :/

En fin de compte, j’ai utilisé partimage et rsync.

partimage a l’avantage de ne sauvegarder que les données, par contre, le support du ntfs est expérimental.
Mais d’après la doc, si la sauvegarde se passe bien, il n’y a pas de raison pour que la restauration échoue…

Préparation du nouveau disque

Prenons /dev/sda comme disque actuel et /dev/sdb le nouveau disque.

Avant de pouvoir cloner le disque, il faut sauvegarder le mbr plus le schéma des partitions:

dd if=/dev/sda of=sauvegarde_mbr count=1 bs=512
sfdisk -d /dev/sda > sauvegarde_structure_partition

pour ensuite, les appliquer sur le nouveaux disque:

dd if=sauvegarde_mbr of=/dev/sdb
sfdisk /dev/sdb < sauvegarde_structure_partition

On peut éventuellement ne pas recréer à l’identique toutes les partitions si c’est pour un disque de plus grande capacité, mais je pense qu’il vaut mieux créer à l’identique au moins les partitions de restauration et de diagnostic (s’il y en a).

Sauvegarde avec partimage

partimage dispose d’une interface graphique (ncurse):

  • lancer: partimage
  • sélectionner la partition à sauvegarder (ex: sda1)
  • indiquer le fichier cible (ex: sauvegarde_sda1)
  • sélectionner « Faire une image de la partition»
  • puis « Suivant»

sur la 2ème fenêtre:

  • personnellement , je n’ai pas choisi de compression, c’est plus rapide
  • de même j’ai décoché la vérification de la partition avant la sauvegarde
  • par contre, j’ai augmenté la taille des segments de fichiers à créer (5000 MB)
  • puis « Continuer»

ou alors en ligne de commande:

partimage -z0 -c -d -V5000 -f3 -b save /dev/sda1 sauvegarde_sda1

en sortie, on aura plusierus fichiers commencant par sauvegarde_sda1 et finissant par .000, .001, … selon la taille des données.

Restauration avec partimage

De même que pour la sauvegarde:

  • lancer:partimage
  • sélectionner la partition à restaurer (ex: sdb1)
  • indiquer le fichier cible (ex: sauvegarde_sda1.000)
  • sélectionner » Restaurer la partition à partir d’une image»
  • puis « Suivant»

sur la 2ème fenêtre:

  • décocher « Simuler la restauration»
  • cocher « Quitter»
  • puis « Continuer»

ou en ligne de commande:

partimage -f3 -b restore /dev/sdb1 sauvegarde_sda1.000

Quelques captures:

Partimage, écran d'accueil

Partimage, écran d'accueil

Partimage, en cours de restauration

Partimage, en cours de restauration

Synchroniser avec rsync

Pour rsync, il faut auparavant créer le système de fichier sur la nouvelle partition puis monter la partition source et cible, exemple pour /dev/sda2 et /dev/sdb2:

mkdir /mnt/part_source
mkdir /mnt/part_cible
mkfs.ext3 /dev/sdb2
mount /dev/sda2 /mnt/part_source
mount /dev/sdb2 /mnt/part_cible

puis lancer rsync:

rsync -av /mnt/part_source/ /mnt/part_cible/

Clone avec dd

Avec dd, c’est peut etre la copie la plus fiable, mais en même temps, la plus lente:

dd if=/dev/sda of=/dev/sdb

Conclusion

Voilà, une fois les partitions clonées ou synchronisées, il suffit d’éteindre, de changer le disque et de redémarrer le tout.