Ceci est une ancienne révision du document !
SMARTMONTOOLS
Smartmontools est un paquet regroupant un ensemble d'outils basés sur la "technologie" SMART. Cette technologie est un protocole qui permet de suivre et contrôler l'état des disques durs entiers. Les données SMART ignorent les partitions et le partitionnement.
le protocole SMART est reconnu et implémenté sur la plupart des disques durs depuis la fin des années 1990.
En configurant correctement le daemon smartd (fichier /etc/smartd.conf, il est possible d'être prévenu automatiquement si des problèmes sont détectés).
De façon incompréhensible, le paquet smartmontools n'est pas installé par défaut et fait l'objet de relativement peu de publicité
Installation
Commencez par installer le paquet smartmontools et éventuellement smart-notifier.
Lorsque l'installateur sera lancé, cet écran s'affichera. Cliquer sur Forward (Continuer).
Puis cela sera au tour de celui-ci. Cliquer encore sur Forward (Continuer).
L'installation proprement dite commencera alors.
Il semble que l'installation de smart notifier est compliquée en version live USB 18.04
Si vous souhaitez une interface graphique à smartmontools Installez le paquet gsmartcontrol.
Il semble que l'installation de gsmartcontrol est compliquée en version live USB 18.04
Le site officiel est ici : GSmartControl. On trouvera des copies d'écran ici : Copies d'écran.
Pour une installation en mode dépannage, comme cela peut vous être demandé dans forum, il est possible de faire une installation "à minima" en ligne de commande.
sudo apt-get install --no-install-recommends smartmontools
Utilisation
Dans les exemples suivants, on va considérer le disque dur nommé /dev/sdX , qu'il faudra remplacer par le nom du disque que vous voulez tester, par exemple /dev/hda, /dev/sdc 1) ou /dev/sg1 2)
- Pour activer SMART sur un disque, taper la commande suivante (nécessaire une seule fois seulement pour chaque disque, mais peut être répétée sans danger) :
sudo smartctl --smart=on --offlineauto=on --saveauto=on /dev/sdX
- Pour obtenir quelques infos disponibles par SMART sur le disque
sudo smartctl -H -i /dev/sdX
Pour obtenir toutes les infos disponibles par SMART sur le disque
sudo smartctl -s on -a /dev/sdX<\code> <note warning> Attention. Si un intervennant du forum vous demande de donner l'état du disque en utilisant des commandes du chapitre trois, cela veut dire qu'il ne vous demande pas de faire des tests sur le disque. Alors ne les faites pas. En effet, cela n'apporte strictement rien si on soupçonne qu'il y a déjà des problèmes. </note> * Pour faire des tests Au moins deux types de tests sont possibles, les courts (~1 min) et les longs (~10 min à 90 min)((Une estimation de la durée prise par ces tests est visible dans la sortie de : sudo smartctl -a /dev/sdX )). Pour lancer l'exécution des tests sudo smartctl -t short /dev/sdX sudo smartctl -t long /dev/sdX * Ensuite pour accéder au résultats/statistiques de ces tests : sudo smartctl -l selftest /dev/sdX ou en plus bref (retourne un message seulement si le disque retourne un indicateur SMART "failing" ou si des autotests ont enregistré des erreurs) sudo smartctl -q errorsonly -H -l selftest /dev/sdX ===== Informations sur l'état actuel d'un disque. ===== **Dans les exemples suivants, on va considérer le disque dur nommé /dev/sdX qu'il faudra remplacer par le nom du disque que vous voulez tester** ; par exemple /dev/hda, /dev/sdc La connaissance de l'état actuel d'un disque peut être importante pour comprendre une erreur de lecture-écriture. Cette information est souvent demandée dans le forum. <note warning>Comme les données SMART ignorent les partitions et le partitionnement, il est **absurde** (sauf cas de RAID, voir note) de mettre un nombre après /dev/sdX. C'est même **nuisible** quand le disque est branché en usb, cf. cet exemple [[https://forum.ubuntu-fr.org/viewtopic.php?pid=21841415#p21841415]].</note> ==== Cas d'un disque interne ==== La commande est: <code>sudo smartctl -s on -a /dev/sdX
Rappel : Mettre un chiffre après la lettre X est (sauf montage en RAID, voir note) nuisible.
Cas des boîtiers et autres adaptateurs USB
La commande ci-dessus peut nécessiter un complément si le disque est connecté en usb.
Rappel : Mettre un chiffre après la lettre X est (sauf montage en RAID, voir note) nuisible.
a) Ce complément est en général fourni par
sudo smartctl --scan | grep -i usb
qui va retourner quelque-chose comme
/dev/sdb -d usbsunplus # /dev/sdb [USB Sunplus], ATA device
On récupère alors -d usbsunplus et sdb, et on obtient le retour complet grâce à
sudo smartctl -s on -a -d usbsunplus /dev/sdb
b) Si ça ne marche pas, c'est dans le retour de
sudo smartctl -s on -a /dev/sdX
en remplaçant X par la lettre trouvée juste avant, qu'il faut chercher la ligne contenant
Unknown USB bridge [0x
De cette ligne, on copie 0xyyyy:0xzzzz, sans les crochets et on va le chercher dans la page
https://www.smartmontools.org/wiki/Supported_USB-Devices qui référence :
- La plupart des adaptateurs supportés et donne l'option "-d" opérationnelle de chacun,
- La plupart des adaptateurs non supportés.
Sur cette page-là on va donc récupérer la bonne option -d machin-truc, et
sudo smartctl -s on -a -d machin-truc /dev/sdX
en remplaçant X par la lettre trouvée juste avant, fournira le rapport smartctl complet.
Exceptionnellement, il peut arriver que ni a) ni b) ne suffise.
c) En ce cas, certaines des commandes suivantes peuvent être essayées, toujours en remplaçant "X" par la bonne lettre, vérifiée juste avant :
Merci de faire la totalité des cinq commandes et de ne pas vous arrêter à la première surtout si elle n'a répondu que quelques lignes.
sudo smartctl -s on -d ata -a /dev/sdX
sudo smartctl -s on -d sat -a /dev/sdX
sudo smartctl -s on -d scsi -a /dev/sdX
sudo smartctl -s on -d auto -T verypermissive -a /dev/sdX
sudo smartctl -s on -d test -T verypermissive -a /dev/sdX
Cas du pilote UAS
Si aucune commande précédente ne fonctionne avec un adaptateur USB, il peut être nécessaire de désactiver le support de UAS(P)3).
Test avec déchargement du module
- brancher l'adaptateur
- relever les identifiants USB vendeur:produit pour l'adaptateur :
- lister les périphériques USB utilisant le pilote UAS
lsusb -t | grep uas
- noter la valeur de Port et Dev, puis afficher ce périphérique USB avec XXX
valeur de Port
et YYYvaleur de Dev
lsusb -s XXX:YYY
- noter la valeur après ID sous le format <id vendeur>:<id produit>
- démonter les partitions du disque :
sudo umount -v /dev/sdX*
- décharger le module uas :
sudo modprobe -r uas
- décharger le module usb-storage :
sudo modprobe -r usb-storage
- recharger le module usb-storage sans le support uas pour l'adaptateur en remplaçant <id vendeur> et <id produit> par les valeurs relevée précédemment :
sudo modprobe usb-storage quirks=<id vendeur>:<id produit>:u
- si les partitions du disque ne sont pas montées automatiquement, débrancher l'adaptateur USB et le rebrancher connecté avec le disque dur
- réessayer les commandes
smartctl
Exemple concret
Exemple avec un adaptateur de marque U-Green avec le chipset VIA qui se charge en /dev/sdc
- tester la commande initiale :
sudo smartctl -s on -d sat -a /dev/sdc
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-71-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
Read Device Identity failed: scsi error unsupported field in scsi command
A mandatory SMART command failed: exiting. To continue, add one or more '-T permissive' options.
- recherche du périphérique USB utilisant le pilote UAS :
lsusb -t
/: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/4p, 5000M
|__ Port 3: Dev 35, If 0, Class=Mass Storage, Driver=uas, 480M
- relever la valeur après Bus (ici 4) et Dev (ici 35), et rechercher les identifiants USB pour ce périphérique
lsusb -s 4:35
Bus 004 Device 035: ID 2109:0711 VIA Labs, Inc.
- dans l'exemple, noter pour la suite <id vendeur>=2109 et <id produit>=0711
- démonter les partitions du disque :
sudo umount -v /dev/sdc*
umount: /dev/sdc: not mounted
umount: /media/ubuntu/Linux (/dev/sdc1) unmounted
- décharger les différents modules :
sudo modprobe -r uas sudo modprobe -r usb-storage
- recharger le module usb-storage sans le support UAS pour l'adaptateur :
sudo modprobe usb-storage quirks=2109:0711:u
- les partitions du disque sont remontées automatiquement, sinon débrancher et rebrancher l'adaptateur avec le disque connecté
- vérifier que le pilote n'est plus uas mais usb-storage4)
lsusb -t | grep usb-storage
|__ Port 3: Dev 36, If 0, Class=Mass Storage, Driver=usb-storage, 480M
- relancer la commande smartctl et constater qu'il n'y a plus d'erreur :
sudo smartctl -s on -d sat -a /dev/sdc
smartctl 6.5 2016-01-24 r4214 [x86_64-linux-4.4.0-71-generic] (local build)
Copyright (C) 2002-16, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Model Family: Western Digital Caviar Blue Serial ATA
Device Model: WDC WD1600AAJS-75M0A0
[…]
Blacklister le module UAS
Si le test précédent est concluant, il est possible de rendre le changement permanent.
- créer le fichier
/etc/modprobe.d/ignore-uas.conf
avec les droits d'administration. - ajouter la ligne suivante en remplaçant <id vendeur> et <id produit> par les valeurs relevée précédemment :
- /etc/modprobe.d/ignore-uas.conf
options usb-storage quirks=<id vendeur>:<id produit>:u
- sauvegarder le fichier
- redémarrer l'ordinateur
- brancher l'adaptateur directement
Notification automatique d'un problème
Grâce au service (daemon) smartd il est possible de faire une analyse régulière et ainsi suivre sur le long terme l'état des disques durs et de votre matériel.
Il est aussi possible de paramétrer des alertes automatiques (envoi de mail, messages utilisateur par wall, syslog, … ) en cas de détections d'erreurs ou de signes de vieillissement. smartd est inclus dans le paquet smartmontools
Le fichier de configuration est /etc/smartd.conf Par défaut, il est configuré pour scanner tous les disques. Une configuration de ce fichier est donc nécessaire pour obtenir des alertes pertinentes.
Activer le daemon smartd
Éditez le fichier /etc/default/smartmontools
- Décommenter start_smartd=yes
- Décommenter la liste des disques surveillés en mettant les bons noms de disques (/dev/sda par exemple)
- Démarrer le service en tapant dans un terminal:
sudo /etc/init.d/smartmontools start
A signaler aussi le paquet smart-notifier qui vous préviendra de tout problème imminent. L'action de ce programme est de se mettre à l'écoute des messages de tests et d'ouvrir une fenêtre d'avertissement s'il détecte un problème.
Si vous voyez une alerte SMART, il y a de fortes chances pour que votre disque soit en train de flancher. Dans votre intérêt, faites immédiatement une copie de vos fichiers ailleurs (clé USB, disque dur externe, gravure sur CD/DVD…).
Pour tester que smart-notifier fonctionne :
sudo sh -c 'echo test de message | smart-notifier --notify'
Ce qui affichera :
Traduire l'alerte
Lorsque vous équipez un autre pc que le vôtre de la notification, il serait dommage qu'elle soit ignorée pour une bête impossibilité de compréhension du message…
Sauvegarder l'original en cas de boulette en tapant dans terminal:
sudo cp /usr/share/smart-notifier/smart_notifier/smart-notifier.glade /usr/share/smart-notifier/smart_notifier/smart-notifier.glade.old
puis avec les droits d'administration, éditez le fichier /usr/share/smart-notifier/smart_notifier/smart-notifier.glade et modifiez les lignes indiquées ci-dessous.
- Titre de la Fenêtre, ligne 31:
<property name="title" context="True" translatable="True">Alerte Disque-dur !</property>
- Titre du Message, ligne 56:
<property name="label" context="True" translatable="True"><big><b>Alerte ! Disque-dur en Danger !</b></big></property>
- Corps du Message, ligne 69:
<property name="label" context="True" translatable="True">S.m.a.r.t. surveille en permanence les disques-durs et donne l'alerte en cas de variation importante dans les normales relevées. 60% des pannes de disques-durs sont mécaniques, s.m.a.r.t. peut en détecter 30%. Cette alerte n'est pas à prendre à la légère et peut annoncer une panne imminente. Planifier rapidement vos sauvegardes et le remplacement de vos disques-durs.</property>
- Message de smartd, ligne 92:
<property name="label" context="True" translatable="True">Message original de smartd :</property>
Interprétation des résultats
L'interprétation des résultats demande de l'expérience ; postez-les dans le forum.
Voir aussi
- tuto sur le système smart : tutoriel de Lea-linux
- Wikipédia : SMART (en français et très succinct).
- S.M.A.R.T. (en anglais mais beaucoup moins abrégé).
- Bad block HOWTO for smartmontools : Pour aller un plus loin lorsqu'une erreur est détectée.
- Quelques explications des compteurs smart sont disponibles dans wikipedia et aussi dans ce lien http://www.deltasight.fr/monitoring-serieux-de-disques-durs-avec-smartmontools/
Contributeurs : didrocks, fnx, .amalric. pour la traduction, furious-therapy : DEB pour Jaunty.
sudo fdisk -l
sudo smartctl -a -d sat /dev/sg1Référence: http://www.cyberciti.biz/faq/linux-checking-sas-sata-disks-behind-adaptec-raid-controllers/