Doc /

Tester un disque dur pour savoir s'il y a des secteurs défectueux

On se pose parfois la question de savoir s'il y a des secteurs défecteux sur un disque dur. Ce n'est pas un problème simple.

Il est très déconseillé de faire tous les tests ci-dessous sur un système en activité, le mieux est donc de lancer une distribution live n'utilisant pas le disque dur (pensez à désactiver le swap).

Smartctl

Normalement tous les disques dur de moins de dix ans ont une fonction de surveillance (Self-Monitoring, Analysis and Reporting Technology - SMART), mais d'une part les rapports de smart sont incompréhensibles, d'autre part ils ne sont pas fiables. Des disques qui déclenchent des alertes smart durent des années, d'autres lâchent sans prévenir. Dommage.

Correction système

Normalement quand se produit un défaut d'écriture sur le disque, le système du disque (embarqué sur le disque lui-même et indépendant de votre volonté) le remplace par un secteur de réserve. Ce mécanisme fonctionne, mais de façon masquée, mal décrite par les outils SMART. Rappelons qu'il faut écrire sur le disque pour mettre le mécanisme en service et que sa sensibilité (combien d'erreurs faut-il pour qu'il s'active) est inconnue.

Badblocks

L'outil Linux de base, c'est "badblocks"

 badblocks -s /dev/[nom du disque ou de la partition]

va vous donner un rapport en lecture seule non destructif (=sans danger) sur le disque. Par exemple

 badblocks -s /dev/sda3

Le "-s" est là pour vous donner un apperçu de la durée du travail, ca peut *etre très long (jusqu'à plusieurs jours!).

Normalement le rapport en lecture va repérer les secteurs défectueux et vous les signaler. S'il y en a trop ou s'ils sont en tout début de disque (sur le secteur d'amorçage), le disque est foutu. sinon on peut travailler.

Badblocks en mode écriture sans danger peut activer le processus système.

 badblocks -sn /dev/sda5

Fsck

Ensuite, sur un système Linux, l'outil de réparation du système de fichier a, lui aussi, un moyen de lutter contre les secteurs défectueux.

Cet outils, c'est fsck. Lancé avec les bonnes options, il utilise badblocks pour trouver les secteurs défectueux puis les inscrit dans un inode spacial. En pratique on peut dire qu'il crée des fichiers système correspondant aux blocks défectueux de façon à ce que personne ne puisse écrire dessus.

La commande à lancer est:

 fsck -vcck /dev/sda3 (par exemple)

Par contre, le résultat dépendant des inodes disparait chaque fois qu'on repartitionne le disque.

Partitions

Une dernière méthode, applicable quand les secteurs défectueux sont localisés en un point particulier du disque est d'isoler ces secteurs dans une partition qui restera inutilisée.