Aller au contenu

Vérifier la santé matérielle d'un disque dur

SMART

Je travaille assez régulièrement avec du matériel reconditionné, le plus souvent en provenance du fournisseur Olinn Distribution. Sur les serveurs, je remplace les disques durs par du matériel acheté neuf, mais il arrive qu'un client souhaite garder les disques déjà présents sur la machine. Dans ce cas, je prends soin de vérifier leur santé matérielle avant d'installer un OS dessus. Pour ce faire, j'utilise l'outil en ligne de commande smartctl sur mon système de secours GRML.

En principe, n'importe quel système Linux live fera l'affaire, du moment que vous disposez des commandes lsblk et smartctl.

La grande majorité des disques durs embarquent le système de surveillance SMART (Self-Monitoring Analysis and Reporting Technology). Sous Linux, l'outil smartctl permet d'exploiter ces données.

Dans un premier temps, je démarre en mode secours. Une fois que je dispose d'un shell, j'utilise la commande lsblk pour identifier mon disque :

# lsblk | grep sda
sda      8:0    0 232.9G  0 disk
├─sda1   8:1    0   8.1G  0 part
└─sda2   8:2    0 224.8G  0 part

Je vérifie d'abord si les données SMART sont disponibles :

# smartctl --health --info /dev/sda
smartctl 7.5 2025-04-30 r5714 [x86_64-linux-6.19.13+deb14-amd64] (local build)
Copyright (C) 2002-25, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF INFORMATION SECTION ===
Model Family:     Seagate Barracuda 7200.10
Device Model:     ST3250410AS
Serial Number:    6RYFBM8F
Firmware Version: 3.AHC
User Capacity:    250,059,350,016 bytes [250 GB]
Sector Size:      512 bytes logical/physical
Device is:        In smartctl database 7.5/5706
ATA Version is:   ATA/ATAPI-7 (minor revision not indicated)
Local Time is:    Mon Jun  8 07:19:14 2026 UTC
SMART support is: Available - device has SMART capability.
SMART support is: Enabled

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Options longues ou options courtes ?

J'aime bien utiliser les options longues comme --health et --info, plus explicites et donc plus lisibles que les options brèves équivalentes -H et -i. Bien évidemment, cela ne change rien au fonctionnement de la commande.

J'affiche la durée approximative des tests :

# smartctl --capabilities /dev/sda
...
Short self-test routine
recommended polling time:        (   2) minutes.
Extended self-test routine
recommended polling time:        (  56) minutes.

Je lance d'abord le test rapide :

# smartctl --test short /dev/sda

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
...
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Mon Jun  8 07:31:47 2026 UTC
Use smartctl -X to abort test.

J'attends deux minutes avant d'afficher le résultat du test :

# smartctl --log selftest /dev/sda

=== START OF READ SMART DATA SECTION ===
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)
# 1  Short offline       Completed without error       00%     27351 
# 2  Short offline       Completed without error       00%     26936
# 3  Short offline       Completed without error       00%     26923
# 4  Short offline       Completed without error       00%     26923
# 5  Short offline       Completed without error       00%     26919

Si j'obtiens partout Completed without error, je lance éventuellement une série de tests plus méticuleux :

# smartctl --test long /dev/sda

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
...
Testing has begun.
Please wait 56 minutes for test to complete.
Test will complete after Mon Jun  8 08:23:39 2026 UTC
Use smartctl -X to abort test.

Là aussi, je patiente le laps de temps indiqué à l'écran avant d'afficher le résultat :

# smartctl --log selftest /dev/sda

La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.