-
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)
-vpour verboseSi 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) oufsck.-lpour 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.
-Haffiche le résultat du SMART overall health self-assessment test.-apour voir toutes les infos du SMART-xpour 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
Par exemple quand SMART n’est pas supporté (non activé dans le BIOS), vous pouvez avoir une erreur : Unavalaible - device lacks SMART capability.
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
-laffiche les journaux du disque
-l errorimprime 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 selftestaffiche 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.
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.
Si détection d’erreurs (exemple: Error : UNC at LBA)
On voit alors que l’auto-test ne va pas au bout car à 90%.
Si SMART n’est pas supporté, on obtient un message : Error Counter logging not supported
Afficher les données complètes du disque
smartctl --all /dev/sda
Si aucune erreur, alors affiche : Completed without error et Remaining à 0% car les auto-tests vont jusqu’au bout :
Afficher la température du disque
smartctl -l scttemp /dev/sda
Test automatique
éditer le fichier /etc/default/smartmontools, puis activer
start_smartdet indiquer les périphériques à surveiller.
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.
Pour les utilisateurs avancés, au lieu de DEVICESCAN, on configure chaque disque indépendamment (-s configure les tests) :
La syntaxe étant
T/MM/DD/d/HHoù :Test le type de Test. ‘L’ pour (Long Self-Test), ‘S’ (Short Self-Test), ‘C’ (Conveyance Self-Test) et ‘O’ (Offline Immediate Test).MMest le mois de l’année en numérique 01 à 12.DDest le jour du mois en numérique 01 à 31.dest le jour de la semaine en numérique de 01 à 7.HHest 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