smartctl est une commande disponible sur Linux dans le package smartmontools.
Comme son nom l’indique l’outil interroge les entrées S.M.A.R.T. de vos disques.
Cela permet de vérifier si le disque dur rencontre des erreurs internes sur Linux.
Enfin on peut configurer ce dernier pour effectuer des vérifications automatiques et envoyer un mail d’alerte.
Cet article vous présente smartctl.
Comment l’utiliser ? Comment vérifier si le disque dur a un problème matériel avec S.MA.R.T.
En clair donc comment vérifier la santé de son disque dur en ligne de commandes sur Linux.

Table des matières
Qu’est-ce que smartctl et smartmontools ?
Pour rappel la technologie S.M.A.R.T ( (Self-Monitoring, Analysis and Reporting Technology) permet à un disque dur ou SSD un auto-test et vérification du bon fonctionnement.
Elle fonctionne avec divers attributs (température, état de la surface du disque, etc).
Lorsqu’un attribut dépasse un seuil, il est alors considéré en erreur.
Smartmontools est un ensemble d’outil en ligne de commandes pour interroger ces entrées SMART.
L’article suivant détaille tout cela : Vérifier l’état de santé de son disque dur avec la technologie SMART
Les outils proposés par le package smartmontools :
- smartctl : interroge les entrées SMART d’un disque en ligne de commandes.
- smartd : daemon qui monitore vos disques et permet d’alerter par mail lorsque des erreurs sont rencontrées. Elles peuvent aussi être reportées dans les journaux systèmes : /var/log/messages ou /var/log/syslog
Cet outils de disque ne sont pas installés par défaut sur Linux
L’installation de smartmontools dépend de votre distribution Linux.
Pour celles à base de Debian, vous pouvez utiliser apt-get :
apt-get install smartmontools
A partir de là, la commande smartctl devient disponible depuis un terminal.
Avec cette dernière, vous pouvez :
- Lancer un auto-test court ou long puis attendre le résultat
- Lister les erreurs du disque ou obtenir le contenu du rapport
- Configurer smartmontools pour effectuer des vérifications automatiques vos disques et vous alerter par mail.
Smartctl : vérifier son disque en ligne de commandes sur Linux
Afficher les informations du disque
La première commande donne les informations du disque (modèle, marque, vitesse, type) et si Smart est activée.
Il faut alors utiliser le paramètre -i :
smartctl -i /dev/sda
Par exemple quand SMART n’est pas supporté (pas activé dans le BIOS par exemple).
Vous pouvez avoir une erreur : Unavalaible – device lacks SMART capability.
Il se peut alors que SMART soit désactivé sur le périphérique, vous pouvez alors tenter :
smartctl --smart=on /dev/sda
Lancer un test Smart avec smartctl
Smartctl permet de lancer un test et vérification du disque au moment souhaité.
Trois types d’auto-test du disque sont possibles.
- Offline : Cela démarre immédiatement un test. Cette commande peut être exécutée pendant le fonctionnement normal du système. Les effets de ce test ne sont visibles que dans la mesure où il met à jour les valeurs d’attribut SMART, et si des erreurs sont détectées.
- short : Il s’agit d’un test dans une catégorie différente de celle des tests hors ligne immédiats ou automatiques. Les tests “Self” vérifient les performances électriques et mécaniques ainsi que les performances de lecture du disque. Leurs résultats sont consignés dans le journal des erreurs.
- long : Il s’agit d’une version plus longue et plus approfondie de l’autotest court. Cela prend une dizaine de minutes
Pour lancer l’autotest, on utilise la commande -t.
Par exemple pour lancer un autotest court.
smartctl -t short /dev/sda
Vérifier les erreurs SMART avec smartctl
L’option -l permet d’afficher les journaux du disque dur.
Plusieurs paramètres peuvent être utilisés dont voici les deux principaux :
- error : imprime les pages du journal du compteur d’erreurs pour les lectures, les écritures et vérifications. La ligne de vérification n’est sortie que si elle a un élément autre que zéro.
- selftest : affiche les informations d’autotest du disque dur. Le disque conserve un journal d’autotest montrant les résultats des autotests, qui peuvent être exécutés à l’aide de l’option ‘-t’. Pour chacun des vingt et un autotests les plus récents, le journal indique le type de test (court ou étendu, hors ligne ou captif) et l’état final du tester. Si le test ne s’est pas terminé avec succès, le pourcentage du test restant s’affiche. L’heure à laquelle le test a eu lieu, mesurée en heures de disque.
Ainsi pour afficher les erreurs de disque :
smartctl -l error /dev/sda
Ci-dessous aucune erreur détecté : No erreurs logged.
Mais on peut aussi afficher les résultats des auto-tests du disque :
smartctl -l selftest /dev/sda
Ici aucune erreur détecté. Remaining est à 0% ce qui indique que les auto-tests vont bien jusqu’au bout.
Lorsque l’auto-test détecte des erreurs, on obtient alors ceci.
Par exemple ici il indique Error : UNC at LBA.
On voit alors que l’auto-test ne va pas au bout car à 90%.
Enfin lorsque SMART n’est pas supporté, on obtient un message : Error Counter logging not supported
Afficher les données complètes du disque
Enfin smartctl donne la possibilité d’afficher les informations complètes du disque.
La commande à utiliser pour obtenir les informations SMART :
smartctl --all /dev/sda
On obtient une section avec les informations sur le disque (smart, modèle, taille, vitesse, etc).
Puis une section sur la lecture des entrées SMART.
On trouve alors les attributs puis cela termine par des erreurs.
Lorsque le disque ne rencontre aucune erreur, il vous retourne alors : Completed without error.
Remaining est alors à 0% car les auto-tests vont jusqu’au bout.
Afficher la température du disque
Enfin smartctl est aussi capable d’afficher la température d’un disque.
Pour ce faire, on utilise la commande :
smartctl -l scttemp /dev/sda
Smartmontools et test automatique des disques
Smartmontools se configure pour effectuer des tests de disques à intervalles réguliers.
Enfin on peut le paramétrer pour vous prévenir par mail lors de défaillances.
Cela permet donc de prévenir des pannes mais surtout de la perte de données.
Pour ce faire, Smartmontools fonctionne en daemon.
Sur Debian, vous pouvez éditer le fichier /etc/default/smartmontools.
Puis activez le start_smarted et enfin indiquer les périphériques à surveiller.
Mais on peut aussi aller plus loin en éditant le fichier /etc/smartd.conf
En activant l’option DEVICESCAN, cela va analyser tous les disques branchés.
Ici un mail d’alerte est envoyé à root mais l’option -m prend aussi les adresses emails.
Enfin pour les utilisateurs avancés, vous pouvez ne pas utiliser DEVICESCAN et configurer chaque disque indépendamment.
On indique alors le périphérique et l’option -s permet de configurer les tests.
La syntaxe étant T/MM/DD/d/HH où :
- T est le type de Test. ‘L’ pour un long auto-test (Long Self-Test), ‘S’ pour un auto-test court (Short Self-Test), ‘C’ un auto-test de transmission (Conveyance Self-Test) et enfin ‘O’ pour un test immédiat hors ligne (Offline Immediate Test).
- MM est le mois de l’année en numérique 01 à 12.
- DD est le jour du mois en numérique 01 à 31.
- d est le jour de la semaine en numérique de 01 à 7.
- HH est l’heure du jour soit donc de 01 à 23.
Par exemple pour effectuer un auto-test court à 13h chaque jour :
/dev/sda -a -S on -m [email protected] -s S/../.././01
Smartmontools : alerte de disque par mail
Enfin voici un exemple de mail d’alerte de smartmontools lors de défaillances SMART.
Le mail vous indique la machine, l’erreur et le périphérique concerné.
SMART error (SelfTest) detected on host: nomdelamachine
Il est donc essentiel de mettre en place ce monitoring afin de prévenir de la perte de données en cas de panne de disque.
Bien sûr les sauvegardes permettent d’aider ou encore la mise en place d’un RAID.