08/07/2024

Linux

Linux : comment connaître l’état de santé de son disque dur ou disque SSD ?

I. Présentation

Dans ce tutoriel, nous allons énumérer quelques outils pratiques et assez fiables permettant de connaître l’état de santé de son disque dur, son disque SSD ou son disque USB sur Linux. Cette démonstration a été réalisée à partir d'Ubuntu 24.04.

Tout comme pour Windows, les systèmes Linux disposent également d’un ensemble d’outils gratuits permettant d’analyser une ou plusieurs unités de stockage de masse. Ceci est possible qu’il s’agisse d’un disque dur classique, d’un SSD, ou d’une clé USB, ceci indépendamment du constructeur, de la taille du stockage, de la connectique (USB, S/P ATA, SCSI, NVMe, etc.), ou de la configuration sur le système (volume simple ou RAID).

Précédemment, nous avions vu comment effectuer ces vérifications sur Windows :

Ici, on parlera de deux outils utilisés en Command Line Interface (CLI ou via le Terminal Ubuntu), pratiques pour ceux qui travaillent sur les systèmes Linux en environnement serveur (sans interface graphique) comme Ubuntu Server, et de deux autres outils utilisables à l’aide d’une interface graphique. Vous pourrez bien évidemment ajouter ceux que vous utilisez en commentaire pour compléter cet article.

