Cloner un disque dur défaillant...

Il peut arriver que l'on ait besoin de cloner un disque dur. Par exemple, pour dupliquer des machines identiques du point de vue matériel mais aussi pour remplacer un disque dur d'un PC qui devient défaillant.

Nous regarderons ce dernier exemple. Les disques durs modernes possèdent des systèmes d'autotests qui permettent de surveiller ses paramètres essentiels mais aussi des systèmes pour s'autoréparer dans une certaine limite quand un secteur devient défaillant. C'est l'interface SMART (Self-Monitoring Analysis and Reporting Technology System).

L'interface SMART peut être utilisée au niveau du BIOS d'un PC ou avec des outils comme les smartmontools ou d'autres outils plus ou moins d'usage facile.

L'idée de l'interface SMART est de prévenir l'utilisateur que son disque dur commence à défaillir (perte d'un secteur remplacé par un autre dans le paquet de secteurs en réserve (quelques dizaines)) afin qu'il puisse agir en conséquence : sauvegarder au plus vite ! Mieux vaut prévenir que guérir !

Dans ce cas, l'opération de clonage même avec des secteurs défectueux est à tenter.

On supposera que l'ancien disque à cloner est repéré sous Linux par /dev/sdx que l'on résumera par /dev/old.

On supposera que le nouveau disque dur de capacité équivalente ou supérieure est repéré sous Linux par /dev/sdy que l'on résumera par /dev/new. Ce nouveau disque dur sera branché sur une interface SATA du PC mais l'on pourra aussi utiliser un adaptateur SATA/USB...

Pour effectuer le clonage, on démarrera sur un Live CD dont une liste utile a été donnée dans le précédent billet. On pourra par exemple utiliser l'excellent Live CD Trinity Rescue Kit.

La première opération de clonage à tenter est :

# dd if=/dev/old of=/dev/new

Il se peut que l'opération échoue car dd s'arrête dès qu'il rencontre une erreur d'E/S.

On pourra alors tenter l'opération suivante :

# dd if=/dev/old of=/dev/new  conv=noerror,sync

Si l'opération échoue, il faudra alors utiliser autre chose que dd. On utilisera alors l'outil GNU ddrescue. ddrescue est présent sur le Live CD System Rescue CD mais aussi sur le Live CD Trinity Rescue Kit (vraiment bien ce Live CD).

On récupèrera un maximum de secteurs du disque dur défaillant en remplaçant un secteur défectueux du disque source par un secteur rempli de zéros sur le disque destination (ddrescue effectue une copie 1 pour 1) :

# ddrescue -n /dev/old /dev/new

On refera une passe pour essayer de récupérer les données d'un secteur défectueux si cela est possible, le secteur correspondant du disque dur destination rempli de zéros par l'opération précédente étant remplacé par les données finalement récupérées :

# ddrescue -r 1 /dev/old /dev/new

Moralité de cette histoire : penser à surveiller les paramètres SMART de son disque dur et s'il commence à défaillir, il est alors temps de le remplacer par un bon clonage...

++

PS : vérifiez par 3 fois que vous ne mélangez pas source et destination quand vous utilisez les commandes dd et ddrescue car sinon vous risquez d'écraser votre disque dur source !

Sources :

  • Page Wikipedia dd (Unix)
  • Page Damaged Hard Disk. CGSecurity
Vus : 2001
Publié par Eddy33 : 81