{{tag>disque_dur }} ====== SMARTMONTOOLS ====== ===== Préambule ===== 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 et de différents composants de votre ordinateur. le protocole SMART est reconnu et implémenté sur la plupart des disques durs depuis la fin des années 1990. L'intérêt principal de ces outils et de la technologie SMART est de ** déceler des signes précurseurs de vieillissement et de pannes ** des disques durs avant qu'ils ne soient définitivement en panne. 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 ===== ==== sur système installé ==== Commencez par [[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>smartmontools|smartmontools]]**. \\ Ce paquet est disponible dans la logithèque ubuntu sous le nom **GSmartControl**. \\ \\ //Variantes en ligne de commande :// \\ Pour une installation __avec__ notification graphique par le daemon périodique, **copiez-collez** dans l'ordre : sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu $(lsb_release -sc) universe" sudo apt-get update sudo apt-get install smartmontools smart-notifier \\ Pour une installation simple, __sans__ notification graphique, **copiez-collez** et **attention** : il y a deux tirets devant le mot **no** : sudo apt-get install --no-install-recommends smartmontools Notez que si vous n'installez pas la notification graphique ((Curieusement, Ubuntu range le paquet smart-notifier dans la section "universe", tandis que Debian le range dans la section "main" (principale).)), vous n'avez pas besoin d'activer les dépôts "universe". \\ ==== sur support d'installation, en session "live" ==== Mettez d'abord votre clavier en azerty s'il ne l'est pas. Si vous partez d'un clavier qwerty, il vous faudra taper : setxkb,qp fr pour que s'affiche : setxkbmap fr Puis **copiez-collez** la commande suivante et **attention** : il y a deux tirets devant le mot **no** : sudo apt-get install --no-install-recommends smartmontools \\ Notez que le daemon de surveillance périodique est sans objet en session live. \\ ===== 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// (( la liste des noms de disques durs de votre système peut s'obtenir par : sudo fdisk -l )) ou ///dev/sg1// ((les périphériques du type ///dev/sg#// permettent d'atteindre les disques qui composent un volume géré par un contrôleur RAID hardware. Dans un tel cas, les périphériques du type ///dev/sdX// ne sont pas utilisables car à ce niveau l'OS ne voit que le volume géré par le contrôleur RAID (un disque logique sans information SMART) et non des disques qui le composent (disques physiques avec information SMART). Par exemple, pour obtenir les informations SMART sur un disque SATA faisant partie d'un volume RAID 5 géré par un contrôleur Adaptec : sudo smartctl -a -d sat /dev/sg1 Référence: [[http://www.cyberciti.biz/faq/linux-checking-sas-sata-disks-behind-adaptec-raid-controllers/]] )) * 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 -a /dev/sdX * 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 ou /dev/sg1 La connaissance de l'état actuel d'un disque peut être importante pour valider une erreur de lecture écriture. **Cette information est souvent demandée dans le forum**. La commande est: * ''sudo smartctl -s on -a /dev/sdX'' ==== Cas des cartes contrôleurs et adaptateurs USB ==== Cette commande peut ne pas fonctionner si le disque est connecté en usb. Certaines de ces commandes peuvent alors être essayées: * ''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 [[wpfr>USB_Attached_SCSI|UAS(P)]]((USB Attached SCSI)). === 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 YYY //''valeur de Dev''// lsusb -s XXX:YYY * noter la valeur après ID sous le format : - 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 //// et //// par les valeurs relevée précédemment : sudo modprobe usb-storage quirks=::u - si les partitions du disque ne sont pas montée 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 | grep uas > |%%__%% Port **3**: Dev **35**, If 0, Class=Mass Storage, Driver=**uas**, 480M * relever la valeur après Port (ici 3) et Dev (ici 35), et rechercher les identifiants USB pour ce périphérique $ lsusb -s 3:35 > Bus 003 Device 035: ID **2109:0711** VIA Labs, Inc. * dans l'exemple, noter pour la suite =2109 et =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-storage**((le numéro de //Dev// change à chaque reconnexion))$ 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. * [[:tutoriel:comment_modifier_un_fichier|créer le fichier]] ''/etc/modprobe.d/ignore-uas.conf'' **avec les droits d'administration**. * ajouter la ligne suivante en remplaçant //// et //// par les valeurs relevée précédemment :options usb-storage quirks=::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==== ** Par défaut, le demon smart n'est pas activé. Il est indispensable de le faire manuellement.** [[tutoriel:comment_modifier_un_fichier|Éditez le fichier]] __/etc/default/smartmontools__ et décommenter __start_smartd=yes__ puis démarrer le service en tapant dans un [[terminal]]: sudo /etc/init.d/smartmontools start A signaler aussi le paquet [[apt://smart-notifier|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. Pour que **smart-notifier** lance ces messages d'alertes, il faut que smartd soit actif, paramétré, et que la session en cours ait été redémarrée. 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 : {{::smart-notifier_15.10.png?800|smart-notifier sous Ubuntu 15.10}} ===== Traduire l'alerte ===== Lorsque vous équipez un autre pc que le votre 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 [[tutoriel:comment_modifier_un_fichier|é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 === Alerte Disque-dur ! === Titre du Message, ligne 56 === ''<big><b>Alerte ! Disque-dur en Danger !</b></big>'' === Corps du Message, ligne 69 === ''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.'' === Message de smartd, ligne 92 === ''Message original de smartd :'' ===== Interface graphique pour smartmontools ===== gsmartcontrol est une interface graphique (en anglais) de smartmontools. Le site officiel est ici : [[http://gsmartcontrol.sourceforge.net/home/index.php|GSmartControl]]. On trouvera des copies d'écran ici : [[http://gsmartcontrol.sourceforge.net/home/index.php/Screenshots|Copies d'écran]]. ==== Installation ==== [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>gsmartcontrol|gsmartcontrol]]**. =====Voir aussi ===== * [[http://smartmontools.sourceforge.net|Site officiel Smartmontools]] * [[http://smartlinux.sourceforge.net/smart/attributes.php|Index des SMART Attributes]] * [[http://www.lea-linux.org/documentations/index.php/Hardware-hard_plus-smart|tuto sur le système smart]] : tutoriel de Lea-linux * [[http://fr.wikipedia.org/wiki/Self-Monitoring%2C_Analysis_and_Reporting_Technology|Wikipédia : SMART]] * [[http://valaurea.free.fr/documents/sig11_smart.html|Tout savoir de ses disques durs avec smartmontools (sig-11.org)]] * [[https://www.smartmontools.org/browser/trunk/www/badblockhowto.xml|Bad block HOWTO for smartmontools]] : Pour aller un plus loin lorsqu'une erreur est détectée. * **Vidéo**: [[https://www.youtube.com/watch?v=1e3N1wqhpSA|Secteurs Morts - Diagnostique et Réparation]] * **Video**: [[https://www.youtube.com/watch?v=VtFQ0AXSAFc|Comprendre les attributs SMART - Diagnostique HDD]] ---- //Contributeurs : [[utilisateurs:didrocks ]], [[utilisateurs:fnx]], [[utilisateurs:.amalric.]] pour la traduction, [[utilisateurs:furious-therapy]] : DEB pour Jaunty.//