Accueil > Linux > en cas de problème > smart - vérifier les disques durs
smart - vérifier les disques durs
Publié le 20 août 2015, dernière mise-à-jour le 19 décembre 2025, > 83 visites, >> 184382 visites totales.
gsmartcontrol : dans une fenêtre
smartctl : en ligne de commande
smart
on peut faire deux type de tests :
- court ( 2 min )
- long ( 2 heures )
Ensuite on regarde le résultat :
- on doit avoir VALUE > THRESH
- avec gsmartcontrol, si on a du rouge c’est mauvais signe
gsmartcontrol
- installer gsmartcontrol (
apt-get install gsmartcontrol) - taper gsmartcontrol dans un terminal root
- ou par le menu
- avec cinnamon : Administration::GsmartControl
- avec mate : Logiciels::Outils Système::GsmartControl
- ou par le menu
- sélectionner un disque dur
- choisissez l’onglet Perform Tests
- lancer au moins le test court
Lecture :
Si un truc est rouge, il y a un problème, comme sur l’exemple en dessous, MAIS le problème peut être très vieux ( vérifier les heures )
On voit par exemple que le disque dur n’a que 285 heures sur la ligne 9 power-on-time ( un disque peut avoir plusieurs 1=dizaines de milliers d’heures )
Ensuite on peut aller voir dans l’onglet error log si l’heure correspond, s’il y a plusieurs erreurs
smartctl : en ligne de commande (2007->2024)
Optionnel, mais doit avoir été fait une fois : lancer le programme sur tous les disques :
for devsd in $(blkid|sed 's#[0-9]\:.*##'|sort -u);do sudo smartctl --smart=on --offlineauto=on --saveauto=on $devsd ; done
TESTS COURTS ET RESULTATS SUR TOUS LES DISQUES ( les résultats apparaissent à la fin de tous les tests , 2min par disque + 2 minutes )
for devsd in $(blkid |grep 'TYPE="ext'|sed 's#[0-9]\:.*##'|sort -u);do echo $devsd ; date ; smartctl -t short $devsd ; done ; sleep 4m; for devsd in $(blkid |grep 'TYPE="ext'|sed 's#[0-9]\:.*##'|sort -u);do echo $devsd ; smartctl -A $devsd |grep "Power_On_Hours" |sed "s#.* \([0-9]*\)#\1 heures#" ; smartctl -H $devsd ;smartctl --quietmode=errorsonly --all $devsd ; done
pour précision de mon script :
- il cherche les partitions du type ext, mais sort la variable devsd=/dev/sda qui contient le disque pas la partition
-* il fait le test court sur le disque ( smartctl -t short $devsd) correspondant . - il attend 4 minutes pour assurer que les tests ont été faits
- pour chaque disque, il donne le temps d’utilisation smartctl -A grep "Power_On_Hours"
- pour chaque disque, il donne des informations minimales smartctl -H
- pour chaque disque, il donne les erreurs smartctl —quietmode=errorsonly —all
exemple de résultat :
dev/sdf
11940 heures
SMART overall-health self-assessment test result: PASSED
ATA Error Count: 8 (device log contains only the most recent five errors)
Error 8 occurred at disk power-on lifetime: 8224 hours (342 days + 16 hours)
Error 7 occurred at disk power-on lifetime: 8224 hours (342 days + 16 hours)
Error 6 occurred at disk power-on lifetime: 8224 hours (342 days + 16 hours)
Error 5 occurred at disk power-on lifetime: 8224 hours (342 days + 16 hours)
Error 4 occurred at disk power-on lifetime: 8224 hours (342 days + 16 hours)
On voit que la dernière erreur a eu lieu au bout de 8224 heures alors que le disque a été en marche pendant 11940 heures et qu’jourd’hui il est PASSED donc bien.
LANCER UN TEST RAPIDE sur le disque sdc :
sudo smartctl -t short /dev/sdc
LANCER UN TEST LONG sur le disque sdc
sudo smartctl -t long /dev/sdc
RÉSULTATS DES TESTS sur le disque sdc
smartctl --quietmode=errorsonly --all /dev/sdc
heures pendant lesquelles le disque tourne :
smartctl -A /dev/sdc |grep "Power_On_Hours" |sed "s#.* \([0-9]*\)#\1 heures#"
liste des attributs et valeurs
smartctl -A /dev/sdc
exemple :
| ID | ATTRIBUTE_NAME | FLAG | VALUE | WORST | THRESH | TYPE | UPDATED | WHEN_FAILED | RAW_VALUE |
| 7 | Seek_Error_Rate | 0x000f | 077 | 060 | 045 | Pre-fail | Always | - | 51130987 |
(RAW), la valeur brute, représente la valeur mesurée de l’attribut.
THRESH représente la valeur limite
VALUE représente un indice de fiabilité actuelle de cet attribut
WORST représente la plus petite valeur de VALUE enregistrée
on doit avoir VALUE > THRESH
SI VALUE < THRESH et type = OLD-AGE : le produit est en fin de vie, usure normale
SI VALUE < THRESH et type = Pre-Fail : PANNE IMMINENTE
Nom de l’attribut Rôle Raw_Read_Error_Rate Fréquence d’apparition d’erreurs pendant la lecture de données brutes
Spin_Up_Time Temps de mise en rotation du disque
Start_Stop_Count Nombre de cycles arrêt/démarrage de l’axe de rotation
Reallocated_Sector_Ct Nombre de secteurs ré-alloués
Seek_Error_Rate Fréquence d’erreurs pendant le positionnement de la tête magnétique
Power_On_Hours Nombre d’heures de fonctionnement
Spin_Retry_Count Nombre de mises en rotation forcée du disque
Power_Cycle_Count Nombre de cycles de mise sous tension
Temperature_Celsius Température interne du disque en degrés Celsius
Hardware_ECC_Recovered Nombre de corrections ECC réalisées
Current_Pending_Sector Nombre de secteurs en attente de ré-allocation Offline_Uncorrectable Nombre de secteurs non ré-allouables
UDMA_CRC_Error_Count Nombre d’erreurs de CRC pendant un accès Ultra DMA
Il existe deux méthodes pour mettre à jour les valeurs des attributs. La première dite « always » est la plus commune. Le composant électronique observe en permanence cet attribut. A chaque consultation de l’attribut, on peut y lire la valeur en cours. Ainsi, la température, le nombre d’erreurs ECC sont à jour en permanence. Les attributs dits « offline » ne seront remis à jour que lors d’un test du disque avec l’un des quatre modes : offline, short, long, conveyance.

Internet - Réseaux