DISQUE DUR : erreurs SMART, secteurs illisibles

Oui disons que c’est “une sorte de super blacklist” alors. :smiley:

C’est clair que sur 3 To ou beaucoup moins, un secteur n’est pas lu ou écrit tous les “quatre matins”.
il a le temps de “mourir”, de passer par des stades “semi-déffecteux” sans que SMART ne s’en apperçoive.

Il faudrait peut être prendre la peine de lire un disque dur en entier régulièrement, pour éviter ce genre de problème, ou du moins en réduire la probabilité.

Ou mieux, en lire une partie différentes régulièrement, jusqu’à avoir lu le disque en entier, et recommencer…

PS : Le “cd Seagate” devrait probablement proposer à vv222 de réallouer ces 32 “Uncorrectable Sector Count” au niveau disque.

[quote=“vv222”]Un badblocks en lecture (via e2fsck -c /dev/sdb1) n’ayant rien corrigé
(…)
Une nouvelle tentative m’a cette fois-ci marqué quatre secteurs défectueux. Mais sur 32 reportés par SMART, ça me paraît étonnamment peu.[/quote]
Si le disque compte plusieurs partitions, tous les secteurs défectueux ne sont pas forcément situés dans la partition vérifiée par fsck.

D’autre part, fsck ne compte pas en secteurs mais en blocs dont la taille est définie dans le système de fichiers (voir [mono]tune2fs -l[/mono]). Typiquement, pour un volume de taille classique, la taille de bloc est 4 Kio soit 8 secteurs de 512 octets.

Si le disque est au “format avancé” avec des secteurs physiques de 4 Kio et des secteurs logiques de 512 octets (voir [mono]hdparm -I[/mono]) et si les 32 secteurs logiques défectueux sont groupés en blocs de 8 secteurs consécutifs, ils correspondent aussi à 4 secteurs physiques. Un secteur physique défectueux rend défectueux les 8 secteurs logiques correspondants.

Une unique partition couvrant tout le disque :

[code]$ fdisk -l /dev/sdb

Disk /dev/sdb: 2,7 TiB, 3000592982016 bytes, 5860533168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: gpt
Disk identifier: D1A6206F-F93A-4A4C-B325-B4878B0F90BD

Device Start End Sectors Size Type
/dev/sdb1 2048 5860532223 5860530176 2,7T Linux filesystem[/code]

[quote]D’autre part, fsck ne compte pas en secteurs mais en blocs dont la taille est définie dans le système de fichiers (voir [mono]tune2fs -l[/mono]). Typiquement, pour un volume de taille classique, la taille de bloc est 4 Kio soit 8 secteurs de 512 octets.

Si le disque est au “format avancé” avec des secteurs physiques de 4 Kio et des secteurs logiques de 512 octets (voir [mono]hdparm -I[/mono]) et si les 32 secteurs logiques défectueux sont groupés en blocs de 8 secteurs consécutifs, ils correspondent aussi à 4 secteurs physiques. Un secteur physique défectueux rend défectueux les 8 secteurs logiques correspondants.[/quote]
Ça me paraît en adéquation avec ma situation si j’interprète bien le retour de fdisk.
Auquel cas tous mes secteurs défectueux ont été détectés par badblocks, et seront probablement ré-alloués lors du badblocks en lecture/écriture.

Problème réglé pour moi !

Un badblocks en lecture/écriture (e2fsck -fyvcck), malgré les plus de 50 h qu’il y a passé, n’a pas abouti à la réallocation des secteurs défectueux du disque.
Je vais essayer l’outil du constructeur lorsque j’aurai de nouveau un accès physique à cette machine.

Avec l’option -k (préserver les blocs défectueux existants), cela ne m’étonne pas.
Y a-t-il eu des erreurs de lecture ou d’écriture pendant l’opération ? Sinon, cela veut dire qu’il n’a même pas essayé d’accéder aux secteurs défectueux.

Vérifie si l’outil du constructeur ne risque pas d’écraser le contenu du disque.

Autres outils possibles : [mono]badblocks -w[/mono] ou [mono]hdparm --write-sector[/mono] sur les secteurs défecteux si tu connais leurs adresses LBA. Avertissement habituel : risque de perte de données en cas d’erreur d’utilisation.

Quelques nouvelles au sujet de ce disque :

Après être resté à peu près stable pendant trois~quatre mois (le nombre de secteur défectueux est monté péniblement à 40, 80 puis 120), je viens de me retrouver avec un pic d’erreurs qui a monté ce nombre à plus de 1500 secteurs défectueux.
C’est l’aiguillon qu’il me manquait, et je viens de commander un autre disque (Western Digital Red 3To) pour copier les données contenues sur le disque défectueux, ce qui me permettra de tranquillement essayer les différents outils qui m’ont été proposé dans cette discussion (je pense en particulier à l’outil SeaTools qui m’a été proposé par PengouinPdt) sans peur de perdre de données.

