Tutoriel Linux

Smartctl sous Linux : vérifier un disque avant qu’il ne tombe en panne

Débutant6 min de lecture
À retenirLinux n'est pas réservé aux experts. Le bon point de départ : une distribution accessible, une sauvegarde propre et quelques commandes comprises.

Un disque peut encore répondre aux commandes tout en accumulant des secteurs instables, des erreurs média ou une usure avancée. Si vous attendez la première erreur d’entrée-sortie pour regarder son état, la sauvegarde peut déjà devenir compliquée.

smartctl, fourni par le paquet smartmontools, lit les informations SMART des disques SATA, SAS et NVMe. Je l’utilise pour confirmer un doute, mais jamais comme une garantie : un statut PASSED n’empêche pas une panne brutale. L’objectif est de croiser l’état global, les compteurs utiles, un autotest et les journaux du noyau avant de décider.

Tux inspecte l’état SMART d’un disque dur avant sa panne
Smartctl aide à croiser l’état SMART, les erreurs média et les autotests avant de sauvegarder ou remplacer un disque.

Identifier le disque avant de lancer smartctl

Ne partez pas du principe que le disque concerné est /dev/sda. Son nom peut changer après un redémarrage ou l’ajout d’un périphérique. Affichez les modèles, numéros de série et types de connexion :

lsblk -d -o NAME,SIZE,MODEL,SERIAL,TRAN,TYPE
lsblk -o NAME,SIZE,FSTYPE,MOUNTPOINTS,MODEL,SERIAL

La première commande liste les périphériques bloc physiques. La seconde permet de relier un disque à ses partitions et points de montage. Si plusieurs modèles ont la même capacité, le numéro de série évite une erreur coûteuse. Le guide sur lsblk sous Linux détaille cette identification avant un montage ou un formatage.

Une fois smartmontools installé, demandez aussi à l’outil quels périphériques il sait ouvrir :

sudo smartctl --scan-open

Travaillez sur le disque complet, par exemple /dev/sda ou /dev/nvme0, pas sur une partition comme /dev/sda1.

Installer smartmontools et vérifier la prise en charge SMART

Sur Debian ou Ubuntu :

sudo apt update
sudo apt install smartmontools

Sur Fedora, Rocky Linux ou AlmaLinux :

sudo dnf install smartmontools

Sur Arch Linux :

sudo pacman -S smartmontools

Contrôlez ensuite l’identité du disque et la disponibilité de SMART :

sudo smartctl -i /dev/sda

Vous devez retrouver le modèle et le numéro de série vus avec lsblk. Sur un boîtier USB vers SATA, SMART peut être masqué par le pont. Cette variante fonctionne avec certains adaptateurs :

sudo smartctl -a -d sat /dev/sdb

Ne forcez pas un type de périphérique au hasard. Consultez le résultat de --scan-open et la documentation du boîtier ou du contrôleur RAID. Certains contrôleurs exigent une option spécifique pour atteindre chaque disque physique.

Lire l’état global sans faire confiance à un seul mot

Commencez par le test de santé global :

sudo smartctl -H /dev/sda

Un résultat PASSED signifie que le disque n’a pas franchi le seuil d’échec défini par son fabricant. Cela ne signifie pas qu’il est neuf, sans erreur ou incapable de tomber en panne demain. Un résultat FAILED impose une sauvegarde immédiate et un remplacement, pas une nouvelle série de tests pour se rassurer.

Affichez ensuite le rapport complet :

sudo smartctl -a /dev/sda
sudo smartctl -a /dev/nvme0

Vérifiez d’abord que le modèle, le numéro de série et la capacité correspondent bien au disque ciblé. Regardez ensuite la température, les heures de fonctionnement, le journal d’erreurs et le résultat des autotests. L’option -x fournit davantage de détails quand -a ne suffit pas :

sudo smartctl -x /dev/sda

Repérer les compteurs qui changent la décision

