smartctl
Il est possible de gérer à la main les commandes smart. Le but étant d’avoir les détails de ce qui va ou ne va pas. La commande de base est smartctl. Pour tout savoir sur les données smart :
# smartctl -a /dev/hda
Les attributs :
# smartctl -A /dev/hda
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
1 Raw_Read_Error_Rate 0x000f 051 046 006 Pre-fail Always – 230474091
3 Spin_Up_Time 0x0003 096 096 000 Pre-fail Always – 0
4 Start_Stop_Count 0x0032 099 099 020 Old_age Always – 1105
…
194 Temperature_Celsius 0x0022 049 060 000 Old_age Always – 49
Maintenant il faut savoir lire ces valeurs. Le type Old_age indique qu’un erreur n’est pas grave, c’est seulement un indicateur de vieillesse. Au contraire Pre-fail indique que le disque risque de vous causer des soucis très bientôt. Updated indique si la valeur est mise à jour fréquemment (Always) du simple fait que smart soit activé sur le disque, ou seulement lorsque des tests sont lancés (Offline). En effet, smart doit être activé sur votre disque si vous voulez avoir des valeurs correctes. S’il ne l’est pas :
# smartctl -s on /dev/hda
pour savoir si smart est activé
# smartctl -i /dev/hda
Enfin les 3 valeurs “value”, “worst” et “thresh” indiquent l’état du disque. Value est la valeur actuelle, worst est la valeur enregistrée la plus proche de l’erreur, et enfin thresh indique un seuil au dessous duquel valeur ne devrait jamais descendre (sinon alerte). Raw_value vous donnera l’interprétation de value si vous connaissez les unités (doc constructeur toussa).
Il est possible de lancer des tests plus longs. Il existe 4 types de test :
offline : test court mettant à jour les attributs “offline”.
short et long selftest : test court ou long sur les performances, les problèmes électriques et les lectures physiques.
conveyance (disponible uniquement sur certains disques ATA) : test sur d’éventuels problèmes liés au transport du disque.
select (disponible uniquement sur certains disques ATA) : semblable à un test long mais sur une seule partie du disque
Les tests offline peuvent être faits automatiquement par le disque toutes les 4 heures grâce à la commande suivante :
# smartctl -o on /dev/hda
Contrairement à ce qui est dit dans la documentation, il faut s’attendre à quelques ralentissements des accès disques pendant un test (surtout pendant un test long). Pour lancer un test manuellement, on demande à smartctl :
# smartctl -t long /dev/hda
La durée estimée du test est alors indiquée. Selon les disques le fait qu’un test est en cours se voit soit dans les capabilities, soit dans les logs :
Lecture des capabilities
$ smartctl -c /dev/hda
Lecture des logs de test
# smartctl -l selftest /dev/hda
Une fois le test terminé, les éventuelles erreurs apparaissent dans les logs (et les valeurs offline des attributs sont mis à jour) :
# smartctl -l selftest /dev/hda # smartctl -l error /dev/hda # smartctl -A /dev/hda
Si comme moi vous avez des informations comme celles-ci :
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE
195 Hardware_ECC_Recovered 0x001a 051 046 000 Old_age Always – 75004710
197 Current_Pending_Sector 0x0012 100 100 000 Old_age Always – 1
198 Offline_Uncorrectable 0x0010 100 100 000 Old_age Offline – 1
SMART Self-test log structure revision number 1
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
1 Extended offline Completed: read failure 90% 18071 24102132
2 Extended offline Completed: read failure 90% 18070 24099461
C’est que vous avez déjà perdu quelques octets. Tout n’est pas perdu, puisque le disque est capable de réallouer dynamiquement la position de ses secteurs pour allonger sa propre durée de vie. Disons que votre disque est sur la mauvaise pente et que c’est à vous de décider ce qu’il faut en faire.
Notez donc ces erreurs sur certains secteurs du disque. Le texte suivant vous expliquera comment retrouver quel fichier est affecté, voire comment forcer le disque à réallouer ce secteur.