Pendant ce temps le disque défectueux restera démonté pour éviter que sa situation ne s’aggrave. Sa prochaine utilisation sera uniquement pour en copier le contenu sur le nouveau disque avant de tenter de le remettre en bon état.

Je vous tiendrai au courant des résultats, en particulier au sujet de l’efficacité de SeaTools, en espérant que ça facilitera la vie des prochaines personnes qui se retrouveront face à ce genre de problème.


Pour plus de visibilité j’enlève le marqueur “résolu” de cette discussion, et le remettrai une fois le disque de nouveau comme neuf ou au contraire définitivement mort.

Bonsoir,

Tu as choisi un “WD” , j’ai eu affaire à un modèle SATA2 2To, qui présentait un grand nombre d’erreur SMART.
Cependant l’indicateur d’état SMART sur son nombre de cycle (Load_Cycle_Count) est à 1. Il a déja bien servi.

A part un outil DOS pour tester et éventuelement réparer le disque, je n’ai pas trouvé grand chose.

Pour une éventuelle mise à jour des firmware, ça se passe sous Windows, (Pas d’ISO comme chez Seagate).
Un executable qui est sensé voir ça en ligne (a partir d’un disque dur externe usb).
J’ai essayer sur une machine virtulle, mais sans succès…

Je n’ai pas réussi à savoir si de nouveau firmware était disponible pour mon disque dur.
J’ai appelé le SAV “WD”, pour tenter de le savoir, mais sans succès…
Mon interlocuteur m’a affirmé que l’on ne pouvait pas mettre a jour le firmware, j’ai tout de même un gros doute.

Bref, je reste chez Seagate.

Sinon j’ai partiellement solutionné mon affaire en n’allouant pas 300 Go en fin du disque dur, la ou j’ai constaté des erreurs.
C’est un cas très similaire à celui la (grand nombre de Current_Pending_Sector), mais aucune alerte:
https://www.debian-fr.org/badblocks-accelere-le-processus-t50158.html

[quote=“cedric058”]Tu as choisi un “WD” , j’ai eu affaire à un modèle SATA2 2To, qui présentait un grand nombre d’erreur SMART.
Cependant l’indicateur d’état SMART sur son nombre de cycle (Load_Cycle_Count) est à 1. Il a déja bien servi.[/quote]
Pour éviter les mauvaises surprises, je compte tester intégralement le nouveau disque via smartctl et badblocks dès sa réception. Au moindre soupçon d’erreur je le ferai immédiatement échanger.

[quote=“cedric058”]A part un outil DOS pour tester et éventuelement réparer le disque, je n’ai pas trouvé grand chose.

Pour une éventuelle mise à jour des firmware, ça se passe sous Windows, (Pas d’ISO comme chez Seagate).[/quote]
Hors de question que je monte un système DOS ou Windows pour ça, il faudra donc que je me contente du firmware installé au moment de la réception du disque.

Moi pas, ce qui se comprend aisément quand on se rend compte que les problèmes avec mon disque Seagate ont commencé juste après que la garantie ait pris fin.

Mes problèmes avec ce disque ont en effet commencé à se manifester lorsque qu’il a dépassé les 90 % de remplissage, il faudra peut-être que je tente quelque chose dans le genre en utilisant les tests SMART pour repérer les parties “à risques” du disque et en ne les incluant pas dans la partition utilisable.

Pour l’outils dos, j’ai utilisé Unetbootin pour installer FreeDos sur une clé usb.

Pour l’outils dos, j’ai utilisé Unetbootin pour installer FreeDos sur une clé usb.[/quote]
Ah oui, les implémentations libres de DOS m’étaient sorties de la tête au moment de poster mon dernier message. Je garde cette idée dans un coin de ma mémoire, ça me servira probablement dans un avenir plus ou moins lointain.

Il y a du neuf, mais qui me dépasse un peu :

5 Reallocated_Sector_Ct 0x0033 097 097 010 Pre-fail Always - 4408
197 Current_Pending_Sector 0x0012 088 088 000 Old_age Always - 2072
198 Offline_Uncorrectable 0x0010 088 088 000 Old_age Offline - 2072
[/code]
Je ne comprends pas comment le nombre de secteurs ré-alloués peut-être supérieur au nombre de secteurs défectueux.
Je passerai sur le fait que la ré-allocation débute presque six mois après l’apparition des premiers secteurs défectueux, c’est probablement le firmware du disque qui est programmé d’une manière qui m’échappe.