Sur un disque SATA, surveillez notamment Reallocated_Sector_Ct, Current_Pending_Sector et Offline_Uncorrectable. Des secteurs en attente ou non corrigeables, surtout si leur nombre augmente, justifient une sauvegarde et la préparation du remplacement. Un compteur de secteurs réalloués stable n’est pas automatiquement une panne, mais il doit être suivi.

UDMA_CRC_Error_Count pointe souvent vers la liaison SATA : câble, connecteur, alimentation ou contrôleur. Si ce compteur monte, vérifiez la connectique puis relisez le rapport. Ne confondez pas une erreur de transmission avec un secteur défectueux.

Sur un SSD NVMe, regardez Critical Warning, Available Spare, Percentage Used et Media and Data Integrity Errors. Une réserve sous le seuil, un avertissement critique ou des erreurs média croissantes doivent déclencher une action. Percentage Used représente une estimation d’endurance consommée, pas un compte à rebours précis.

Les noms, seuils et valeurs brutes varient selon les fabricants. Comparez surtout plusieurs relevés du même disque. Copier une valeur brute depuis un modèle différent mène facilement à un mauvais diagnostic.

Lancer un test court puis récupérer son résultat

Si le disque reste accessible et ne renvoie pas déjà des erreurs d’entrée-sortie, lancez un autotest court :

sudo smartctl -t short /dev/sda

smartctl indique l’heure approximative de fin. Le test s’exécute dans le disque et la commande rend la main immédiatement. Évitez néanmoins de le lancer pendant une charge de stockage importante. Une fois le délai passé, consultez le journal :

sudo smartctl -l selftest /dev/sda
sudo smartctl -a /dev/sda

Le résultat doit apparaître comme terminé sans erreur. Un test interrompu peut venir d’un arrêt, d’une mise en veille ou d’une autre commande de test. Un test échoué, associé à des secteurs instables ou à des erreurs noyau, renforce la décision de remplacer le disque.

Le test long avec smartctl -t long parcourt davantage la surface, mais il dure beaucoup plus longtemps. Ne l’utilisez pas comme première action sur un disque qui décroche déjà. Dans ce cas, récupérez les données encore lisibles avant d’ajouter des heures d’activité.

Croiser SMART avec les erreurs du noyau

SMART ne remplace pas les journaux Linux. Recherchez les erreurs de liaison, les réinitialisations et les erreurs d’entrée-sortie du démarrage courant :

sudo journalctl -k -b -p warning..alert --no-pager
sudo dmesg -T | grep -Ei 'ata|nvme|i/o error|reset|medium error'

Le tutoriel sur dmesg et les messages du noyau aide à distinguer un disque défaillant d’un câble USB, d’un contrôleur ou d’une alimentation instable. Une saturation mesurée avec iostat n’est pas non plus une preuve de panne physique : elle décrit une charge, pas la santé du support.

Sauvegarder avant de réparer le système de fichiers

Si SMART passe en échec, si les erreurs média augmentent ou si le noyau remonte des erreurs d’entrée-sortie, réduisez les écritures et sauvegardez les données importantes. Sur un serveur distant, vérifiez d’abord que la copie est exploitable avant tout redémarrage.

Ne lancez pas fsck pour tester le matériel. fsck travaille sur la cohérence du système de fichiers et peut solliciter fortement un support déjà fragile. Le guide sur fsck sous Linux commence volontairement par l’identification, le démontage et un contrôle sans écriture.

Pour un NAS ou un serveur, conservez les rapports SMART datés et surveillez leur évolution. Le guide Linux pour un NAS maison rappelle aussi qu’un RAID ne remplace pas une sauvegarde. Un disque peut être remplacé. Les seules copies de vos données, non.

La page de manuel de smartctl documente les options, les types de périphériques et les autotests. Les exemples du projet smartmontools montrent les principaux rapports SATA et NVMe. Gardez cet ordre : identifier le bon disque, lire l’état complet, lancer un test court si le support reste stable, puis sauvegarder ou remplacer dès que les signaux convergent.

sudo apt update && sudo apt upgrade