Outils pour utilisateurs

Outils du site


freebsd-smartmontools

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
freebsd-smartmontools [2019/05/21 08:35] – créée cyrillefreebsd-smartmontools [2019/07/17 19:24] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
  
-====== How to check hard drive health on FreeBSD ======+====== How to check hard drive health on FreeBSD et Linux ======
  
   * https://www.cyberciti.biz/faq/how-to-check-hard-drive-health-on-freebsd/   * https://www.cyberciti.biz/faq/how-to-check-hard-drive-health-on-freebsd/
 +  * Sous Linux ci dessous ;)
 +
 +====== 1. Identifier le device de son disque dur ======
 +
 +
 +<code bash># dmesg | grep disk[    1.979182] sd 1:0:0:0: [sda] Attached SCSI disk
 +[ 7098.619891] sd 1:0:0:0: [sda] Stopping disk
 +[ 7099.957395] sd 1:0:0:0: [sda] Starting disk
 +[25933.946087] sd 1:0:0:0: [sda] Stopping disk
 +[25935.329464] sd 1:0:0:0: [sda] Starting disk
 +[26805.193511] sd 1:0:0:0: [sda] Stopping disk
 +[26806.560883] sd 1:0:0:0: [sda] Starting disk
 +[29011.221937] sd 1:0:0:0: [sda] Stopping disk
 +[29012.578359] sd 1:0:0:0: [sda] Starting disk
 +[42879.966037] sd 1:0:0:0: [sda] Stopping disk
 +[42881.326802] sd 1:0:0:0: [sda] Starting disk</code>
 +
 +
 +Le disque est donc sda
 +
 +====== 2. Installer le paquet smartmontools ======
 +
 +
 +L'utilitaire est **smartctl** , il fait partie du paquet **smartmontools**, non présent par défaut. on l'installe.
 +
 +<code bash># apt-get install smartmontools
 +Les NOUVEAUX paquets suivants vont être installés :     
 +  exim4-base{a} exim4-config{a} exim4-daemon-light{a} guile-2.2-libs{a} 
 +  libgnutls-dane0{a} libgsasl7{a} libkyotocabinet16v5{a} libmailutils5{a} 
 +  libntlm0{a} libunbound8{a} mailutils{a} mailutils-common{a} psmisc{a} 
 +  smartmontools 
 +0 paquets mis à jour, 14 nouvellement installés, 0 à enlever et 3 non mis à jour.
 +Il est nécessaire de télécharger 11,1 Mo d'archives. Après dépaquetage, 60,1 Mo seront utilisés.
 +Voulez-vous continuer ? [Y/n/?] Y</code>
 +
 +
 +Cet utilitaire est un outil administrateur, il sera installé dans **__/usr/sbin__**
 +
 +<code bash>whereis smartctl
 +smartctl: /usr/sbin/smartctl /usr/share/man/man8/smartctl.8.gz</code>
 +
 +
 +
 +====== 3. Utiliser smartctl ======
 +
 +
 +===== 3.1. Obtenir des infrrmations sur le disque (informations standards) (option -i) =====
 +
 +<code bash>#  smartctl -i /dev/sda
 +martctl 6.6 2017-11-05 r4594 [x86_64-linux-4.19.0-5-amd64] (local build)
 +Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org
 +
 +=== START OF INFORMATION SECTION ===
 +Model Family:     Samsung based SSDs
 +Device Model:     Samsung SSD 840 EVO 250GB
 +Serial Number:    S1DBNSBF753656V
 +LU WWN Device Id: 5 002538 8a05cee2f
 +Firmware Version: EXT0BB6Q
 +User Capacity:    250 059 350 016 bytes [250 GB]
 +Sector Size:      512 bytes logical/physical
 +Rotation Rate:    Solid State Device
 +Device is:        In smartctl database [for details use: -P show]
 +ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
 +SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
 +Local Time is:    Wed Jun 12 17:25:53 2019 CEST
 +SMART support is: Available - device has SMART capability.
 +SMART support is: Enabled</code>
 +
 +
 +===== 3.2. Obtenir le maximun d'informations sur le disque (analyse détaillée) (option -a ou --all =====
 +
 +
 +<code bash># /usr/sbin/smartctl -a /dev/sda
 +smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.19.0-5-amd64] (local build)
 +Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org
 +
 +=== START OF INFORMATION SECTION ===
 +Model Family:     Samsung based SSDs
 +Device Model:     Samsung SSD 840 EVO 250GB
 +Serial Number:    S1DBNSBF753656V
 +LU WWN Device Id: 5 002538 8a05cee2f
 +Firmware Version: EXT0BB6Q
 +User Capacity:    250 059 350 016 bytes [250 GB]
 +Sector Size:      512 bytes logical/physical
 +Rotation Rate:    Solid State Device
 +Device is:        In smartctl database [for details use: -P show]
 +ATA Version is:   ACS-2, ATA8-ACS T13/1699-D revision 4c
 +SATA Version is:  SATA 3.1, 6.0 Gb/s (current: 6.0 Gb/s)
 +Local Time is:    Wed Jun 12 17:27:10 2019 CEST
 +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
 +
 +General SMART Values:
 +Offline data collection status:  (0x00) Offline data collection activity
 + was never started.
 + Auto Offline Data Collection: Disabled.
 +Self-test execution status:      (   0) The previous self-test routine completed
 + without error or no self-test has ever 
 + been run.
 +Total time to complete Offline 
 +data collection: ( 4800) seconds.
 +Offline data collection
 +capabilities: (0x53) SMART execute Offline immediate.
 + Auto Offline data collection on/off support.
 + Suspend Offline collection upon new
 + command.
 + No Offline surface scan supported.
 + Self-test supported.
 + No Conveyance Self-test supported.
 + Selective Self-test supported.
 +SMART capabilities:            (0x0003) Saves SMART data before entering
 + power-saving mode.
 + Supports SMART auto save timer.
 +Error logging capability:        (0x01) Error logging supported.
 + General Purpose Logging supported.
 +Short self-test routine 
 +recommended polling time: (   2) minutes.
 +Extended self-test routine
 +recommended polling time: (  80) minutes.
 +SCT capabilities:        (0x003d) SCT Status supported.
 + SCT Error Recovery Control supported.
 + SCT Feature Control supported.
 + SCT Data Table supported.
 +
 +SMART Attributes Data Structure revision number: 1
 +Vendor Specific SMART Attributes with Thresholds:
 +ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
 +  5 Reallocated_Sector_Ct   0x0033   100   100   010    Pre-fail  Always             0
 +  9 Power_On_Hours          0x0032   098   098   000    Old_age   Always             6547
 + 12 Power_Cycle_Count       0x0032   097   097   000    Old_age   Always             2138
 +177 Wear_Leveling_Count     0x0013   091   091   000    Pre-fail  Always             103
 +179 Used_Rsvd_Blk_Cnt_Tot   0x0013   100   100   010    Pre-fail  Always             0
 +181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always             0
 +182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always             0
 +183 Runtime_Bad_Block       0x0013   100   100   010    Pre-fail  Always             0
 +187 Uncorrectable_Error_Cnt 0x0032   100   100   000    Old_age   Always             0
 +190 Airflow_Temperature_Cel 0x0032   074   052   000    Old_age   Always             26
 +195 ECC_Error_Rate          0x001a   200   200   000    Old_age   Always             0
 +199 CRC_Error_Count         0x003e   099   099   000    Old_age   Always             2
 +235 POR_Recovery_Count      0x0012   099   099   000    Old_age   Always             113
 +241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always             38748012777
 +
 +SMART Error Log Version: 1
 +No Errors Logged
 +
 +SMART Self-test log structure revision number 1
 +Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
 +# 1  Short offline       Completed without error       00%                 -
 +# 2  Short offline       Completed without error       00%                 -
 +# 3  Short offline       Completed without error       00%                 -
 +
 +SMART Selective self-test log data structure revision number 1
 + SPAN  MIN_LBA  MAX_LBA  CURRENT_TEST_STATUS
 +    1        0        0  Not_testing
 +    2        0        0  Not_testing
 +    3        0        0  Not_testing
 +    4        0        0  Not_testing
 +    5        0        0  Not_testing
 +Selective self-test flags (0x0):
 +  After scanning selected spans, do NOT read-scan remainder of disk.
 +If Selective self-test is pending on power-up, resume after 0 minute delay.</code>
 +
 +
 +__La ligne la plus importante est celle-ci.__
 +<code bash>SMART overall-health self-assessment test result: PASSED</code>
 +
 +Si le résultat est différent, il est vivement recommandé d'effectuer des sauvegardes immédiates de ce disque
 +
 +Enfin, si vous voyez des **Reallocated Sector ou Pending sectors**, remplacer le disque dès que possible.
 +
 +<code bash>...
 +5 Reallocated_Sector_Ct   0x0033   100   100   036    Pre-fail  Always             9
 +...
 +197 Current_Pending_Sector  0x0012   100   100   000    Old_age   Always             49
 +....</code>
 +
 +
 +
 +Une autre ligne importante est celle-ci , elle montrera on non la présence de **__badblocks__**
 +<code bash>187 Uncorrectable_Error_Cnt 0x0032   100   100   000    Old_age   Always             0</code>
 +Dans ce cas se reporter à la fin du tuto pour voir pour sauver les meubles si c'est encore possible...
 +
 +
 +
 +
 +===== 3.3 Surveiller la santé de son disque (uniquement) (option -H) =====
 +
 +
 +<code bash>/usr/sbin/smartctl -H /dev/sda
 +smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.19.0-5-amd64] (local build)
 +Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org
 +
 +=== START OF READ SMART DATA SECTION ===
 +SMART overall-health self-assessment test result: PASSED</code>
 +
 +
 +====== 4. Réaliser des tests sur son disque =====
 +
 +===== 4.1. Estimer la durée des tests (option -c) =====
 +
 +<code bash># /usr/sbin/smartctl -c /dev/sda
 +.....
 +Short self-test routine 
 +recommended polling time: (   2) minutes.
 +Extended self-test routine
 +recommended polling time: (  80) minutes.</code>
 +
 +Le __test court__ est estimé à 2 minutes (prenez un café), __le long__ à 80 minutes (prenez quelques apéros...)
 +
 +===== 4.2. Effectuer un test court (option -t short) =====
 +
 +<code bash>/usr/sbin/smartctl -t short /dev/sda
 +smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.19.0-5-amd64] (local build)
 +Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org
 +
 +=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
 +Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
 +Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
 +Testing has begun.
 +Please wait 2 minutes for test to complete.
 +Test will complete after Wed Jun 12 17:42:56 2019
 +
 +Use smartctl -X to abort test.
 +</code>
 +===== 4.3. Afficher les résultats du test court (option  -l selftest ) =====
 +
 +<code bash># /usr/sbin/smartctl -l selftest /dev/sda
 +*smartctl 6.6 2017-11-05 r4594 [x86_64-linux-4.19.0-5-amd64] (local build)
 +Copyright (C) 2002-17, Bruce Allen, Christian Franke, www.smartmontools.org
 +
 +=== START OF READ SMART DATA SECTION ===
 +SMART Self-test log structure revision number 1
 +Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
 +# 1  Short offline       Completed without error       00%                 -
 +# 2  Short offline       Completed without error       00%                 -
 +# 3  Short offline       Completed without error       00%                 -
 +# 4  Short offline       Completed without error       00%                 -</code>
 +
 +
 +
 +
 +===== 4.3. Effectuer un test long (option -t long) =====
 +
 +Même protocole mais avec l'option -t long
 +
 +
 +====== 5. Utiliser le démon smartd ======
 +Ce démon va permettre d'automatiser les tâches précédentes.
 +
 +Pour cela, il va falloir paramétrer le fichier de configuration de smartmontools, c'est à dire le fichier  **__/etc/smartd.conf__** .
 +(utiliser nano, xed, vi, vim ou n'importe quel éditeur...)
 +
 +
 +Premièrement rechercher la ligne suivante et commenter la.
 +<code bash>DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner</code>
 +
 +Elle devient donc
 +<code bash># DEVICESCAN -d removable -n standby -m root -M exec /usr/share/smartmontools/smartd-runner</code>
 +
 +Liser le fichier, vous y trouverez peut-être des informations intéressantes (même sûrement, sans doute...)
 +
 +
 +Pour scanner votre disque /dev/sda, ajouter la ligne
 +<code bash>/dev/sda -a -d sat -o on -S on -s (S/../.././01|L/../../1/03) -m root -M exec /usr/share/smartmontools/smartd-runner</code>
 +
 +
 +Faire de même pour tous les autres disques, par exemple si sdb également
 +<code bash>/dev/sdb -a -d sat -o on -S on -s (S/../.././02|L/../../2/03) -m root -M exec /usr/share/smartmontools/smartd-runner</code>
 +
 +
 +On va passer des options supplémataire au démon de smartctl afin qu'il gére correctement le disque
 +  * -o on: Active la collecte des données hors connexion.
 +  * -S on: Active la sauvegarde automatique des attributs.
 +  * -d sat: Cette option n'est pas obligatoire si le type de votre disque est bien reconnue
 +  * -s (S/../.././01|L/../../1/03): La programmation horaire Ici, un test court tous les jours à 1 heure du matin et un test long tous les lundi à 3 heures du matin
 +  * -m root : envoie un mail à l'utilisateur root
 +
 +Si vous en voulez dans une boite personnelle en plus
 +  * -m root, mon.nom@mon.domaine.ext
 +
 +
 +Redémarrer le démon smartmontools pour prise en compte des modifications
 +
 +<code bash># /etc/init.d/smartmontools restart</code>
 +
 +====== 6. Automatiser le lancement du démon au démarrage ======
 +Dernière étape, lancer le démon smartmontools au démarrage du système.
 +Editer le fichier **__/etc/default/smartmontools__** 
 +Et décommenter la ligne 
 +<code bash># uncomment to start smartd on system startup
 +#start_smartd=yes</code>
 +
 +
 +Qui devient 
 +<code bash># uncomment to start smartd on system startup
 +start_smartd=yes</code>
 +
 +Sauvegarder
 +
 +
 +Plus d'informations : [[https://sourceforge.net/projects/smartmontools/|https://sourceforge.net/projects/smartmontools/]]
 +
 +
 +====== 7. Gestion des badblocks ======
 +A partir d'ici, c'est un peu périlleux, donc à vos risques et périls. Le parcours est miné....
 +Si des badblocks ont été détectés par exemple sur la partition sda1,
 +
 +<code bash># smartctl -s on -a /dev/sda1
 +ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
 +  5 Reallocated_Sector_Ct   0x0032   100   100   000    Old_age   Always             6
 +....
 +187 Uncorrectable_Error_Cnt 0x0032   100   100   000    Old_age   Always             645
 +....
 +</code>
 +
 +<code bash># apt-get install e2fsprogs
 +</code>
 +
 +
 +<code bash># badblocks -v /dev/sda6 > bad-blocks</code>
 +
 +Si ce fichier contient des entrées c'est qu'il y a des badblocks. Mauvais signe...
 +
 +
 +<code bash>cat bad-blocks
 +155554476
 +155554477
 +155554478
 +155554479
 +155554480
 +155554481
 +155554482
 +155554483
 +155554580
 +155554581
 +155554582
 +155554583
 +155554584
 +155554585
 +155554586
 +155554587
 +155554972
 +155554973
 +....</code>
 +
 +
 +
 +Parfois, on peut forcer la réallocation des secteurs défectueux en écrivant dedans. Les données antérieures seront perdues dans tous les cas.
 +Sinon, il y a deux méthodes pour “vivre avec” :
 +
 +  * Si les défauts sont localisés à quelques endroits, on peut espérer repartitionner le disque en évitant les plages contenant des secteurs défectueux.
 +  * Lors du formatage, passer l’option **-c à e2fsck** pour détecter les secteurs défectueux et les marquer à ne pas utiliser.
 +
 +Attention, il ne faut alors pas écrire n'importe où. Dans l'exemple ci dessus on voit pour chaque groupe 8 blocs détectés par badblocks d'où l'option count=8.
 +
 +Ce qui donnera comme ligne de commande :
 +
 +<code bash>dd if=/dev/zero of=/dev/sda6 bs=1024 seek=117999276 count=8
 +dd if=/dev/zero of=/dev/sda6 bs=1024 seek=117999380 count=8</code>
 +
 +Faire de même avec les autres entrées.
 +
 +
 +
 +
 +Bon voilà, déjà de bonnes pistes ;)
 +
 +Plus d'informations :
 +
 +[[https://sourceforge.net/projects/smartmontools/|https://sourceforge.net/projects/smartmontools/]]
 +
 +
freebsd-smartmontools.1558420523.txt.gz · Dernière modification : 2019/07/17 19:24 (modification externe)