Prérequis :

  • Un ordinateur (virtuel ou physique) fonctionnant sous Ubuntu 24.04 et connecté à internet
  • Un accès au compte « root » de la machine (équivalent de l'administrateur chez Windows), ou d'un compte avec une délégation pour utiliser "sudo", car la plupart des manipulations demandent une élévation de privilèges. Pensez à préfixer les commandes avec "sudo".
  • Un ou plusieurs disques pour les tests
  • Un peu de connaissance en Administration système Linux et en Hardware.

Sans plus tarder, on y va !

II. Linux : analyser un disque en ligne de commande

A. Smartmontools et Smart-notifier

Smartmontools est un ensemble d’outils permettant d’analyser, de surveiller ou de produire un rapport détaillé quant à l’état de santé d’un volume de stockage monté sur un système Linux. Comme vous le devinez certainement, ces derniers sont conçus sur la base technologie S.M.A.R.T. Ils se lancent automatiquement au démarrage avec le daemon « smartd » et s’exécutent manuellement sur des unités avec la commande « smartctl ».

Smart-notifier, comme son nom l’indique, est un outil annexe à Smartmontools, fonctionnant aussi avec le daemon « smartd » et utilisé pour envoyer des alertes à l’utilisateur en cas d’anomalies de disques détectées.

Ces outils (fonctionnant uniquement sur des disques dotés d’un capteur S.M.A.R.T) sont installables à l’aide du terminal sous root (qui avertira bien sûr s’ils sont déjà fournis avec la distribution Linux). Mais avant tout, on met d’abord le système à jour pour être sûr de trouver le ou les dépôts pouvant fournir lesdits outils avec la commande suivante :

sudo apt update && apt upgrade

Puis, on installe conjointement (ou séparément) les paquets Smartmontools et Smart-notifier avec la commande suivante :

sudo apt install smartmontools && apt install smart-notifier

On peut bien sûr vérifier que le service smartd fonctionne et si nécessaire le redémarrer, en utilisant respectivement ces deux commandes :

sudo systemclt status smartd
sudo systemclt restart smartd

On peut faire un premier test afin d'obtenir toutes les informations du disque (fabricant, modèle, espace de stockage, firmware, etc.) y compris les attributs S.M.A.R.T (température, nombre de secteurs réalloués, nombre total d’erreurs off-track, etc.), avec la commande suivante :

smartctl –s on –a /dev/sdX

Quelques explications s'imposent :

  • smartctl : est la commande de lancement du test.
  • -s on : est l’option servant à préciser les données de suivi du test.
  • -a (ou all) : est l’option permettant d’obtenir toute information en rapport avec le disque (qu’elle soit S.M.A.R.T ou non)
  •  /dev/sdX : est le disque sur lequel s’effectue le test (remplacer la lettre « X » par celle du lecteur à tester. On peut se servir des commandes ls –l /dev/sd*, df -h ou gdisk pour cela).

Ainsi, la commande donnera pour l’exercice :

smartctl –s on –a /dev/sdb

On obtiendra en sortie les informations de base du disque de façon intégrale…

Et, l’état de santé général de ce dernier à l’aide des attributs S.M.A.R.T définies par son constructeur (ils sont généralement disponibles sur son site officiel, ici Western Digital).

Pour le cas des disques SSD NVMe (Non-Volatile Memory express), Il existe également un paquet spécifique additionnel (installable avec « apt install ») à installer afin d’être lus par smartctl : nvme-cli.

sudo apt-get install nvme-cli

Les commandes de vérifications sont pratiquement les mêmes que pour les autres disques, à la seule différence qu’il faudra remplacer le « /dev/sdX » par « /dev/nvmeX » (avec « X » destiné à être remplacé par la lettre du lecteur à analyser).

Par ailleurs, il existe d’autres options à utiliser avec la commande smartctl telles que :

  • -i : pour afficher les informations du disque sans attributs S.M.A.R.T
  • --smart = on : pour activer la technologie S.M.A.R.T sur un disque (éventuellement off pour désactiver)
  • -t : suivi de short ou long pour lancer un test court ou long sur le disque
  • -X : pour annuler un test en cours
  • --scan : pour afficher les différents disques connectés et montés au système.
  • Etc.

On peut aussi configurer smart-notifier en éditant le fichier de configuration « /etc/default/smartmontools » à l’aide d’un éditeur au choix (ici vim). Une fois à l’intérieur, on décommente (enlever le dièse) sur les lignes contenant « enable_smartd » (en ajoutant les disques à analyser, même si ce n'est pas nécessaire pour un disque possédant un capteur S.M.A.R.T) et « #smartd_opts="–interval=1800" » (envoi des notifications toutes les 30 minutes) puis on sauvegarde avec la séquence « Echap » « wq! » et « Entrée ».

On peut bien évidemment vérifier que les modifications effectuées dans le fichier de configuration n’engendrent aucun problème en redémarrant le service :

sudo systemclt restart smartd

On teste ensuite le fonctionnement de smart-notifier avec la commande suivante :

sh -c 'echo test de message | smart-notifier --notify'

Ce qui donnera l’image suivante sortie :

  • Pour en savoir plus sur smartmontools, voici un lien ici.
  • Allez plus loin avec les commandes smartctl et la configuration de smart-notifier en consultant cet article sur disponible sur la documentation francophone.

B. Badblocks

Attention : les commandes « Badblocks » doivent être utilisées avec précaution (ou par des utilisateurs avertis), car ces dernières pourraient endommager les partitions et entrainer la perte irréversible des données présentes sur le disque. Il serait donc plus prudent de faire une sauvegarde des données ou du système avant toute manipulation avec ces dernières.

Les commandes « Badblocks » sont des « sous-commandes » ou options de la commande « e2fsck » (File System Check ou File System Consistency Check) installée par défaut avec Ubuntu 24.04 et qui fait elle-même partie du groupe de programmes du projet e2fsprogs relatif à la maintenance des systèmes de fichiers sous Linux.

Les commandes « Badblocks » visent à identifier et à isoler les secteurs défectueux sur un disque afin que ces derniers ne soient plus utilisés par le système de fichiers dans le cadre de la création ou de la reconstitution de blocs à l’avenir. Ce qui pourrait être un bon indicateur de l’état de santé de votre disque (car tout dépend d’abord de la forme physique de l’équipement).

Rappel : Un secteur ici est la plus petite unité d’allocation physique d’un disque dur. Sur des disques SSD, cette allocation est virtuelle. La plus petite taille d’un secteur pour la plupart disques actuels, est de 4096 octets (4 Ko). Par contre, l’unité d’allocation logique est appelée bloc et s’appuie sur un ou plusieurs secteurs (en fonction du type de système de fichiers) pour se constituer. Et, si les secteurs utilisés par ces derniers sont défectueux, cela peut avoir un impact direct sur les systèmes de fichiers et par conséquent sur les données. D’où la nécessité de les isoler.

La commande « Badblocks » peut être utilisée avec les options suivantes :

  • -b : pour spécifier la taille des blocs
  • -o : rediriger le résultat de l’analyse vers un fichier
  • -p : nombre de passes d’analyse à effectuer sur le disque ou les partitions
  • -v : mode verbeux (rend compte en temps réel de l’évolution des opérations)
  • -f : forcer l’opération
  • -n : mode lecture-écriture non-destructif
  • -w : mode lecture-écriture destructif (analyse les blocs en les réécrivant. En d’autres termes, détruit et reconstruit tout au passage, donc perte probable des données)
  • Etc.

Autrement dit, la commande présentée ci-dessous aura pour conséquence la destruction de la partition « /dev/sdb1 » (donc perte des données) qui devra ensuite être de nouveau formatée… Ceci à cause de l’option « -w »…Donc "SOYEZ PRUDENTS AVEC BADBLOCKS !"

badblocks -wvs /dev/sdb1

Voici quelques liens pour aller loin avec Badblocks :

III. Linux : analyser un disque avec des outils en interface graphique

A. GSmartControl

S’appuyant sur l’outil smartctl, GSmartControl prend en charge les lecteurs de type S/P ATA, USB, NVMe, convertisseurs ATA vers USB (comme celui utilisé pour ce tutoriel), et les disques utilisés en RAID. Il est disponible à la fois pour Linux, Windows & MacOS et téléchargeable depuis le site de son éditeur via le lien ci-dessous :

Sous Ubuntu 24.04, GsmartControl s’installe aussi à l’aide du terminal avec la traditionnelle commande :

sudo apt install gsmartcontrol

Une fois installée, on ouvre l’outil en mode graphique depuis le menu Canonical. Il identifie et affiche tous les disques montés à l’arborescence du système sur son interface d’accueil.

Si on clique sur un des disques et que ce dernier dispose d’un capteur S.M.A.R.T en son sein, on verra qu’un test S.M.A.R.T rapide a déjà été effectué sur ce dernier.

On peut aussi bien évidemment lancer un test manuellement (long ou court, selon sa convenance). On a bien-sûr aussi la possibilité de visualiser et même d’exporter les résultats du test. De plus, l'outil peut afficher des informations basiques telles que la taille du disque, le type de disque, le bus de connexion, le fabricant, le nombre d’heures de fonctionnement, la température, etc. On a aussi la possibilité de voir et même d’exporter les résultats du test vers un fichier texte (.txt) pour une analyse ultérieure ou simplement pour l'archiver.

On peut aussi activer ou désactiver la lecture de la fonctionnalité S.M.A.R.T sur un disque. Ce dernier affichera alors comme un disque dépourvu de cette dernière et ne donnera que des informations de base sans y ajouter des attributs S.M.A.R.T.

B. L’outil SeaTools de Seagate

Il se présente également sous la même interface graphique que celle de Windows et offre également les mêmes fonctionnalités. Nous l'avions découvert dans l'article dédié à l'analyse des disques sur Windows.

D’abord, on télécharge l’outil SeaTools sur le site officiel de Seagate avec la commande « wget » suivi du lien de téléchargement de ce dernier. Voici un exemple :

Une fois le téléchargement terminé, on va le chercher dans son dossier téléchargement et on le décompresse vers un dossier au choix avec la commande « unzip » dont le paquet est fourni par défaut dans Ubuntu 24.04 (vu que le paquet SeaTools a été téléchargé au format .zip depuis le site officiel).

unzip /home/meister/SeaToolsLinuxX64Installer.zip

On obtient ensuite un fichier avec l’extension « .run » (fichier script), qu’on rend ensuite exécutable avec la commande « chmod ».

chmox +x SeaToolsLinuxX64Installer.run

Puis, on lance l’installation de SeaTools avec la commande destinée à l’exécution des scripts sous Ubuntu « ./ » suivie du nom du fichier à exécuter.

On continue l’installation en mode graphique en suivant les indications à l’écran.

On peut enfin profiter de SeaTools exactement comme sous Windows.

IV. Conclusion

On vient d’énumérer quelques outils gratuits utilisés sous Linux pour tester l’état de santé d’un disque monté à son arborescence. Si vous connaissez aussi d’autres outils, n’hésitez pas à les mentionner en commentaire.

author avatar
Emile Fabrice ATANGANA ADZABA Technicien Informatique et Réseau
Technicien Informatique et Réseau, Gérant et Directeur Technique chez MEISTER INFORMATIK, une entreprise de services numériques basée à Yaoundé au Cameroun, spécialisée dans l'installation, la maintenance et le suivi des parcs informatiques des PME et des particuliers.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.