• LINUX > vérifier et corriger les secteurs défectueux des disques durs

       

      sudo fdisk -l
      Disk /dev/sda: 637.8 GB, 637802643456 bytes
      255 heads, 63 sectors/track, 77541 cylinders
      Units = cylinders of 16065 * 512 = 8225280 bytes
      Device      Boot    Start         End      Blocks   Id  System
      /dev/sda1   *           1          13      104391   83  Linux
      /dev/sda2              14        2624    20972857+  83  Linux
      /dev/sda3            7846        8367     4192933+  82  Linux swap / Solaris
      /dev/sda4            8368       77541   555640123+  8e  Linux LVM

       

      Puis, pour vérifier une partition particulière :

       

      sudo badblocks -v /dev/sda9 > badsectors.txt
      Checking blocks 0 to 3906559
      Checking for bad blocks (read-only test):
      done
      Pass completed, 0 bad blcks found. (0/0/0 errors)

       

      -v pour verbose

       

      Si des secteurs défectueux sont trouvés, démonter le volume (umount) et informer l’OS de ne pas écrire dans ces secteurs à l’aide du fichier badsectors.txt et la commande e2fsck (pour ext2/ext3/ext4) ou fsck.

      -l pour indiquer quels blocks depuis le fichier badsectors.txt :

       

      sudo e2fsck -l badsectors.txt /dev/sda10 # pour les ext2/ext3/ext4
      sudo fsck -l badsectors.txt /dev/sda10 # pour les autres systèmes

      S.M.A.R.T.

      sudo apt install smartmontools

       

      sudo smartctl -H /dev/sda9
      === START OF READ SMART DATA SECTION ===
      SMART overall-health self-assessment test result: PASSED

       

      Le résultat de la commande ci-dessus indique que le disque est sain.

      -H affiche le résultat du SMART overall health self-assessment test.

      -a pour voir toutes les infos du SMART

      -x pour voir toutes les infos SMART et non-SMART du volume.

       

      smartctl : interroge les entrées SMART d’un disque en ligne de commandes.

      smartd : daemon qui monitore les disques et alerte par mail lorsque des erreurs sont rencontrées, ou reportées dans les journaux systèmes : /var/log/messages ou /var/log/syslog

       

      La commande smartctl permet :

      Lancer un auto-test court ou long puis attendre le résultat

      Lister les erreurs du disque ou obtenir le contenu du rapport

      Configurer smartmontools pour effectuer des vérifications automatiques vos disques et vous alerter par mail.

      Afficher les informations du disque

      smartctl -i /dev/sda

      Afficher les informations du disque avec smartctl

      Par exemple quand SMART n’est pas supporté (non activé dans le BIOS), vous pouvez avoir une erreur : Unavalaible - device lacks SMART capability.
      Afficher les informations du disque avec smartctl

      Il se peut alors que SMART soit désactivé sur le périphérique, vous pouvez alors tenter :

      smartctl --smart=on /dev/sda

      Lancer un test

      Trois types d’auto-test du disque sont possibles.

      Offline : démarre immédiatement un test. Met à jour les valeurs d’attribut SMART, et si des erreurs sont détectées.

      short : vérifie les performances électriques et mécaniques, et les performances de lecture du disque. Les résultats sont consignés dans le journal des erreurs.

      long : version plus longue et plus approfondie de l’autotest court. Cela prend une dizaine de minutes.

       

      smartctl -t short /dev/sda

      Lancer un auto-test court du disque avec smartctl

       

      -l affiche les journaux du disque
      -l error imprime les pages du journal du compteur d’erreurs pour les lectures, les écritures et vérifications. La ligne de vérification n’est sortie que si elle a un élément autre que zéro.

      -l selftest affiche les informations d’autotest du disque dur. Le disque conserve un journal d’autotest (option -t). Si le test ne s’est pas terminé avec succès, le pourcentage du test restant s’affiche. L’heure à laquelle le test a eu lieu, mesurée en heures de disque.

      smartctl -l error /dev/sda

       

      Si aucune erreur détectée : No erreurs logged.
      Vérifier les erreurs SMART avec smartctl

       

      Mais on peut aussi afficher les résultats des auto-tests du disque :

      smartctl -l selftest /dev/sda

       

      Ici aucune erreur détecté. Remaining est à 0% ce qui indique que les auto-tests vont bien jusqu’au bout.
      Vérifier les erreurs SMART avec smartctl

       

      Si détection d’erreurs (exemple: Error : UNC at LBA)
      Vérifier les erreurs SMART avec smartctl

       

      On voit alors que l’auto-test ne va pas au bout car à 90%.
      Vérifier les erreurs SMART avec smartctl

       

      Si SMART n’est pas supporté, on obtient un message : Error Counter logging not supported
      Vérifier les erreurs SMART avec smartctl

      Afficher les données complètes du disque

      smartctl --all /dev/sda

      Afficher les données complètes du disque : identification et SMART

       

      Si aucune erreur, alors affiche : Completed without error et Remaining à 0% car les auto-tests vont jusqu’au bout :
      Afficher les données complètes du disque : identification et SMART

      Afficher la température du disque

      smartctl -l scttemp /dev/sda

      Afficher la température du disque avec smartctl

      Test automatique

      éditer le fichier /etc/default/smartmontools, puis activer start_smartd et indiquer les périphériques à surveiller.
      Smartmontools en daemon pour vérifier les disques et alerter par mail

       

      On peut aller plus loin en éditant le fichier /etc/smartd.conf
      DEVICESCAN, va analyser tous les disques branchés, un mail d’alerte est envoyé à root (-m), mais prend aussi les emails.
      Smartmontools en daemon pour vérifier les disques et alerter par mail

       

      Pour les utilisateurs avancés, au lieu de DEVICESCAN, on configure chaque disque indépendamment (-s configure les tests) :
      Smartmontools en daemon pour vérifier les disques et alerter par mail

       

      La syntaxe étant T/MM/DD/d/HH où :

      T est le type de Test. ‘L’ pour (Long Self-Test), ‘S’ (Short Self-Test), ‘C’ (Conveyance Self-Test) et ‘O’ (Offline Immediate Test).

      MM est le mois de l’année en numérique 01 à 12.

      DD est le jour du mois en numérique 01 à 31.

      d est le jour de la semaine en numérique de 01 à 7.

      HH est l’heure du jour soit donc de 01 à 23.

       

      /dev/sda -a -S on -m kikoo@kikoo.com -s S/../.././01 # effectue un auto-test court à 13h chaque jour

       

 

Aucun commentaire

 

Laissez un commentaire