Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
smartmontools [Le 30/07/2019, 08:16] – [Utilisation] Traitement des relances et des disques de grande capacité 37.164.213.205 | smartmontools [Le 12/01/2021, 13:43] (Version actuelle) – [Cas d'un disque interne] 88.122.224.21 | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | {{tag> | ||
+ | ---------- | ||
+ | ====== SMARTMONTOOLS ====== | ||
+ | |||
+ | Smartmontools est un paquet regroupant un ensemble d' | ||
+ | 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. | ||
+ | |||
+ | <note tip> | ||
+ | |||
+ | En configurant correctement le daemon **smartd** (fichier __/ | ||
+ | |||
+ | // | ||
+ | </ | ||
+ | |||
+ | ===== Installation ===== | ||
+ | ==== Pour une instance opérationnelle ==== | ||
+ | Commencez par [[: | ||
+ | |||
+ | Si vous souhaitez utiliser une interface graphique pour smartmontools, | ||
+ | Le site officiel est ici : [[http:// | ||
+ | On trouvera des copies d' | ||
+ | |||
+ | ==== Pour une installation en mode dépannage sur une clé USB non-persistante ==== | ||
+ | Au lieu de cliquer sur les liens ci-dessus, utilisez la commande suivante pour n' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== Utilisation ===== | ||
+ | |||
+ | <note important> | ||
+ | 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 liste des noms de disques durs de votre système peut s' | ||
+ | sudo fdisk -l | ||
+ | )) ou // /dev/sg1 // ((les périphériques du type // /dev/sg# // permettent d' | ||
+ | sudo smartctl -a -d sat /dev/sg1 | ||
+ | Référence : | ||
+ | )) | ||
+ | |||
+ | * 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 | ||
+ | |||
+ | |||
+ | |||
+ | 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' | ||
+ | |||
+ | sudo smartctl -t short /dev/sdX | ||
+ | sudo smartctl -t long /dev/sdX | ||
+ | |||
+ | |||
+ | * Pour accéder ensuite au résultats/ | ||
+ | |||
+ | |||
+ | sudo smartctl -l selftest /dev/sdX | ||
+ | |||
+ | ou en plus bref (retourne un message seulement si le disque retourne un indicateur SMART " | ||
+ | | ||
+ | sudo smartctl -q errorsonly -H -l selftest /dev/sdX | ||
+ | | ||
+ | |||
+ | |||
+ | * Pour relancer un test long qui s'est arrêté | ||
+ | |||
+ | sudo smartctl | ||
+ | |||
+ | |||
+ | |||
+ | * Pour suivre l' | ||
+ | <code bash> | ||
+ | | ||
+ | Cela permet de visualiser le LBA début et le LBA fin de l' | ||
+ | |||
+ | * Exécution d'un test long sur un disque de grande capacité. | ||
+ | |||
+ | Le test long peut durer des heures. S'il y a un arrêt pour une cause externe, le LBA en cours de traitement peut ne pas être mémorisé. Une solution consiste à lancer | ||
+ | sudo smartctl | ||
+ | ou | ||
+ | sudo smartctl | ||
+ | ou | ||
+ | sudo smartctl | ||
+ | |||
+ | Lorsque ce test est terminé, on fait un test de la suite quand on le désire avec cette commande qu'il faudra répéter autant de fois que nécessaire après s' | ||
+ | sudo smartctl | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | | ||
+ | |||
+ | |||
+ | ===== Informations sur l' | ||
+ | |||
+ | **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' | ||
+ | Cette information est souvent demandée dans le forum. | ||
+ | |||
+ | <note warning> | ||
+ | |||
+ | |||
+ | Pour connaître les lettres des disques connectés, utilisez la commande suivante : | ||
+ | <code bash> | ||
+ | |||
+ | |||
+ | ==== Cas d'un disque interne | ||
+ | === Cas d'un disque non NVMe === | ||
+ | La commande est : | ||
+ | <code bash> | ||
+ | === Cas d'un disque NVMe === | ||
+ | Le retour de la commande précédente peut identifier que le disque est un [[https:// | ||
+ | |||
+ | Un suivi plus spécifique est alors possible en installant le logiciel dédié à ce type de matériel. | ||
+ | <code bash> | ||
+ | Puis donner le retour de quelques commandes : | ||
+ | <code bash> | ||
+ | sudo nvme nvme-smart-log / | ||
+ | ou | ||
+ | <code bash> | ||
+ | sudo nvme smart-log / | ||
+ | |||
+ | |||
+ | |||
+ | ==== 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 | ||
+ | < | ||
+ | qui va retourner quelque chose comme | ||
+ | < | ||
+ | /dev/sdb -d sat # /dev/sdb [SAT], ATA device | ||
+ | </ | ||
+ | (même pour de l'usb) ou bien 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 à | ||
+ | < | ||
+ | b) Si ça ne marche pas, c'est dans le retour de | ||
+ | < | ||
+ | en remplaçant X par la lettre trouvée juste avant, qu'il faut chercher la ligne contenant | ||
+ | < | ||
+ | De cette ligne, on copie **0xyyyy: | ||
+ | https:// | ||
+ | - La plupart des adaptateurs supportés et donne l' | ||
+ | - La plupart des adaptateurs non supportés. | ||
+ | |||
+ | Sur cette page-là on va donc récupérer la bonne option **-d machin-truc**, | ||
+ | < | ||
+ | en remplaçant X par la lettre trouvée juste avant, ce qui fournira le rapport smartctl complet. | ||
+ | |||
+ | |||
+ | Exceptionnellement, | ||
+ | |||
+ | \\ c) Dans ce cas, certaines des commandes suivantes peuvent être essayées, toujours en remplaçant " | ||
+ | <code bash> | ||
+ | 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 / | ||
+ | |||
+ | |||
+ | ==== 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 [[wpfr> | ||
+ | |||
+ | === Test avec déchargement du module === | ||
+ | |||
+ | - Brancher l' | ||
+ | - Relever les identifiants USB vendeur: | ||
+ | * lister les périphériques USB utilisant le pilote UAS < | ||
+ | * noter la valeur de Port et Dev, puis afficher ce périphérique USB avec XXX //'' | ||
+ | * noter la valeur après ID sous le format <id vendeur>:< | ||
+ | - Démonter les partitions du disque : < | ||
+ | - Décharger le module **uas** : < | ||
+ | - Décharger le module **usb-storage** : < | ||
+ | - Recharger le module **usb-storage** __sans le support uas pour l' | ||
+ | - Si les partitions du disque ne sont pas montées automatiquement, | ||
+ | - Réessayer les commandes '' | ||
+ | |||
+ | === Exemple concret === | ||
+ | |||
+ | Exemple avec un adaptateur de marque U-Green avec le chipset VIA qui se charge en /dev/sdc. | ||
+ | |||
+ | * Tester la commande initiale : < | ||
+ | |||
+ | > 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' | ||
+ | |||
+ | * Recherche du périphérique USB utilisant le pilote UAS : < | ||
+ | |||
+ | > |%%__%% Port **3**: Dev **35**, If 0, Class=Mass Storage, Driver=**uas**, | ||
+ | |||
+ | * Relever la valeur après Port (ici 3) et Dev (ici 35), et rechercher les identifiants USB pour ce périphérique < | ||
+ | |||
+ | > Bus 003 Device 035: ID **2109: | ||
+ | |||
+ | * Dans l' | ||
+ | * Démonter les partitions du disque : < | ||
+ | |||
+ | > umount: /dev/sdc: not mounted | ||
+ | > umount: / | ||
+ | |||
+ | * Décharger les différents modules : < | ||
+ | sudo modprobe -r usb-storage</ | ||
+ | * Recharger le module usb-storage sans le support UAS pour l' | ||
+ | * Les partitions du disque sont remontées automatiquement, | ||
+ | * Vérifier que le pilote n'est plus **uas** mais **usb-storage**((le numéro de //Device// change à chaque reconnexion))< | ||
+ | |||
+ | > | ||
+ | |||
+ | * Relancer la commande smartctl et constater qu'il n'y a plus d' | ||
+ | |||
+ | > 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: | ||
+ | > Device Model: | ||
+ | > [...] | ||
+ | </ | ||
+ | === Blacklister le module UAS === | ||
+ | |||
+ | Si le test précédent est concluant, il est possible de rendre le changement permanent. | ||
+ | |||
+ | * [[: | ||
+ | * Ajouter la ligne suivante en remplaçant //<id vendeur>// | ||
+ | * Sauvegarder le fichier | ||
+ | * Redémarrer l' | ||
+ | * Brancher l' | ||
+ | ===== 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' | ||
+ | |||
+ | Il est aussi possible de paramétrer des alertes automatiques (envoi de mail, messages utilisateur par wall, syslog…) en cas de détections d' | ||
+ | **smartd** est inclus dans le paquet // | ||
+ | |||
+ | Le fichier de configuration est __/ | ||
+ | |||
+ | |||
+ | ==== Mettre en place le paramètrage du daemon smartd==== | ||
+ | <note important> | ||
+ | |||
+ | [[tutoriel: | ||
+ | |||
+ | Si nécessaire, | ||
+ | |||
+ | Démarrez ou relancez ensuite le service en tapant dans un [[terminal]]: | ||
+ | |||
+ | - avec __systemctl__ : | ||
+ | <code bash> | ||
+ | systemctl status | ||
+ | - à l' | ||
+ | <code bash> | ||
+ | |||
+ | |||
+ | |||
+ | === Pour tester que smartd | ||
+ | |||
+ | Le but de smartd est de surveiller les disques et de prévenir l' | ||
+ | | ||
+ | Pour vérifier que les futurs messages d' | ||
+ | <code bash> | ||
+ | | ||
+ | Pour expédier les messages à un autre destinataire, | ||
+ | <code bash> echo " | ||
+ | Il faut alors modifier le fichier / | ||
+ | < | ||
+ | Il faut ensuite relancer l' | ||
+ | |||
+ | |||
+ | À signaler aussi le paquet [[apt:// | ||
+ | L' | ||
+ | |||
+ | <note tip>Pour que **smart-notifier** lance ces messages d' | ||
+ | </ | ||
+ | |||
+ | |||
+ | 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 === | ||
+ | <code bash> sudo sh -c 'echo test de message | smart-notifier --notify' | ||
+ | |||
+ | Ce qui affichera : | ||
+ | |||
+ | {{:: | ||
+ | |||
+ | |||
+ | ===== Traduire l' | ||
+ | Lorsque vous installez smart-notifier sur un autre ordinateur que le vôtre, il serait dommage qu' | ||
+ | |||
+ | Trouver le nom du fichier contenant les messages d' | ||
+ | <code bash> ls -ls / | ||
+ | ==== Première possibilité ==== | ||
+ | Sauvegarder l' | ||
+ | < | ||
+ | sudo cp / | ||
+ | </ | ||
+ | puis avec les [[: | ||
+ | et modifiez les lignes indiquées ci-dessous : | ||
+ | * __Titre de la fenêtre__, //ligne 31//:< | ||
+ | * __Titre du message__, //ligne 56//:< | ||
+ | < | ||
+ | </ | ||
+ | * __ Corps du message__, //ligne 69//: < | ||
+ | < | ||
+ | </ | ||
+ | * __Message de smartd__, //ligne 92//:< | ||
+ | < | ||
+ | </ | ||
+ | ==== Seconde possibilité ==== | ||
+ | Faire la même action | ||
+ | <code bash> | ||
+ | |||
+ | sudo sed -i -e " | ||
+ | sudo sed -i -e " | ||
+ | sudo sed -i -e "s/The hard disk health status has changed. This could mean that hard drive failure is imminent. It is always a good idea to have up to date backups./ | ||
+ | |||
+ | |||
+ | |||
+ | =====Interprétation des résultats ===== | ||
+ | L' | ||
+ | =====Voir aussi ==== | ||
+ | |||
+ | * [[probleme_de_disque|Problème de disque ou partition]] | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[wpfr> | ||
+ | * [[wp> | ||
+ | * [[http:// | ||
+ | * [[https:// | ||
+ | * **Vidéo : | ||
+ | * **Vidéo : | ||
+ | * Quelques explications des normales SMART sont disponibles dans Wikipédia, ainsi que dans ce lien : [[http:// | ||
+ | * [[https:// | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | // |