Le 07/08/2010 00:30, Pascal Hambourg a écrit :Quand on demande à lire un secteur défaillant, des erreurs de lecture se
produisent et le contrôleur intégré doit faire plusieurs tentatives de
lecture avant d'y parvenir éventuellement ; ça prend du temps et ça fait
chuter le débit effectif. Ensuite quand on demande à écrire sur ce
secteur, il peut se passer deux choses :
- le secteur est laissé sur place et la réécriture le renforce, il
devient donc facile à lire et le débit redevient normal ;
je me suis également demandé si le fait d'écrire un nombre conséquent de
secteurs en une seule fois ne permettrait pas de rééquilibrer les
secteurs, c'est à dire de les repositionner petit à petit de facon plus
régulière et par conséquence faire pareil pour la zone tampon qui se
trouve entre chaque secteur?
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ; lors d'un accès séquentiel
ultérieur, il faudra donc que la tête de lecture fasse un crochet pour
accéder à ce secteur et ça fait chuter le debit effectif.
je pensait plutot à des chutes très importantes qui sont plutot dues à
des difficultés de lecture (le disque doit certainement repositionner sa
tête et tenter une autre lecture ou bien il n'arrive pas à lire une
piste entière en une seule fois et met donc plusieurs tours au lieu d'un
seul).
J'ai quelques disques ou j'ai 'vu' la réallocation de secteurs se faire,
mais la chute de débit était très modérée (moins de 20%)
Sur les vieux disques (idem pour les disquettes), on avait quelques fois
un entralacement des secteurs pour laisser à l'électronique (ou au
système...) le temps de lire/écrire.
Je suppose qu'aujourd'hui ca n'existe plus, mais comme les disques
actuels sont devenus des boites noires... :-)
Le 07/08/2010 00:30, Pascal Hambourg a écrit :
Quand on demande à lire un secteur défaillant, des erreurs de lecture se
produisent et le contrôleur intégré doit faire plusieurs tentatives de
lecture avant d'y parvenir éventuellement ; ça prend du temps et ça fait
chuter le débit effectif. Ensuite quand on demande à écrire sur ce
secteur, il peut se passer deux choses :
- le secteur est laissé sur place et la réécriture le renforce, il
devient donc facile à lire et le débit redevient normal ;
je me suis également demandé si le fait d'écrire un nombre conséquent de
secteurs en une seule fois ne permettrait pas de rééquilibrer les
secteurs, c'est à dire de les repositionner petit à petit de facon plus
régulière et par conséquence faire pareil pour la zone tampon qui se
trouve entre chaque secteur?
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ; lors d'un accès séquentiel
ultérieur, il faudra donc que la tête de lecture fasse un crochet pour
accéder à ce secteur et ça fait chuter le debit effectif.
je pensait plutot à des chutes très importantes qui sont plutot dues à
des difficultés de lecture (le disque doit certainement repositionner sa
tête et tenter une autre lecture ou bien il n'arrive pas à lire une
piste entière en une seule fois et met donc plusieurs tours au lieu d'un
seul).
J'ai quelques disques ou j'ai 'vu' la réallocation de secteurs se faire,
mais la chute de débit était très modérée (moins de 20%)
Sur les vieux disques (idem pour les disquettes), on avait quelques fois
un entralacement des secteurs pour laisser à l'électronique (ou au
système...) le temps de lire/écrire.
Je suppose qu'aujourd'hui ca n'existe plus, mais comme les disques
actuels sont devenus des boites noires... :-)
Le 07/08/2010 00:30, Pascal Hambourg a écrit :Quand on demande à lire un secteur défaillant, des erreurs de lecture se
produisent et le contrôleur intégré doit faire plusieurs tentatives de
lecture avant d'y parvenir éventuellement ; ça prend du temps et ça fait
chuter le débit effectif. Ensuite quand on demande à écrire sur ce
secteur, il peut se passer deux choses :
- le secteur est laissé sur place et la réécriture le renforce, il
devient donc facile à lire et le débit redevient normal ;
je me suis également demandé si le fait d'écrire un nombre conséquent de
secteurs en une seule fois ne permettrait pas de rééquilibrer les
secteurs, c'est à dire de les repositionner petit à petit de facon plus
régulière et par conséquence faire pareil pour la zone tampon qui se
trouve entre chaque secteur?
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ; lors d'un accès séquentiel
ultérieur, il faudra donc que la tête de lecture fasse un crochet pour
accéder à ce secteur et ça fait chuter le debit effectif.
je pensait plutot à des chutes très importantes qui sont plutot dues à
des difficultés de lecture (le disque doit certainement repositionner sa
tête et tenter une autre lecture ou bien il n'arrive pas à lire une
piste entière en une seule fois et met donc plusieurs tours au lieu d'un
seul).
J'ai quelques disques ou j'ai 'vu' la réallocation de secteurs se faire,
mais la chute de débit était très modérée (moins de 20%)
Sur les vieux disques (idem pour les disquettes), on avait quelques fois
un entralacement des secteurs pour laisser à l'électronique (ou au
système...) le temps de lire/écrire.
Je suppose qu'aujourd'hui ca n'existe plus, mais comme les disques
actuels sont devenus des boites noires... :-)
Pascal Hambourg a fait rien qu'à écrire:Th.A.C a écrit :Le 06/08/2010 18:18, Fabien LE LEZ a écrit :Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à titre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jettes."
personnel, ça peut être intéressant. J'ai "sauvé" à grands coups de
cycles de lecture/écriture plusieurs disques récupérés avec un certain
nombre de secteurs en piteux état qui fonctionnent sans souci depuis.
(depuis) combien de temps ? Je suis toujours parti du principe (peut-être
à tort) qu'un disk qui commençait de battre de l'aile, ça présageait rien
de bon sur son avenir (et donc pas de remise en exploit').
Normalement, le smart s'en occupe. Le disque a des secteurs de réserve.
Oui, mais le contrôleur n'arrive pas toujours à identifier les secteurs
douteux et à les réparer ou réallouer de façon transparente. Il faut
Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
parfois l'aider un peu.
Ah:
Est-ce que tu peux détailler la manip.. smartmontools, hdparm, outil maison ?
Petits-doigts-musclés + feeling ?
Et aussi, est-ce que ça marche si tu montes le disk avec un adaptateur USB..
Ensuite quand on demande à écrire sur ce
secteur, il peut se passer deux choses :
- le secteur est laissé sur place et la réécriture le renforce, il
devient donc facile à lire et le débit redevient normal ;
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ;
Ca, tu le vois en demandant le log du S.M.A.R.T du périph ?..
Pascal Hambourg a fait rien qu'à écrire:
Th.A.C a écrit :
Le 06/08/2010 18:18, Fabien LE LEZ a écrit :
Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à titre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jettes."
personnel, ça peut être intéressant. J'ai "sauvé" à grands coups de
cycles de lecture/écriture plusieurs disques récupérés avec un certain
nombre de secteurs en piteux état qui fonctionnent sans souci depuis.
(depuis) combien de temps ? Je suis toujours parti du principe (peut-être
à tort) qu'un disk qui commençait de battre de l'aile, ça présageait rien
de bon sur son avenir (et donc pas de remise en exploit').
Normalement, le smart s'en occupe. Le disque a des secteurs de réserve.
Oui, mais le contrôleur n'arrive pas toujours à identifier les secteurs
douteux et à les réparer ou réallouer de façon transparente. Il faut
Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
parfois l'aider un peu.
Ah:
Est-ce que tu peux détailler la manip.. smartmontools, hdparm, outil maison ?
Petits-doigts-musclés + feeling ?
Et aussi, est-ce que ça marche si tu montes le disk avec un adaptateur USB..
Ensuite quand on demande à écrire sur ce
secteur, il peut se passer deux choses :
- le secteur est laissé sur place et la réécriture le renforce, il
devient donc facile à lire et le débit redevient normal ;
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ;
Ca, tu le vois en demandant le log du S.M.A.R.T du périph ?..
Pascal Hambourg a fait rien qu'à écrire:Th.A.C a écrit :Le 06/08/2010 18:18, Fabien LE LEZ a écrit :Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à titre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jettes."
personnel, ça peut être intéressant. J'ai "sauvé" à grands coups de
cycles de lecture/écriture plusieurs disques récupérés avec un certain
nombre de secteurs en piteux état qui fonctionnent sans souci depuis.
(depuis) combien de temps ? Je suis toujours parti du principe (peut-être
à tort) qu'un disk qui commençait de battre de l'aile, ça présageait rien
de bon sur son avenir (et donc pas de remise en exploit').
Normalement, le smart s'en occupe. Le disque a des secteurs de réserve.
Oui, mais le contrôleur n'arrive pas toujours à identifier les secteurs
douteux et à les réparer ou réallouer de façon transparente. Il faut
Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
parfois l'aider un peu.
Ah:
Est-ce que tu peux détailler la manip.. smartmontools, hdparm, outil maison ?
Petits-doigts-musclés + feeling ?
Et aussi, est-ce que ça marche si tu montes le disk avec un adaptateur USB..
Ensuite quand on demande à écrire sur ce
secteur, il peut se passer deux choses :
- le secteur est laissé sur place et la réécriture le renforce, il
devient donc facile à lire et le débit redevient normal ;
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ;
Ca, tu le vois en demandant le log du S.M.A.R.T du périph ?..
Pascal Hambourg a fait rien qu'à écrire:Th.A.C a écrit :Le 06/08/2010 18:18, Fabien LE LEZ a écrit :
Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à ti tre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jett es."
Pascal Hambourg a fait rien qu'à écrire:
Th.A.C a écrit :
Le 06/08/2010 18:18, Fabien LE LEZ a écrit :
Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à ti tre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jett es."
Pascal Hambourg a fait rien qu'à écrire:Th.A.C a écrit :Le 06/08/2010 18:18, Fabien LE LEZ a écrit :
Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à ti tre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jett es."
je me suis également demandé si le fait d'écrire un nombre conséquent de
secteurs en une seule fois ne permettrait pas de rééquilibrer les
secteurs, c'est à dire de les repositionner petit à petit de facon plus
régulière et par conséquence faire pareil pour la zone tampon qui se
trouve entre chaque secteur?
Tu parles du décalage latéral de la magnétisation par rapport à l'axe
longitudinal de la piste résultant de l'imprécision de positionnement du
bras de tête lors de l'écriture ?
J'avoue que je ne m'étais pas posé la question, et je n'ai pas de
réponse. J'aurais tendance à penser que la précision de positionnement
est suffisante pour que ce ne soit pas un problème.
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ; lors d'un accès séquentiel
ultérieur, il faudra donc que la tête de lecture fasse un crochet pour
accéder à ce secteur et ça fait chuter le debit effectif.
je pensait plutot à des chutes très importantes qui sont plutot dues à
des difficultés de lecture (le disque doit certainement repositionner sa
tête et tenter une autre lecture ou bien il n'arrive pas à lire une
piste entière en une seule fois et met donc plusieurs tours au lieu d'un
seul).
J'ai quelques disques ou j'ai 'vu' la réallocation de secteurs se faire,
mais la chute de débit était très modérée (moins de 20%)
Après la réallocation ? 20 % ce n'est quand même pas négligeable.
Sur les vieux disques (idem pour les disquettes), on avait quelques fois
un entralacement des secteurs pour laisser à l'électronique (ou au
système...) le temps de lire/écrire.
Je suppose qu'aujourd'hui ca n'existe plus, mais comme les disques
actuels sont devenus des boites noires... :-)
Ça n'aurait guère d'intérêt aujourd'hui où les données sont bufferisées
et transférées en DMA, et ça ferait baisser le débit séquentiel.
j'ai connu des systèmes 8 bits dont le processeur n'était pas assez
rapide pour traiter les données d'un lecteur de disquettes double
densité sans entrelacement.
je me suis également demandé si le fait d'écrire un nombre conséquent de
secteurs en une seule fois ne permettrait pas de rééquilibrer les
secteurs, c'est à dire de les repositionner petit à petit de facon plus
régulière et par conséquence faire pareil pour la zone tampon qui se
trouve entre chaque secteur?
Tu parles du décalage latéral de la magnétisation par rapport à l'axe
longitudinal de la piste résultant de l'imprécision de positionnement du
bras de tête lors de l'écriture ?
J'avoue que je ne m'étais pas posé la question, et je n'ai pas de
réponse. J'aurais tendance à penser que la précision de positionnement
est suffisante pour que ce ne soit pas un problème.
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ; lors d'un accès séquentiel
ultérieur, il faudra donc que la tête de lecture fasse un crochet pour
accéder à ce secteur et ça fait chuter le debit effectif.
je pensait plutot à des chutes très importantes qui sont plutot dues à
des difficultés de lecture (le disque doit certainement repositionner sa
tête et tenter une autre lecture ou bien il n'arrive pas à lire une
piste entière en une seule fois et met donc plusieurs tours au lieu d'un
seul).
J'ai quelques disques ou j'ai 'vu' la réallocation de secteurs se faire,
mais la chute de débit était très modérée (moins de 20%)
Après la réallocation ? 20 % ce n'est quand même pas négligeable.
Sur les vieux disques (idem pour les disquettes), on avait quelques fois
un entralacement des secteurs pour laisser à l'électronique (ou au
système...) le temps de lire/écrire.
Je suppose qu'aujourd'hui ca n'existe plus, mais comme les disques
actuels sont devenus des boites noires... :-)
Ça n'aurait guère d'intérêt aujourd'hui où les données sont bufferisées
et transférées en DMA, et ça ferait baisser le débit séquentiel.
j'ai connu des systèmes 8 bits dont le processeur n'était pas assez
rapide pour traiter les données d'un lecteur de disquettes double
densité sans entrelacement.
je me suis également demandé si le fait d'écrire un nombre conséquent de
secteurs en une seule fois ne permettrait pas de rééquilibrer les
secteurs, c'est à dire de les repositionner petit à petit de facon plus
régulière et par conséquence faire pareil pour la zone tampon qui se
trouve entre chaque secteur?
Tu parles du décalage latéral de la magnétisation par rapport à l'axe
longitudinal de la piste résultant de l'imprécision de positionnement du
bras de tête lors de l'écriture ?
J'avoue que je ne m'étais pas posé la question, et je n'ai pas de
réponse. J'aurais tendance à penser que la précision de positionnement
est suffisante pour que ce ne soit pas un problème.
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ; lors d'un accès séquentiel
ultérieur, il faudra donc que la tête de lecture fasse un crochet pour
accéder à ce secteur et ça fait chuter le debit effectif.
je pensait plutot à des chutes très importantes qui sont plutot dues à
des difficultés de lecture (le disque doit certainement repositionner sa
tête et tenter une autre lecture ou bien il n'arrive pas à lire une
piste entière en une seule fois et met donc plusieurs tours au lieu d'un
seul).
J'ai quelques disques ou j'ai 'vu' la réallocation de secteurs se faire,
mais la chute de débit était très modérée (moins de 20%)
Après la réallocation ? 20 % ce n'est quand même pas négligeable.
Sur les vieux disques (idem pour les disquettes), on avait quelques fois
un entralacement des secteurs pour laisser à l'électronique (ou au
système...) le temps de lire/écrire.
Je suppose qu'aujourd'hui ca n'existe plus, mais comme les disques
actuels sont devenus des boites noires... :-)
Ça n'aurait guère d'intérêt aujourd'hui où les données sont bufferisées
et transférées en DMA, et ça ferait baisser le débit séquentiel.
j'ai connu des systèmes 8 bits dont le processeur n'était pas assez
rapide pour traiter les données d'un lecteur de disquettes double
densité sans entrelacement.
xtof pernod a écrit:Pascal Hambourg a fait rien qu'à écrire:Th.A.C a écrit :Le 06/08/2010 18:18, Fabien LE LEZ a écrit :
Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à titre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jettes."
C'est une question de coût. Combien coûte un informaticien qui passe une
journée à réparer un disque ?
Combien coûte un disque ? En encore, là, je
suppose que le disque a pu être réparé et continue de fonctionner.
J'ai même vu quelqu'un m'expliquer que lors d'un déménagement, il coûtait
moins cher de jeter les meubles des anciens locaux et de faire livrer des
meubles neufs dans les nouveaux locaux que de payer des déménageurs pour
transporter les meubles.
xtof pernod a écrit:
Pascal Hambourg a fait rien qu'à écrire:
Th.A.C a écrit :
Le 06/08/2010 18:18, Fabien LE LEZ a écrit :
Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à titre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jettes."
C'est une question de coût. Combien coûte un informaticien qui passe une
journée à réparer un disque ?
Combien coûte un disque ? En encore, là, je
suppose que le disque a pu être réparé et continue de fonctionner.
J'ai même vu quelqu'un m'expliquer que lors d'un déménagement, il coûtait
moins cher de jeter les meubles des anciens locaux et de faire livrer des
meubles neufs dans les nouveaux locaux que de payer des déménageurs pour
transporter les meubles.
xtof pernod a écrit:Pascal Hambourg a fait rien qu'à écrire:Th.A.C a écrit :Le 06/08/2010 18:18, Fabien LE LEZ a écrit :
Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à titre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jettes."
C'est une question de coût. Combien coûte un informaticien qui passe une
journée à réparer un disque ?
Combien coûte un disque ? En encore, là, je
suppose que le disque a pu être réparé et continue de fonctionner.
J'ai même vu quelqu'un m'expliquer que lors d'un déménagement, il coûtait
moins cher de jeter les meubles des anciens locaux et de faire livrer des
meubles neufs dans les nouveaux locaux que de payer des déménageurs pour
transporter les meubles.
xtof pernod a écrit :Pascal Hambourg a fait rien qu'à écrire:Th.A.C a écrit :Le 06/08/2010 18:18, Fabien LE LEZ a écrit :Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à titre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jettes."
Je suis bien d'accord, mais il y a aussi la logique économique qui
prévaut dans un cadre professionnel où le temps et les données c'est de
l'argent : "ça coûte plus cher à réparer qu'à remplacer, et même si on
peut réparer il y a un risque sur la fiabilité ? on jette".
personnel, ça peut être intéressant. J'ai "sauvé" à grands coups de
cycles de lecture/écriture plusieurs disques récupérés avec un certain
nombre de secteurs en piteux état qui fonctionnent sans souci depuis.
(depuis) combien de temps ? (...)
Plusieurs années en temps total, (...)
Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
Ah si, c'est fiable. Mais quand on en est là, c'est déjà trop tard :
sauf erreur transitoire ou coup de bol, le contenu du secteur est perdu.
parfois l'aider un peu.
Ah:
Est-ce que tu peux détailler la manip.. smartmontools, hdparm, outil maison ?
Petits-doigts-musclés + feeling ?
Il faut un peu de tout ça.
Le postulat de base, c'est que le contrôleur intégré du disque ne peut
réallouer un secteur défectueux (illisible) que si d'une part il s'est
rendu compte que le secteur est défectueux, soit à l'occasion d'une
commande de lecture soit d'un test SMART, et si d'autre part on lui
demande de le réécrire avec une commande d'écriture. En effet pour qu'un
secteur soit réalloué de façon transparente il faut qu'il soit encore un
peu lisible afin que les données puissent être recopiées dans le nouvel
emplacement.
Donc en gros :
1) Lecture des secteurs pour que le contrôleur identifie les secteurs
illisibles et les marque "pending".
2) Ecriture des secteurs défectueux qui devrait soit les réparer sur
place soit les réallouer
3) Contrôler le résultat avec smartctl et recommencer si nécessaire,
tant qu'il reste des secteurs illisibles et des secteurs de réserve.
Si veut faire simple et sûr et qu'on n'est pas pressé, on passe tout le
disque à chaque fois. Sinon, on se débrouille pourne passer que sur les
secteurs détectés comme illisibles (et un peu autour).
On peut utiliser dd ou badblocks pour la lecture et l'écriture. Je
n'utilise pas badblocks en mode écriture (-w) pour la réparation car il
fait l'écriture et la lecture en une même exécution et il n'est pas
possible de consulter les attributs SMART entre les deux (et en plus il
peut être très lent).
Avec dd, j'ajoute l'option conv=noerror pour qu'il ne s'arrête pas à la
première erreur, et je spécifie une taille de bloc de 1024 au moins car
sur certaines machines la taille par défaut de 512 provoque une baisse
importante du débit séquentiel.
# en lecture
dd if=/dev/<disque> of=/dev/zero conv=noerror
# en écriture
dd if=/dev/zero of=/dev/<disque> conv=noerror
Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
smartctl -A permet d'afficher les attributs SMART. Il y en a deux
intéressants pour l'opération à consulter après chaque passe de lecture
et d'écriture :
- pending sector count, dont la valeur brute qui indique le nombre de
secteurs connus comme actuellement illisibles
- reallocated sector count, dont la valeur brute indique le nombre total
de secteurs ayant été réalloués, et la valeur normalisée indique
indirectement le taux de secteurs de réserve encore disponibles.
Evidemment, le contenu du disque est perdu. Il ne s'agit pas de
récupérer les données illisibles mais de retrouver un disque opérationnel.Et aussi, est-ce que ça marche si tu montes le disk avec un adaptateur USB..
J'ai peur que non si on utilise le disque comme un une mémoire de masse
(mass storage) USB.
Ensuite quand on demande à écrire sur ce
secteur, il peut se passer deux choses :
- le secteur est laissé sur place et la réécriture le renforce, il
devient donc facile à lire et le débit redevient normal ;
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ;
Ca, tu le vois en demandant le log du S.M.A.R.T du périph ?..
Je le déduis en comparant les attributs SMART pending et reallocated
sector count avant et après : la différence entre la diminution de
pending et l'augmentation de reallocated correspond a priori aux
secteurs non réalloués donc réécrits sur place.
xtof pernod a écrit :
Pascal Hambourg a fait rien qu'à écrire:
Th.A.C a écrit :
Le 06/08/2010 18:18, Fabien LE LEZ a écrit :
Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à titre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jettes."
Je suis bien d'accord, mais il y a aussi la logique économique qui
prévaut dans un cadre professionnel où le temps et les données c'est de
l'argent : "ça coûte plus cher à réparer qu'à remplacer, et même si on
peut réparer il y a un risque sur la fiabilité ? on jette".
personnel, ça peut être intéressant. J'ai "sauvé" à grands coups de
cycles de lecture/écriture plusieurs disques récupérés avec un certain
nombre de secteurs en piteux état qui fonctionnent sans souci depuis.
(depuis) combien de temps ? (...)
Plusieurs années en temps total, (...)
Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
Ah si, c'est fiable. Mais quand on en est là, c'est déjà trop tard :
sauf erreur transitoire ou coup de bol, le contenu du secteur est perdu.
parfois l'aider un peu.
Ah:
Est-ce que tu peux détailler la manip.. smartmontools, hdparm, outil maison ?
Petits-doigts-musclés + feeling ?
Il faut un peu de tout ça.
Le postulat de base, c'est que le contrôleur intégré du disque ne peut
réallouer un secteur défectueux (illisible) que si d'une part il s'est
rendu compte que le secteur est défectueux, soit à l'occasion d'une
commande de lecture soit d'un test SMART, et si d'autre part on lui
demande de le réécrire avec une commande d'écriture. En effet pour qu'un
secteur soit réalloué de façon transparente il faut qu'il soit encore un
peu lisible afin que les données puissent être recopiées dans le nouvel
emplacement.
Donc en gros :
1) Lecture des secteurs pour que le contrôleur identifie les secteurs
illisibles et les marque "pending".
2) Ecriture des secteurs défectueux qui devrait soit les réparer sur
place soit les réallouer
3) Contrôler le résultat avec smartctl et recommencer si nécessaire,
tant qu'il reste des secteurs illisibles et des secteurs de réserve.
Si veut faire simple et sûr et qu'on n'est pas pressé, on passe tout le
disque à chaque fois. Sinon, on se débrouille pourne passer que sur les
secteurs détectés comme illisibles (et un peu autour).
On peut utiliser dd ou badblocks pour la lecture et l'écriture. Je
n'utilise pas badblocks en mode écriture (-w) pour la réparation car il
fait l'écriture et la lecture en une même exécution et il n'est pas
possible de consulter les attributs SMART entre les deux (et en plus il
peut être très lent).
Avec dd, j'ajoute l'option conv=noerror pour qu'il ne s'arrête pas à la
première erreur, et je spécifie une taille de bloc de 1024 au moins car
sur certaines machines la taille par défaut de 512 provoque une baisse
importante du débit séquentiel.
# en lecture
dd if=/dev/<disque> of=/dev/zero bs@96 conv=noerror
# en écriture
dd if=/dev/zero of=/dev/<disque> bs@96 conv=noerror
Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
smartctl -A permet d'afficher les attributs SMART. Il y en a deux
intéressants pour l'opération à consulter après chaque passe de lecture
et d'écriture :
- pending sector count, dont la valeur brute qui indique le nombre de
secteurs connus comme actuellement illisibles
- reallocated sector count, dont la valeur brute indique le nombre total
de secteurs ayant été réalloués, et la valeur normalisée indique
indirectement le taux de secteurs de réserve encore disponibles.
Evidemment, le contenu du disque est perdu. Il ne s'agit pas de
récupérer les données illisibles mais de retrouver un disque opérationnel.
Et aussi, est-ce que ça marche si tu montes le disk avec un adaptateur USB..
J'ai peur que non si on utilise le disque comme un une mémoire de masse
(mass storage) USB.
Ensuite quand on demande à écrire sur ce
secteur, il peut se passer deux choses :
- le secteur est laissé sur place et la réécriture le renforce, il
devient donc facile à lire et le débit redevient normal ;
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ;
Ca, tu le vois en demandant le log du S.M.A.R.T du périph ?..
Je le déduis en comparant les attributs SMART pending et reallocated
sector count avant et après : la différence entre la diminution de
pending et l'augmentation de reallocated correspond a priori aux
secteurs non réalloués donc réécrits sur place.
xtof pernod a écrit :Pascal Hambourg a fait rien qu'à écrire:Th.A.C a écrit :Le 06/08/2010 18:18, Fabien LE LEZ a écrit :Si un bloc est suspect, n'est-ce pas une raison suffisante pour
changer le disque immédiatement ?
Dans un usage professionnel, certes, ça ne vaut pas le coup (ni le coût)
de perdre du temps là-dessus. On remplace et on jette. Mais à titre
Ouaip.. Mais quel gachis. "Ca formate pas ? Ca installe pas ? Tu jettes."
Je suis bien d'accord, mais il y a aussi la logique économique qui
prévaut dans un cadre professionnel où le temps et les données c'est de
l'argent : "ça coûte plus cher à réparer qu'à remplacer, et même si on
peut réparer il y a un risque sur la fiabilité ? on jette".
personnel, ça peut être intéressant. J'ai "sauvé" à grands coups de
cycles de lecture/écriture plusieurs disques récupérés avec un certain
nombre de secteurs en piteux état qui fonctionnent sans souci depuis.
(depuis) combien de temps ? (...)
Plusieurs années en temps total, (...)
Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
Ah si, c'est fiable. Mais quand on en est là, c'est déjà trop tard :
sauf erreur transitoire ou coup de bol, le contenu du secteur est perdu.
parfois l'aider un peu.
Ah:
Est-ce que tu peux détailler la manip.. smartmontools, hdparm, outil maison ?
Petits-doigts-musclés + feeling ?
Il faut un peu de tout ça.
Le postulat de base, c'est que le contrôleur intégré du disque ne peut
réallouer un secteur défectueux (illisible) que si d'une part il s'est
rendu compte que le secteur est défectueux, soit à l'occasion d'une
commande de lecture soit d'un test SMART, et si d'autre part on lui
demande de le réécrire avec une commande d'écriture. En effet pour qu'un
secteur soit réalloué de façon transparente il faut qu'il soit encore un
peu lisible afin que les données puissent être recopiées dans le nouvel
emplacement.
Donc en gros :
1) Lecture des secteurs pour que le contrôleur identifie les secteurs
illisibles et les marque "pending".
2) Ecriture des secteurs défectueux qui devrait soit les réparer sur
place soit les réallouer
3) Contrôler le résultat avec smartctl et recommencer si nécessaire,
tant qu'il reste des secteurs illisibles et des secteurs de réserve.
Si veut faire simple et sûr et qu'on n'est pas pressé, on passe tout le
disque à chaque fois. Sinon, on se débrouille pourne passer que sur les
secteurs détectés comme illisibles (et un peu autour).
On peut utiliser dd ou badblocks pour la lecture et l'écriture. Je
n'utilise pas badblocks en mode écriture (-w) pour la réparation car il
fait l'écriture et la lecture en une même exécution et il n'est pas
possible de consulter les attributs SMART entre les deux (et en plus il
peut être très lent).
Avec dd, j'ajoute l'option conv=noerror pour qu'il ne s'arrête pas à la
première erreur, et je spécifie une taille de bloc de 1024 au moins car
sur certaines machines la taille par défaut de 512 provoque une baisse
importante du débit séquentiel.
# en lecture
dd if=/dev/<disque> of=/dev/zero conv=noerror
# en écriture
dd if=/dev/zero of=/dev/<disque> conv=noerror
Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
smartctl -A permet d'afficher les attributs SMART. Il y en a deux
intéressants pour l'opération à consulter après chaque passe de lecture
et d'écriture :
- pending sector count, dont la valeur brute qui indique le nombre de
secteurs connus comme actuellement illisibles
- reallocated sector count, dont la valeur brute indique le nombre total
de secteurs ayant été réalloués, et la valeur normalisée indique
indirectement le taux de secteurs de réserve encore disponibles.
Evidemment, le contenu du disque est perdu. Il ne s'agit pas de
récupérer les données illisibles mais de retrouver un disque opérationnel.Et aussi, est-ce que ça marche si tu montes le disk avec un adaptateur USB..
J'ai peur que non si on utilise le disque comme un une mémoire de masse
(mass storage) USB.
Ensuite quand on demande à écrire sur ce
secteur, il peut se passer deux choses :
- le secteur est laissé sur place et la réécriture le renforce, il
devient donc facile à lire et le débit redevient normal ;
- l'emplacement est trop endommagé et le secteur est réalloué dans un
secteur de réserve situé ailleurs ;
Ca, tu le vois en demandant le log du S.M.A.R.T du périph ?..
Je le déduis en comparant les attributs SMART pending et reallocated
sector count avant et après : la différence entre la diminution de
pending et l'augmentation de reallocated correspond a priori aux
secteurs non réalloués donc réécrits sur place.
Pascal Hambourg a fait rien qu'à écrire:xtof pernod a écrit :Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
Ah si, c'est fiable. Mais quand on en est là, c'est déjà trop tard :
sauf erreur transitoire ou coup de bol, le contenu du secteur est perdu.
En lecture, certes, mais si on le ré-écrit: il repart pour un tour:
0. dans pratiquement tous les cas
1. avec un peu de chance
2. avec pas mal de pot
3. si tu as le derrière bordé de nouilles jusqu'aux oreilles ?
En effet pour qu'un
secteur soit réalloué de façon transparente il faut qu'il soit encore un
peu lisible afin que les données puissent être recopiées dans le nouvel
emplacement.
"un peu" lisible ? C'est vrai que le contrôleur fait plusieurs essais, des
fois que le secteur soit 'limite', mais la plupart du temps, foutu, c'est
foutu, non ?..
Donc en gros :
1) Lecture des secteurs pour que le contrôleur identifie les secteurs
illisibles et les marque "pending".
Où est-ce qu'il marque ça, dans les entêtes de secteurs, ou dans ses
tables SMART ? et aussi, par curiosité, où est-ce qu'il loge ses tables,
physiquement parlant:
Dans des secteurs accessibles seulement par le contrôleur ?
On peut utiliser dd ou badblocks pour la lecture et l'écriture. Je
n'utilise pas badblocks en mode écriture (-w) pour la réparation car il
fait l'écriture et la lecture en une même exécution et il n'est pas
possible de consulter les attributs SMART entre les deux (et en plus il
peut être très lent).
Ah, pourquoi.. Parce qu'il bute de trop sur les secteurs en erreur, ou
l'algo employé est pas top ?
# en lecture
dd if=/dev/<disque> of=/dev/zero conv=noerror
Tiens, oui, on peut écrire dans /dev/zero, marrant =) on en apprend tlj.
# en écriture
dd if=/dev/zero of=/dev/<disque> conv=noerror
Voila qui m'apparait être quelque peu destructif.. plus que badblocks -w
(mais bon, si le but est de récupérer le disk, et non les données..)
Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
Et avec une valeur binaire un peu plus "contrastée", genre 0xa5
(option -t de badblocks), c'est plus 'fiable' ?
Ah, très fin. Je vais creuser un peu mieux, je suis pas sur de tout suivre:
. la diminution de pending indique que des erreurs ont été corrigé
(déplacement ou réécriture)
. l'augmentation de reallocated correspond: au nombre de secteurs qui ont
été déplacé, pour corriger les erreurs, ou qu'il est possible de déplacer,
question de capacité de table de réallocation ?
Pascal Hambourg a fait rien qu'à écrire:
xtof pernod a écrit :
Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
Ah si, c'est fiable. Mais quand on en est là, c'est déjà trop tard :
sauf erreur transitoire ou coup de bol, le contenu du secteur est perdu.
En lecture, certes, mais si on le ré-écrit: il repart pour un tour:
0. dans pratiquement tous les cas
1. avec un peu de chance
2. avec pas mal de pot
3. si tu as le derrière bordé de nouilles jusqu'aux oreilles ?
En effet pour qu'un
secteur soit réalloué de façon transparente il faut qu'il soit encore un
peu lisible afin que les données puissent être recopiées dans le nouvel
emplacement.
"un peu" lisible ? C'est vrai que le contrôleur fait plusieurs essais, des
fois que le secteur soit 'limite', mais la plupart du temps, foutu, c'est
foutu, non ?..
Donc en gros :
1) Lecture des secteurs pour que le contrôleur identifie les secteurs
illisibles et les marque "pending".
Où est-ce qu'il marque ça, dans les entêtes de secteurs, ou dans ses
tables SMART ? et aussi, par curiosité, où est-ce qu'il loge ses tables,
physiquement parlant:
Dans des secteurs accessibles seulement par le contrôleur ?
On peut utiliser dd ou badblocks pour la lecture et l'écriture. Je
n'utilise pas badblocks en mode écriture (-w) pour la réparation car il
fait l'écriture et la lecture en une même exécution et il n'est pas
possible de consulter les attributs SMART entre les deux (et en plus il
peut être très lent).
Ah, pourquoi.. Parce qu'il bute de trop sur les secteurs en erreur, ou
l'algo employé est pas top ?
# en lecture
dd if=/dev/<disque> of=/dev/zero bs@96 conv=noerror
Tiens, oui, on peut écrire dans /dev/zero, marrant =) on en apprend tlj.
# en écriture
dd if=/dev/zero of=/dev/<disque> bs@96 conv=noerror
Voila qui m'apparait être quelque peu destructif.. plus que badblocks -w
(mais bon, si le but est de récupérer le disk, et non les données..)
Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
Et avec une valeur binaire un peu plus "contrastée", genre 0xa5
(option -t de badblocks), c'est plus 'fiable' ?
Ah, très fin. Je vais creuser un peu mieux, je suis pas sur de tout suivre:
. la diminution de pending indique que des erreurs ont été corrigé
(déplacement ou réécriture)
. l'augmentation de reallocated correspond: au nombre de secteurs qui ont
été déplacé, pour corriger les erreurs, ou qu'il est possible de déplacer,
question de capacité de table de réallocation ?
Pascal Hambourg a fait rien qu'à écrire:xtof pernod a écrit :Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
Ah si, c'est fiable. Mais quand on en est là, c'est déjà trop tard :
sauf erreur transitoire ou coup de bol, le contenu du secteur est perdu.
En lecture, certes, mais si on le ré-écrit: il repart pour un tour:
0. dans pratiquement tous les cas
1. avec un peu de chance
2. avec pas mal de pot
3. si tu as le derrière bordé de nouilles jusqu'aux oreilles ?
En effet pour qu'un
secteur soit réalloué de façon transparente il faut qu'il soit encore un
peu lisible afin que les données puissent être recopiées dans le nouvel
emplacement.
"un peu" lisible ? C'est vrai que le contrôleur fait plusieurs essais, des
fois que le secteur soit 'limite', mais la plupart du temps, foutu, c'est
foutu, non ?..
Donc en gros :
1) Lecture des secteurs pour que le contrôleur identifie les secteurs
illisibles et les marque "pending".
Où est-ce qu'il marque ça, dans les entêtes de secteurs, ou dans ses
tables SMART ? et aussi, par curiosité, où est-ce qu'il loge ses tables,
physiquement parlant:
Dans des secteurs accessibles seulement par le contrôleur ?
On peut utiliser dd ou badblocks pour la lecture et l'écriture. Je
n'utilise pas badblocks en mode écriture (-w) pour la réparation car il
fait l'écriture et la lecture en une même exécution et il n'est pas
possible de consulter les attributs SMART entre les deux (et en plus il
peut être très lent).
Ah, pourquoi.. Parce qu'il bute de trop sur les secteurs en erreur, ou
l'algo employé est pas top ?
# en lecture
dd if=/dev/<disque> of=/dev/zero conv=noerror
Tiens, oui, on peut écrire dans /dev/zero, marrant =) on en apprend tlj.
# en écriture
dd if=/dev/zero of=/dev/<disque> conv=noerror
Voila qui m'apparait être quelque peu destructif.. plus que badblocks -w
(mais bon, si le but est de récupérer le disk, et non les données..)
Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
Et avec une valeur binaire un peu plus "contrastée", genre 0xa5
(option -t de badblocks), c'est plus 'fiable' ?
Ah, très fin. Je vais creuser un peu mieux, je suis pas sur de tout suivre:
. la diminution de pending indique que des erreurs ont été corrigé
(déplacement ou réécriture)
. l'augmentation de reallocated correspond: au nombre de secteurs qui ont
été déplacé, pour corriger les erreurs, ou qu'il est possible de déplacer,
question de capacité de table de réallocation ?
J'ai même vu quelqu'un m'expliquer que lors d'un déménagement, il coûtait
moins cher de jeter les meubles des anciens locaux et de faire livrer des
meubles neufs dans les nouveaux locaux que de payer des déménageurs pour
transporter les meubles.
J'ai même vu quelqu'un m'expliquer que lors d'un déménagement, il coûtait
moins cher de jeter les meubles des anciens locaux et de faire livrer des
meubles neufs dans les nouveaux locaux que de payer des déménageurs pour
transporter les meubles.
J'ai même vu quelqu'un m'expliquer que lors d'un déménagement, il coûtait
moins cher de jeter les meubles des anciens locaux et de faire livrer des
meubles neufs dans les nouveaux locaux que de payer des déménageurs pour
transporter les meubles.
xtof pernod a écrit :Pascal Hambourg a fait rien qu'à écrire:xtof pernod a écrit :Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
Ah si, c'est fiable. Mais quand on en est là, c'est déjà trop tard :
sauf erreur transitoire ou coup de bol, le contenu du secteur est perdu.
En lecture, certes, mais si on le ré-écrit: il repart pour un tour:
0. dans pratiquement tous les cas
1. avec un peu de chance
2. avec pas mal de pot
3. si tu as le derrière bordé de nouilles jusqu'aux oreilles ?
Je n'ai pas fait de statistiques.
En effet pour qu'un
secteur soit réalloué de façon transparente il faut qu'il soit encore un
peu lisible afin que les données puissent être recopiées dans le nouvel
emplacement.
"un peu" lisible ? C'est vrai que le contrôleur fait plusieurs essais, des
fois que le secteur soit 'limite', mais la plupart du temps, foutu, c'est
foutu, non ?..
Avec l'ECC (détection et correction d'erreurs) il y a des degrés dans la
lisibilité d'un secteur :
- immédiate sans erreur d'ECC
- immédiate avec quelques erreurs d'ECC corrigeables
- immédiate avec un nombre limite d'erreurs d'ECC corrigeables
- après plusieurs tentatives avec des erreurs d'ECC non corrigeables
Dans les deux derniers cas, le contrôleur embarqué peut décider qu'il
faut réagir car la prochaine fois il aura peut-être moins de chance. Par
exemple en faisant d'abord une réécriture sur place, vérification et
réallocation si le résultat n'est pas satisfaisant. Tout cela de façon
transparente pour le système hôte à l'exception du temps de lecture qui
peut augmenter.
Donc en gros : (...badblocks...) >>> peut être très lent).
Ah, pourquoi.. Parce qu'il bute de trop sur les secteurs en erreur, ou
l'algo employé est pas top ?
J'en ai eu l'impression. D'un autre côté, c'est son but de détecter les
secteurs défectueux. Ici le but est plutôt de faire comprendre au
contrôleur embarqué qu'un secteur est défectueux (en le lisant) et lui
donner l'occasion de le réparer (en l'écrivant).
# en lecture
dd if=/dev/<disque> of=/dev/zero conv=noerror
Tiens, oui, on peut écrire dans /dev/zero, marrant =) on en apprend tlj.
Erreur de copier-coller, c'est /dev/null.
# en écriture
dd if=/dev/zero of=/dev/<disque> conv=noerror
(...)>Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
Et avec une valeur binaire un peu plus "contrastée", genre 0xa5
(option -t de badblocks), c'est plus 'fiable' ?
Je n'ai pas de certitude, désolé. Tout cela est très empirique.
(...)
La valeur brute est le nombre total de secteurs réalloués. La valeur
normalisée indique le taux de secteurs de réserve restants. En supposant
que c'est linéaire, si la valeur initiale était 100 et que la valeur
actuelle est 95, il reste 95% du stock.
xtof pernod a écrit :
Pascal Hambourg a fait rien qu'à écrire:
xtof pernod a écrit :
Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
Ah si, c'est fiable. Mais quand on en est là, c'est déjà trop tard :
sauf erreur transitoire ou coup de bol, le contenu du secteur est perdu.
En lecture, certes, mais si on le ré-écrit: il repart pour un tour:
0. dans pratiquement tous les cas
1. avec un peu de chance
2. avec pas mal de pot
3. si tu as le derrière bordé de nouilles jusqu'aux oreilles ?
Je n'ai pas fait de statistiques.
En effet pour qu'un
secteur soit réalloué de façon transparente il faut qu'il soit encore un
peu lisible afin que les données puissent être recopiées dans le nouvel
emplacement.
"un peu" lisible ? C'est vrai que le contrôleur fait plusieurs essais, des
fois que le secteur soit 'limite', mais la plupart du temps, foutu, c'est
foutu, non ?..
Avec l'ECC (détection et correction d'erreurs) il y a des degrés dans la
lisibilité d'un secteur :
- immédiate sans erreur d'ECC
- immédiate avec quelques erreurs d'ECC corrigeables
- immédiate avec un nombre limite d'erreurs d'ECC corrigeables
- après plusieurs tentatives avec des erreurs d'ECC non corrigeables
Dans les deux derniers cas, le contrôleur embarqué peut décider qu'il
faut réagir car la prochaine fois il aura peut-être moins de chance. Par
exemple en faisant d'abord une réécriture sur place, vérification et
réallocation si le résultat n'est pas satisfaisant. Tout cela de façon
transparente pour le système hôte à l'exception du temps de lecture qui
peut augmenter.
Donc en gros : (...badblocks...) >>> peut être très lent).
Ah, pourquoi.. Parce qu'il bute de trop sur les secteurs en erreur, ou
l'algo employé est pas top ?
J'en ai eu l'impression. D'un autre côté, c'est son but de détecter les
secteurs défectueux. Ici le but est plutôt de faire comprendre au
contrôleur embarqué qu'un secteur est défectueux (en le lisant) et lui
donner l'occasion de le réparer (en l'écrivant).
# en lecture
dd if=/dev/<disque> of=/dev/zero bs@96 conv=noerror
Tiens, oui, on peut écrire dans /dev/zero, marrant =) on en apprend tlj.
Erreur de copier-coller, c'est /dev/null.
# en écriture
dd if=/dev/zero of=/dev/<disque> bs@96 conv=noerror
(...)>
Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
Et avec une valeur binaire un peu plus "contrastée", genre 0xa5
(option -t de badblocks), c'est plus 'fiable' ?
Je n'ai pas de certitude, désolé. Tout cela est très empirique.
(...)
La valeur brute est le nombre total de secteurs réalloués. La valeur
normalisée indique le taux de secteurs de réserve restants. En supposant
que c'est linéaire, si la valeur initiale était 100 et que la valeur
actuelle est 95, il reste 95% du stock.
xtof pernod a écrit :Pascal Hambourg a fait rien qu'à écrire:xtof pernod a écrit :Quand le kernel dit "read|seek error at LBA sector 0123456789",
c'est donc pas plus fiable / exact que ça ?
Ah si, c'est fiable. Mais quand on en est là, c'est déjà trop tard :
sauf erreur transitoire ou coup de bol, le contenu du secteur est perdu.
En lecture, certes, mais si on le ré-écrit: il repart pour un tour:
0. dans pratiquement tous les cas
1. avec un peu de chance
2. avec pas mal de pot
3. si tu as le derrière bordé de nouilles jusqu'aux oreilles ?
Je n'ai pas fait de statistiques.
En effet pour qu'un
secteur soit réalloué de façon transparente il faut qu'il soit encore un
peu lisible afin que les données puissent être recopiées dans le nouvel
emplacement.
"un peu" lisible ? C'est vrai que le contrôleur fait plusieurs essais, des
fois que le secteur soit 'limite', mais la plupart du temps, foutu, c'est
foutu, non ?..
Avec l'ECC (détection et correction d'erreurs) il y a des degrés dans la
lisibilité d'un secteur :
- immédiate sans erreur d'ECC
- immédiate avec quelques erreurs d'ECC corrigeables
- immédiate avec un nombre limite d'erreurs d'ECC corrigeables
- après plusieurs tentatives avec des erreurs d'ECC non corrigeables
Dans les deux derniers cas, le contrôleur embarqué peut décider qu'il
faut réagir car la prochaine fois il aura peut-être moins de chance. Par
exemple en faisant d'abord une réécriture sur place, vérification et
réallocation si le résultat n'est pas satisfaisant. Tout cela de façon
transparente pour le système hôte à l'exception du temps de lecture qui
peut augmenter.
Donc en gros : (...badblocks...) >>> peut être très lent).
Ah, pourquoi.. Parce qu'il bute de trop sur les secteurs en erreur, ou
l'algo employé est pas top ?
J'en ai eu l'impression. D'un autre côté, c'est son but de détecter les
secteurs défectueux. Ici le but est plutôt de faire comprendre au
contrôleur embarqué qu'un secteur est défectueux (en le lisant) et lui
donner l'occasion de le réparer (en l'écrivant).
# en lecture
dd if=/dev/<disque> of=/dev/zero conv=noerror
Tiens, oui, on peut écrire dans /dev/zero, marrant =) on en apprend tlj.
Erreur de copier-coller, c'est /dev/null.
# en écriture
dd if=/dev/zero of=/dev/<disque> conv=noerror
(...)>Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
Et avec une valeur binaire un peu plus "contrastée", genre 0xa5
(option -t de badblocks), c'est plus 'fiable' ?
Je n'ai pas de certitude, désolé. Tout cela est très empirique.
(...)
La valeur brute est le nombre total de secteurs réalloués. La valeur
normalisée indique le taux de secteurs de réserve restants. En supposant
que c'est linéaire, si la valeur initiale était 100 et que la valeur
actuelle est 95, il reste 95% du stock.
On 13/08/2010 14:18, Pascal Hambourg wrote:
Avec l'ECC (détection et correction d'erreurs) il y a des degrés dans la
lisibilité d'un secteur :
- immédiate sans erreur d'ECC
Comment détecte-t-il qu'il y a une erreur, dans ce cas.. CRC ?
- immédiate avec quelques erreurs d'ECC corrigeables
- immédiate avec un nombre limite d'erreurs d'ECC corrigeables
- après plusieurs tentatives avec des erreurs d'ECC non corrigeables
D'un autre côté, c'est [badblocks] son but de détecter les
secteurs défectueux. Ici le but est plutôt de faire comprendre au
contrôleur embarqué qu'un secteur est défectueux (en le lisant) et lui
donner l'occasion de le réparer (en l'écrivant).
Tûtàfé. Le man dit un truc genre, "don't think you're smarter than
badblocks", ce que je peux aisément concevoir ; d'où, la question.
Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
Et avec une valeur binaire un peu plus "contrastée", genre 0xa5
(option -t de badblocks), c'est plus 'fiable' ?
Je n'ai pas de certitude, désolé. Tout cela est très empirique.
C'est ce qu'on disait dans le temps -- une diskette défectueuse pouvait
passer au _formatage_ avec la valeur 0x00, alors que les erreurs étaient
détectées avec 0x55, 0xaa, 0xf7 ..
memtest86 emploie ce genre de valeurs, mais la doc' décrit longuement
le pourquoi & le comment; l'efficacité n'est plus à montrer. peut-être
est-ce valable pour les disk(ette)s (?)
On 13/08/2010 14:18, Pascal Hambourg wrote:
Avec l'ECC (détection et correction d'erreurs) il y a des degrés dans la
lisibilité d'un secteur :
- immédiate sans erreur d'ECC
Comment détecte-t-il qu'il y a une erreur, dans ce cas.. CRC ?
- immédiate avec quelques erreurs d'ECC corrigeables
- immédiate avec un nombre limite d'erreurs d'ECC corrigeables
- après plusieurs tentatives avec des erreurs d'ECC non corrigeables
D'un autre côté, c'est [badblocks] son but de détecter les
secteurs défectueux. Ici le but est plutôt de faire comprendre au
contrôleur embarqué qu'un secteur est défectueux (en le lisant) et lui
donner l'occasion de le réparer (en l'écrivant).
Tûtàfé. Le man dit un truc genre, "don't think you're smarter than
badblocks", ce que je peux aisément concevoir ; d'où, la question.
Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
Et avec une valeur binaire un peu plus "contrastée", genre 0xa5
(option -t de badblocks), c'est plus 'fiable' ?
Je n'ai pas de certitude, désolé. Tout cela est très empirique.
C'est ce qu'on disait dans le temps -- une diskette défectueuse pouvait
passer au _formatage_ avec la valeur 0x00, alors que les erreurs étaient
détectées avec 0x55, 0xaa, 0xf7 ..
memtest86 emploie ce genre de valeurs, mais la doc' décrit longuement
le pourquoi & le comment; l'efficacité n'est plus à montrer. peut-être
est-ce valable pour les disk(ette)s (?)
On 13/08/2010 14:18, Pascal Hambourg wrote:
Avec l'ECC (détection et correction d'erreurs) il y a des degrés dans la
lisibilité d'un secteur :
- immédiate sans erreur d'ECC
Comment détecte-t-il qu'il y a une erreur, dans ce cas.. CRC ?
- immédiate avec quelques erreurs d'ECC corrigeables
- immédiate avec un nombre limite d'erreurs d'ECC corrigeables
- après plusieurs tentatives avec des erreurs d'ECC non corrigeables
D'un autre côté, c'est [badblocks] son but de détecter les
secteurs défectueux. Ici le but est plutôt de faire comprendre au
contrôleur embarqué qu'un secteur est défectueux (en le lisant) et lui
donner l'occasion de le réparer (en l'écrivant).
Tûtàfé. Le man dit un truc genre, "don't think you're smarter than
badblocks", ce que je peux aisément concevoir ; d'où, la question.
Ce serait peut-être mieux d'écrire des valeurs pseudo-aléatoires avec
/dev/urandom plutôt que des zéros avec /dev/zero, mais c'est beaucoup
trop lent.
Et avec une valeur binaire un peu plus "contrastée", genre 0xa5
(option -t de badblocks), c'est plus 'fiable' ?
Je n'ai pas de certitude, désolé. Tout cela est très empirique.
C'est ce qu'on disait dans le temps -- une diskette défectueuse pouvait
passer au _formatage_ avec la valeur 0x00, alors que les erreurs étaient
détectées avec 0x55, 0xaa, 0xf7 ..
memtest86 emploie ce genre de valeurs, mais la doc' décrit longuement
le pourquoi & le comment; l'efficacité n'est plus à montrer. peut-être
est-ce valable pour les disk(ette)s (?)