Au passage, j’ai reçu le nouveau disque que j’ai commandé, je vais donc enfin pouvoir faire un backup complet de celui défectueux, ce qui me permettra de tester des manipulations plus “risquées” comme les outils constructeurs qui m’ont été proposés.

Je pense que tu as 4408 secteurs qui ont été réaloués.
+
2072 secteurs “incorrigibles” (SMART n’arrive pas à les lire et ne les réalloue donc pas), il est donc logique qu’ils soient également en attente d’une éventuelle réallocation.

Un lien en Anglais:
http://www.sj-vs.net/forcing-a-hard-disk-to-reallocate-bad-sectors/
Un lien en Français:
http://linuxfr.org/users/zezinho/journaux/secteurs-defectueux

Si les données ne t’importe plus:
Avec les tests “smartctl”, essayes de déterminer l’emplacement des secteurs défecteux.

Un truc qui marche pas trop mal pour tenter de forcer la réalloction d’un secteur (ici le 1261069669 secteur):

[code]# hdparm –read-sector 1261069669 /dev/sdx

hdparm –write-sector --yes-i-know-what-i-am-doing 1261069669 /dev/sdx[/code]

J’avais fais un petit script pour “ballayer” une zone plusieur fois de cette manière.
Le mieux aurais été des les lire un par un, puis si erreur il y avait, de l’écrire, mais bon.

J’ai ainsi réussi à mettre à 0 mes “Offline_Uncorrectable”, cependant mes “Current_Pending_Sector” ont “grimpés” en flèche.

Reallocated_Sector_Ct compte les secteurs qui ont déjà été réalloués, et donc qui ne sont normalement plus défectueux (sauf si le nouvel emplacement devient défectueux à son tour).

Current_Pending_Sector compte les secteurs actuellement illisibles demandés par le système hôte.
Offline_Uncorrectable compte les secteurs actuellement illisibles détectés par l’autotest hors ligne. Il est n’est pas anormal que les deux valeurs soient identiques. Tous ces secteurs sont en attente de réallocation à l’occasion d’une écriture (avec un peu de chance).

Bonjour,

Pourquoi ne pas utiliser ddrescue pour cloner ton disque dur ?
Package gddrescue.

C’est ce que j’utilise en cas de disque dur très endommagés.

[quote=“cleloup”]Pourquoi ne pas utiliser ddrescue pour cloner ton disque dur ?
Package gddrescue.[/quote]
Je pensais me contenter de rsync, mais je garde ta suggestion en tête.
L’avantage pour moi de l’utilisation de rsync étant tout simplement que je sais déjà bien m’en servir.

Gardons aussi en tête que ce disque dur ne contient pas de données “critiques”, la récupération des données endommagées n’est donc pas une priorité.

Une autre question tant que je suis là, concernant non pas le disque défectueux mais son futur remplaçant : comment m’assurer que celui-ci n’a pas de défaut de conception avant de le mettre en production ?
Je pense faire une passe complète de badblocks dessus, mais je sais que smartctl propose aussi une série de tests. Par contre je ne comprends pas forcément à quoi correspondent chacun de ces tests, donc je ne sais pas lesquels seraient vraiment utiles pour tester un disque neuf.

[quote=“vv222”][quote=“cleloup”]Pourquoi ne pas utiliser ddrescue pour cloner ton disque dur ?
Package gddrescue.[/quote]
Je pensais me contenter de rsync, mais je garde ta suggestion en tête.
L’avantage pour moi de l’utilisation de rsync étant tout simplement que je sais déjà bien m’en servir.

Gardons aussi en tête que ce disque dur ne contient pas de données “critiques”, la récupération des données endommagées n’est donc pas une priorité.

Une autre question tant que je suis là, concernant non pas le disque défectueux mais son futur remplaçant : comment m’assurer que celui-ci n’a pas de défaut de conception avant de le mettre en production ?
Je pense faire une passe complète de badblocks dessus, mais je sais que smartctl propose aussi une série de tests. Par contre je ne comprends pas forcément à quoi correspondent chacun de ces tests, donc je ne sais pas lesquels seraient vraiment utiles pour tester un disque neuf.[/quote]

badblock -v /dev/sd(Disque dur)

Le resultat est en français à la fin du scan.

Pour un disque vierge, utiliser l’option -w pour un test avec écriture destructrice.

Bon, le disque mourant ne remonte plus ses informations SMART, j’ai finalement débuté le transfert des données en me disant que ça doit être un signe de panne imminente.
Ça m’a forcé à interrompre le badblocks du nouveau disque au cours de la relecture de la deuxième passe, mais la première s’est effectuée sans erreur. Espérons que mon impatience ne m’aura pas fait louper une faiblesse matérielle.

D’ici quelques jours je commencerai à bosser sur le disque mourant avec les outils constructeurs, je reviendrai vous tenir au courant des résultats.