Smart error
Que faire en cas d'erreur S.M.A.R.T. ?
Après avoir convenablement installé et configuré smartmontools, vous venez de recevoir un mail comme ci-dessous.
This email was generated by the smartd daemon running on: host name: Mon_nom_d-ordinateur DNS domain: [Unknown] NIS domain: (none) The following warning/error was logged by the smartd daemon: Device: /dev/sda [SAT], 16 Currently unreadable (pending) sectors For details see host's SYSLOG. You can also use the smartctl utility for further investigation. The original email about this issue was sent at Sat Apr 1 06:31:52 2017 CEST Another email message will be sent in 24 hours if the problem persists.
Et vous pensez que vous allez devoir remplacer le disque et de base c'est une bonne idée, car c'est un signe avant coureur d'une défaillance générale du disque.
Cependant vous pouvez aussi faire en sorte de prolonger encore un peu la vie de ce disque mais pour cela il va falloir faire quelques manipulations assez délicates.
Pour notre exemple nous supposons que le fichier de périphérique associé au disque concerné est «/dev/sda».
La première chose à faire est de lancer un examen approfondi du dit disque avec la commande suivante :
# smartctl -t long /dev/sda smartctl 5.41 2011-06-09 r3365 [armv7l-linux-3.4.79-sun7i] (local build) Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net === START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION === Sending command: "Execute SMART Extended self-test routine immediately in off-line mode". Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful. Testing has begun. Please wait 162 minutes for test to complete. Test will complete after Wed Apr 12 01:51:37 2017 Use smartctl -X to abort test.
Le message retourné nous informe que les résultats de ce test seront disponibles dans 2 heures et 2 minutes,
cette durée dépend de la capacité et de la vélocité du disque.
Une fois terminé il faut exécuter la commande suivante :
~# smartctl -A /dev/sda smartctl 5.41 2011-06-09 r3365 [armv7l-linux-3.4.79-sun7i] (local build) Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net === START OF READ SMART DATA SECTION === SMART Attributes Data Structure revision number: 16 Vendor Specific SMART Attributes with Thresholds: ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE 1 Raw_Read_Error_Rate 0x002f 200 200 051 Pre-fail Always - 0 3 Spin_Up_Time 0x0027 178 174 021 Pre-fail Always - 2091 4 Start_Stop_Count 0x0032 100 100 000 Old_age Always - 232 5 Reallocated_Sector_Ct 0x0033 200 200 140 Pre-fail Always - 0 7 Seek_Error_Rate 0x002e 200 200 000 Old_age Always - 0 9 Power_On_Hours 0x0032 073 073 000 Old_age Always - 20035 10 Spin_Retry_Count 0x0032 100 100 000 Old_age Always - 0 11 Calibration_Retry_Count 0x0032 100 100 000 Old_age Always - 0 12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 231 191 G-Sense_Error_Rate 0x0032 066 066 000 Old_age Always - 34 192 Power-Off_Retract_Count 0x0032 200 200 000 Old_age Always - 193 193 Load_Cycle_Count 0x0032 001 001 000 Old_age Always - 2574607 194 Temperature_Celsius 0x0022 112 095 000 Old_age Always - 35 196 Reallocated_Event_Count 0x0032 200 200 000 Old_age Always - 0 197 Current_Pending_Sector 0x0032 200 200 000 Old_age Always - 16 <=== On retrouve bien les 16 secteurs illisibles qui sont en attende de ré-allocation 198 Offline_Uncorrectable 0x0030 200 200 000 Old_age Offline - 0 199 UDMA_CRC_Error_Count 0x0032 200 200 000 Old_age Always - 0 200 Multi_Zone_Error_Rate 0x0008 200 200 000 Old_age Offline - 0 240 Head_Flying_Hours 0x0032 077 077 000 Old_age Always - 17034 241 Total_LBAs_Written 0x0032 200 200 000 Old_age Always - 6841653103 242 Total_LBAs_Read 0x0032 200 200 000 Old_age Always - 5361545871 254 Free_Fall_Sensor 0x0032 200 200 000 Old_age Always - 0
Voir : Attributs S.M.A.R.T. connus
Vous pouvez aussi exécuter la commande «smartctl -x /dev/sda» qui vous donne l'intégralité des informations concernant votre disque (je ne mets pas le résultat ici car c'est très long).
Une première manipulation à faire est de passer la commande «fsck» sur chacune de vos partitions ou uniquement sur celles dont vous savez qu'il y a des erreurs. On va y mettre quelques option qui mettront automatiquement en liste noir e les secteurs défectueux.
Attention la commande est à faire uniquement sur les partitions non montées, donc il faut jouer du «umount» et/ou «lsof» pour les mettre dans le bon état.
fsck -ccDfv /dev/sda1
J'explique les options utilisées (attention la casse est importante) :
cc = Oui le «c» est doublé pour utiliser badblocks en lecture/écriture. Mis une seule fois c'est de la lecture seule. D = Optimisation des répertoires, CAD mise à jour des indexes f = Force la vérification même si le système de fichiers semble bon. v = Verbose, affiche la progression et autres informations
Bon maintenant il faut prendre votre mal en patience … par exemple il faut 4 jours pour 2 To avec un disque mécanique. Mais après tout dépend des perfs de votre disque.