Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Disque dur ressuscité ! oui mais pourquoi ?

7 réponses
Avatar
Pham
Bonjour,

Les miracles ça arrive !
Une énorme partition en ext3 de mon disque dur était devenue subitement
inaccessible. Même e2fsck n'y comprenait rien.
J'ai réussi à tout récupérer mais je n'ai pas très bien compris ce qui
s'est vraiment passé.

Voici les symptômes (attention aux âmes sensibles !) :

**********************************************************************

Lors du fsck au démarrage, j'ai obtenu :

kernel: hdb: dma_intr: status=0x51 { DriveReady SeekComplete Error }
kernel: hdb: dma_intr: error=0x01 { AddrMarkNotFound },
LBAsect=132142039, sector=52170392

[snip plusieurs fois le même message]

kernel: hdb: DMA disabled

kernel: ide0: reset: master: error (0x51?)
kernel: hdb: read_intr: status=0x59 { DriveReady SeekComplete
DataRequest Error } kernel: hdb: read_intr: error=0x01 {
AddrMarkNotFound }, LBAsect=132142039, sector=52170392

[snip plusieurs fois le même message]

kernel: end_request: I/O error, dev 03:45 (hdb), sector 37752486
kernel: end_request: I/O error, dev 03:45 (hdb), sector 37752544
kernel: end_request: I/O error, dev 03:45 (hdb), sector 37752546

[etc...]

Ensuite impossible d'accéder au disque dur.
Lorsque je lance un e2fsck j'obtiens :

e2fsck 1.27 (8-Mar-2002)
e2fsck: Attempt to read block from filesystem resulted in short read
while trying to open /dev/hdb5 Could this be a zero-length partition?

Si j'enlève /dev/hdb5 de /etc/fstab et que je lance
e2fsck, la vérification se lance et je tombe ensuite sur le même type
d'erreur :

Error reading block 6521299 (Attempt to read block from filesystem
resulted in short read) while doing inode scan.
/dev/hdb5: UNEXPECTED INCONSISTENCY; RUN fsck MANUALLY.
(i.e., without -a or -p options)

**********************************************************************

Bon bref, le disque semblait bel et bien mort.
Un bienveillant contributeur à ce forum m'a indiqué une procédure pour
tenter de récupérer les données : recopier à grand coup de 'dd' sur un
autre disque dur, jeter un oeil sur les données avec 'debugfs' et
ensuite réparer les données sur le nouveau disque à l'aide de 'e2fsck'.

La copie avec dd a été très très longue, et quelques erreurs d'accès
aux données ont été détectées mais ignorées. J'ai donc lancé 'e2fsck'
sur ces données recopiées et à partir de là ce fut un peu le bordel :
des tonnes de réparations, de nettoyage d'inodes et compagnie à faire
manuellement. Puis j'ai jeté un oeil sur ces données 'réparées' avec
'debugfs' : c'était le grand souk ! enfin bon pas mal de données étaient
encore présentes, beaucoup de choses bizarres dans le 'lost+found' et
bien entendu beaucoup de données manquantes. J'ai alors tenté de monter
cette partition reconstituée et là même phénomène que sur l'ancien
disque dur : quand je fais 'ls' il me remplit l'écran de caractères
bizarres. C'était tout de même bizarre que 'debugfs' arrive à lire les
noms de fichiers/répertoires et qu'en montant la partition je n'y arrive
pas !
En désespoir de cause j'ai lancé 'debugfs' sur l'ancien disque dur, et
là surprise ! toutes mes données étaient accessibles !!! J'ai alors
découvert la commande 'rdump' et j'ai copié toutes les données sur
l'autre disque dur. Tout est bien qui finit bien, mais plusieurs
interrogations subsistent :

1) Comment fonctionne ce truc magique qu'est 'debugfs' ? comment a-t-il
pu lire et recopier les données alors que le montage était devenu
impossible et que même e2fsck ne comprenait rien à ma partition ?

2) Pourquoi ai-je réussi à copier les données avec 'debugfs' alors
qu'en recopiant comme un bourrin avec 'dd' j'ai des données endommagées
?

3) Pourquoi 'e2fsck' est-il si peu efficace et ne fait-il pas appel à
'debug2fs' pour pouvoir récupérer les données ?

4) Comment cela se fait-il au travers de mes pénibles recherches sur
Internet que presque personne ne parle de 'debugfs+rdump' dans le cas
d'un disque dur endommagé ?

5) Après reformatage et test avec avec 'badblocks' et 'e2fsck', l'ancien
disque dur semble nickel. Que s'est-il passé ? était-ce un problème de
surchauffe de disque (il était un peu coincé entre un lecteur de
disquette et un lecteur DVD) ? ou bien ce genre de plaisanterie peut
arriver aléatoirement ?

6) Est-ce que l'on peut activer des options pour améliorer la
robustesse du système de fichier sur le disque ? je vois pleins
d'options dans le BIOS ou dans 'hdparm' dont je ne saisis pas toujours
le sens...

J'espère que ce *long* message servira à d'autres linuxiens débutants
victimes d'un crash disque. En tout cas pour moi cela finit bien...

Merci et tous ceux qui pourront éclairer un peu ma lanterne !

7 réponses

Avatar
no_spam
On Thu, 12 Feb 2004 01:53:04 +0100, Pham wrote:

Bonjour,

Les miracles ça arrive !
Une énorme partition en ext3 de mon disque dur était devenue subitement
inaccessible. Même e2fsck n'y comprenait rien.
J'ai réussi à tout récupérer mais je n'ai pas très bien compris ce qui
s'est vraiment passé.
...

Bon bref, le disque semblait bel et bien mort.
Un bienveillant contributeur à ce forum m'a indiqué une procédure pour
tenter de récupérer les données : recopier à grand coup de 'dd' sur un
autre disque dur, jeter un oeil sur les données avec 'debugfs' et
ensuite réparer les données sur le nouveau disque à l'aide de 'e2fsck'.
...

1) Comment fonctionne ce truc magique qu'est 'debugfs' ? comment a-t-il
pu lire et recopier les données alors que le montage était devenu
impossible et que même e2fsck ne comprenait rien à ma partition ?


Difficile à dire...


2) Pourquoi ai-je réussi à copier les données avec 'debugfs' alors
qu'en recopiant comme un bourrin avec 'dd' j'ai des données endommagées
?


Les données endommagées l'étaient déjà sur le disque de départ.
dd ne fait que recopier en bloc. debugfs aurait produit un
résultat sans doute simillaire sur le disque d'origine, les
erreurs disques et les risques (si pas de sauvegarde) en plus...

5) Après reformatage et test avec avec 'badblocks' et 'e2fsck', l'ancien
disque dur semble nickel. Que s'est-il passé ? était-ce un problème de
surchauffe de disque (il était un peu coincé entre un lecteur de
disquette et un lecteur DVD) ? ou bien ce genre de plaisanterie peut
arriver aléatoirement ?


C'est un coup de chance. Les badblocks ont été remappés par
le controleur interne du disque, sans doute. Il arrive qu'on
récupère des disques avec dd if=/dev/zero of=/dev/<...>
mais ça ne fait que repousser le problème: les disques ainsi
récupérés ont généralement une durée de vie assez faible.
J'ai un seul exemple qui contredit celà: j'ai eu au boulot un PC
qui flinguait les disques en série, jusqu'à ce que je m'apperçoive
que c'était le controleur IDE qui était en train de lacher...
Les disques se sont révélés être tous récupérables sur un autre
PC...

6) Est-ce que l'on peut activer des options pour améliorer la
robustesse du système de fichier sur le disque ? je vois pleins
d'options dans le BIOS ou dans 'hdparm' dont je ne saisis pas toujours
le sens...


Il y a déjà une très forte redondance des données, en interne
dans le disque, pour éviter ce genre de problèmes. De plus,
les badblocks sont en principe remappés à la volée au fur et à
mesure de leur apparition. En général, quand un disque moderne
présente des signes de faiblesses, c'est que le controleur interne
a déjà utilisé toutes les astuces pour éviter les pertes de données.
Le seul moyen pour augmenter encore la redondance des données
et donc augmenter la fiabilité, c'est de faire du RAID, je pense...

Avatar
Pham
On Thu, 12 Feb 2004 09:35:58 +0100, no_spam

2) Pourquoi ai-je réussi à copier les données avec 'debugfs' alors
qu'en recopiant comme un bourrin avec 'dd' j'ai des données
endommagées?


Les données endommagées l'étaient déjà sur le disque de départ.
dd ne fait que recopier en bloc. debugfs aurait produit un
résultat sans doute simillaire sur le disque d'origine, les
erreurs disques et les risques (si pas de sauvegarde) en plus...


Justement ou bien les données sont endommagées et dans ce cas 'dd' et
'debugfs' ne peuvent pas recopier les données sur un autre disque
correctement, ou bien elles sont saines ?!?
Qu'est-ce que debugfs avait de si particulier pour réussir (haut la
main) à recopier des données que 'dd' n'arrive pas à lire ?

5) Après reformatage et test avec avec 'badblocks' et 'e2fsck',
l'ancien disque dur semble nickel. Que s'est-il passé ? était-ce un
problème de surchauffe de disque (il était un peu coincé entre un
lecteur de disquette et un lecteur DVD) ? ou bien ce genre de
plaisanterie peut arriver aléatoirement ?


C'est un coup de chance. Les badblocks ont été remappés par
le controleur interne du disque, sans doute. Il arrive qu'on
récupère des disques avec dd if=/dev/zero of=/dev/<...>
mais ça ne fait que repousser le problème: les disques ainsi
récupérés ont généralement une durée de vie assez faible.
J'ai un seul exemple qui contredit celà: j'ai eu au boulot un PC
qui flinguait les disques en série, jusqu'à ce que je m'apperçoive
que c'était le controleur IDE qui était en train de lacher...
Les disques se sont révélés être tous récupérables sur un autre
PC...


Euh... Est ce que c'est la récupération avec 'dd if=/dev/zero
of=/dev/<...>' qui engendre de toute façon une durée de vie assez faible
ou bien est-ce parce que j'ai commencé à avoir des badblocks ?
En gros est-ce que je peux garder mon disque (en faisant des sauvegardes
cette fois !) ? Ou bien existe-t-il des outils permettant de vérifier
l'état réel du disque pour me dire si je peux le garder ou non ?


6) Est-ce que l'on peut activer des options pour améliorer la
robustesse du système de fichier sur le disque ? je vois pleins
d'options dans le BIOS ou dans 'hdparm' dont je ne saisis pas
toujours le sens...


Il y a déjà une très forte redondance des données, en interne
dans le disque, pour éviter ce genre de problèmes. De plus,
les badblocks sont en principe remappés à la volée au fur et à
mesure de leur apparition. En général, quand un disque moderne
présente des signes de faiblesses, c'est que le controleur interne
a déjà utilisé toutes les astuces pour éviter les pertes de données.
Le seul moyen pour augmenter encore la redondance des données
et donc augmenter la fiabilité, c'est de faire du RAID, je pense...



Je viens de trouver l'option 'SMART monitoring' dans mon BIOS pour
apparemment améliorer la fiabilité des résultats... je ne sais pas du
tout ce que cela vaut...

Merci pour tes réponses !


Avatar
no_spam
On Fri, 13 Feb 2004 22:14:24 +0100, Pham wrote:

On Thu, 12 Feb 2004 09:35:58 +0100, no_spam

2) Pourquoi ai-je réussi à copier les données avec 'debugfs' alors
qu'en recopiant comme un bourrin avec 'dd' j'ai des données
endommagées?


Les données endommagées l'étaient déjà sur le disque de départ.
dd ne fait que recopier en bloc. debugfs aurait produit un
résultat sans doute simillaire sur le disque d'origine, les
erreurs disques et les risques (si pas de sauvegarde) en plus...


Justement ou bien les données sont endommagées et dans ce cas 'dd' et
'debugfs' ne peuvent pas recopier les données sur un autre disque
correctement, ou bien elles sont saines ?!?
Qu'est-ce que debugfs avait de si particulier pour réussir (haut la
main) à recopier des données que 'dd' n'arrive pas à lire ?


Il est tout à fait possible que le disque renvoie des erreurs lors
des accès, mais qu'en insistant, on arrive à lire les données.
C'est sans doute ce qui est arrivé lors de la copie avec dd.
Le disque d'arrivée étant sain, tu n'as donc aucun problème pour
relire la copie.
Il ne faut pas oublier que le problème est un problème physique,
pas de contenu. Donc, une fois que tu as réussi à recopier les
données sur un autre support, il n'y a aucune raison que tu ne
puisse pas les récupérer.

5) Après reformatage et test avec avec 'badblocks' et 'e2fsck',
l'ancien disque dur semble nickel. Que s'est-il passé ? était-ce un
problème de surchauffe de disque (il était un peu coincé entre un
lecteur de disquette et un lecteur DVD) ? ou bien ce genre de
plaisanterie peut arriver aléatoirement ?


C'est un coup de chance. Les badblocks ont été remappés par
le controleur interne du disque, sans doute. Il arrive qu'on
récupère des disques avec dd if=/dev/zero of=/dev/<...>
mais ça ne fait que repousser le problème: les disques ainsi
récupérés ont généralement une durée de vie assez faible.
J'ai un seul exemple qui contredit celà: j'ai eu au boulot un PC
qui flinguait les disques en série, jusqu'à ce que je m'apperçoive
que c'était le controleur IDE qui était en train de lacher...
Les disques se sont révélés être tous récupérables sur un autre
PC...


Euh... Est ce que c'est la récupération avec 'dd if=/dev/zero
of=/dev/<...>' qui engendre de toute façon une durée de vie assez faible
ou bien est-ce parce que j'ai commencé à avoir des badblocks ?


C'est le fait d'avoir des bad-blocs qui prouve que ton disque n'est
pas loin de la retraite...

En gros est-ce que je peux garder mon disque (en faisant des sauvegardes
cette fois !) ? Ou bien existe-t-il des outils permettant de vérifier
l'état réel du disque pour me dire si je peux le garder ou non ?


S'il existe des outils, ce sont des outils spécifiques au constructeur
du disque. Il n'y a que chez eux que tu trouveras la réponse.

6) Est-ce que l'on peut activer des options pour améliorer la
robustesse du système de fichier sur le disque ? je vois pleins
d'options dans le BIOS ou dans 'hdparm' dont je ne saisis pas
toujours le sens...


Il y a déjà une très forte redondance des données, en interne
dans le disque, pour éviter ce genre de problèmes. De plus,
les badblocks sont en principe remappés à la volée au fur et à
mesure de leur apparition. En général, quand un disque moderne
présente des signes de faiblesses, c'est que le controleur interne
a déjà utilisé toutes les astuces pour éviter les pertes de données.
Le seul moyen pour augmenter encore la redondance des données
et donc augmenter la fiabilité, c'est de faire du RAID, je pense...



Je viens de trouver l'option 'SMART monitoring' dans mon BIOS pour
apparemment améliorer la fiabilité des résultats... je ne sais pas du
tout ce que cela vaut...


Je ne pense pas que le SMART améliore quoi que ce soit.
Si j'ai bien compris, il peut te permettre de connaitre l'état
du disque et de détecter les défaillances, mais pas d'empêcher
ou de détecter à l'avance ses défaillances, ni de protéger les
données contre ces défaillances.



Avatar
Pham
On Sat, 14 Feb 2004 14:26:25 +0100, no_spam

2) Pourquoi ai-je réussi à copier les données avec 'debugfs'
alors> > qu'en recopiant comme un bourrin avec 'dd' j'ai des données


endommagées?


Les données endommagées l'étaient déjà sur le disque de départ.
dd ne fait que recopier en bloc. debugfs aurait produit un
résultat sans doute simillaire sur le disque d'origine, les
erreurs disques et les risques (si pas de sauvegarde) en plus...


Justement ou bien les données sont endommagées et dans ce cas 'dd'
et'debugfs' ne peuvent pas recopier les données sur un autre disque
correctement, ou bien elles sont saines ?!?
Qu'est-ce que debugfs avait de si particulier pour réussir (haut la
main) à recopier des données que 'dd' n'arrive pas à lire ?


Il est tout à fait possible que le disque renvoie des erreurs lors
des accès, mais qu'en insistant, on arrive à lire les données.
C'est sans doute ce qui est arrivé lors de la copie avec dd.
Le disque d'arrivée étant sain, tu n'as donc aucun problème pour
relire la copie.
Il ne faut pas oublier que le problème est un problème physique,
pas de contenu. Donc, une fois que tu as réussi à recopier les
données sur un autre support, il n'y a aucune raison que tu ne
puisse pas les récupérer.


J'ai l'impression que l'on ne se comprend pas...
Bien entendu le disque d'arrivée est sain, la question portait sur le
fait que 'dd' et 'debugfs' avait apparemment un mode d'accès
aux données différent car 'dd' recopiait des données corrompues sur le
disque d'arrivée et 'debugfs' recopiait des données correctes.
Cela m'étonnerait *énormément* que ce soit juste une histoire d'insister
pour réussir. C'est probablement un accès de plus bas niveau ou autre
chose d'équivalent. Ce qui serait aussi très étonnant vu que peu de
personnes en parle...


5) Après reformatage et test avec avec 'badblocks' et 'e2fsck',
l'ancien disque dur semble nickel. Que s'est-il passé ? était-ce
un> > problème de surchauffe de disque (il était un peu coincé entre


un> > lecteur de disquette et un lecteur DVD) ? ou bien ce genre de
plaisanterie peut arriver aléatoirement ?


C'est un coup de chance. Les badblocks ont été remappés par
le controleur interne du disque, sans doute. Il arrive qu'on
récupère des disques avec dd if=/dev/zero of=/dev/<...>
mais ça ne fait que repousser le problème: les disques ainsi
récupérés ont généralement une durée de vie assez faible.
J'ai un seul exemple qui contredit celà: j'ai eu au boulot un PC
qui flinguait les disques en série, jusqu'à ce que je m'apperçoive
que c'était le controleur IDE qui était en train de lacher...
Les disques se sont révélés être tous récupérables sur un autre
PC...


Euh... Est ce que c'est la récupération avec 'dd if=/dev/zero
of=/dev/<...>' qui engendre de toute façon une durée de vie assez
faible ou bien est-ce parce que j'ai commencé à avoir des badblocks
?


C'est le fait d'avoir des bad-blocs qui prouve que ton disque n'est
pas loin de la retraite...


Mais je croyais que justement l'apparation de ces badblocks était prévu
par le constructeur (d'où le remappage d'ailleurs...) ?
Ou bien dès le début de l'apparition du premier badblocks on est en
phase terminale ou bien c'est un comportement prévu et dans ce cas pas
de panique (et pas besoin de jeter le disque... !).

En gros est-ce que je peux garder mon disque (en faisant des
sauvegardes cette fois !) ? Ou bien existe-t-il des outils
permettant de vérifier l'état réel du disque pour me dire si je peux
le garder ou non ?


S'il existe des outils, ce sont des outils spécifiques au constructeur
du disque. Il n'y a que chez eux que tu trouveras la réponse.

6) Est-ce que l'on peut activer des options pour améliorer la
robustesse du système de fichier sur le disque ? je vois pleins
d'options dans le BIOS ou dans 'hdparm' dont je ne saisis pas
toujours le sens...


Il y a déjà une très forte redondance des données, en interne
dans le disque, pour éviter ce genre de problèmes. De plus,
les badblocks sont en principe remappés à la volée au fur et à
mesure de leur apparition. En général, quand un disque moderne
présente des signes de faiblesses, c'est que le controleur interne
a déjà utilisé toutes les astuces pour éviter les pertes de
données.> Le seul moyen pour augmenter encore la redondance des

données> et donc augmenter la fiabilité, c'est de faire du RAID, je
pense...>

Je viens de trouver l'option 'SMART monitoring' dans mon BIOS pour
apparemment améliorer la fiabilité des résultats... je ne sais pas
du tout ce que cela vaut...


Je ne pense pas que le SMART améliore quoi que ce soit.
Si j'ai bien compris, il peut te permettre de connaitre l'état
du disque et de détecter les défaillances, mais pas d'empêcher
ou de détecter à l'avance ses défaillances, ni de protéger les
données contre ces défaillances.


C'est toujours ça de pris sur l'ennemi !
Si j'avais pu détecter le premier signe de défaillance avant que toute
la partition parte en vrille, j'aurai pu mettre au chaud un bon paquet
de données...




Avatar
no_spam
On Sun, 15 Feb 2004 17:20:43 +0100, Pham wrote:

On Sat, 14 Feb 2004 14:26:25 +0100, no_spam

2) Pourquoi ai-je réussi à copier les données avec 'debugfs'
alors> > qu'en recopiant comme un bourrin avec 'dd' j'ai des données


endommagées?


Les données endommagées l'étaient déjà sur le disque de départ.
dd ne fait que recopier en bloc. debugfs aurait produit un
résultat sans doute simillaire sur le disque d'origine, les
erreurs disques et les risques (si pas de sauvegarde) en plus...


Justement ou bien les données sont endommagées et dans ce cas 'dd'
et'debugfs' ne peuvent pas recopier les données sur un autre disque
correctement, ou bien elles sont saines ?!?
Qu'est-ce que debugfs avait de si particulier pour réussir (haut la
main) à recopier des données que 'dd' n'arrive pas à lire ?


Il est tout à fait possible que le disque renvoie des erreurs lors
des accès, mais qu'en insistant, on arrive à lire les données.
C'est sans doute ce qui est arrivé lors de la copie avec dd.
Le disque d'arrivée étant sain, tu n'as donc aucun problème pour
relire la copie.
Il ne faut pas oublier que le problème est un problème physique,
pas de contenu. Donc, une fois que tu as réussi à recopier les
données sur un autre support, il n'y a aucune raison que tu ne
puisse pas les récupérer.


J'ai l'impression que l'on ne se comprend pas...


En effet...

Bien entendu le disque d'arrivée est sain, la question portait sur le
fait que 'dd' et 'debugfs' avait apparemment un mode d'accès
aux données différent car 'dd' recopiait des données corrompues sur le
disque d'arrivée et 'debugfs' recopiait des données correctes.


debugfs ne recopie pas de données, il travaille en place. Ce que j'ai
compris, c'est que tu as lancé debugfs après la copie par dd,
sur la copie... Si c'est le cas, c'est normal qu'il n'y ait aucune
erreur. Si tu l'a lancé sur la partition d'origine, la seule différence
peut venir du fait que debugfs écrit des blocs, ce qui peut avoir
pour effet de les remapper ailleurs et donc de faire disparaitre
(au moins momentanément) les badblocs, ce qu'une simple lecture
ne fera jamais.

5) Après reformatage et test avec avec 'badblocks' et 'e2fsck',
l'ancien disque dur semble nickel. Que s'est-il passé ? était-ce
un> > problème de surchauffe de disque (il était un peu coincé entre


un> > lecteur de disquette et un lecteur DVD) ? ou bien ce genre de
plaisanterie peut arriver aléatoirement ?


C'est un coup de chance. Les badblocks ont été remappés par
le controleur interne du disque, sans doute. Il arrive qu'on
récupère des disques avec dd if=/dev/zero of=/dev/<...>
mais ça ne fait que repousser le problème: les disques ainsi
récupérés ont généralement une durée de vie assez faible.
J'ai un seul exemple qui contredit celà: j'ai eu au boulot un PC
qui flinguait les disques en série, jusqu'à ce que je m'apperçoive
que c'était le controleur IDE qui était en train de lacher...
Les disques se sont révélés être tous récupérables sur un autre
PC...


Euh... Est ce que c'est la récupération avec 'dd if=/dev/zero
of=/dev/<...>' qui engendre de toute façon une durée de vie assez
faible ou bien est-ce parce que j'ai commencé à avoir des badblocks
?


C'est le fait d'avoir des bad-blocs qui prouve que ton disque n'est
pas loin de la retraite...


Mais je croyais que justement l'apparation de ces badblocks était prévu
par le constructeur (d'où le remappage d'ailleurs...) ?
Ou bien dès le début de l'apparition du premier badblocks on est en
phase terminale ou bien c'est un comportement prévu et dans ce cas pas
de panique (et pas besoin de jeter le disque... !).


En principe, le premier badblock visible par l'utilisateur arrive
quand le controleur interne du disque a épuisé toutes les possibilités
de remapage. Ce qui veut dire qu'une bonne partie du disque est
déjà morte... D'un autre coté, comme certains disques sont récupérables
avec dd, ça prouve que les controleurs ne sont pas si intelligents
que ça. Mais il faut se méfier: sur les disques IBM (maintenant
Hitachi), les secteurs sont compressés. Donc, un dd if=/dev/zero
occupera un espace physique sur le disque assez petit. Et on peut
alors, par chance, ne pas tomber sur les badblocs, qui réapparaitront
au fur et à mesure de l'écriture de données plus significatives
sur le disque.
La bonne méthode serait peut-être d'utiliser /dev/urandom au lieu
de /dev/zero, mais je n'ai jamais essayé.

<...>

Je viens de trouver l'option 'SMART monitoring' dans mon BIOS pour
apparemment améliorer la fiabilité des résultats... je ne sais pas
du tout ce que cela vaut...


Je ne pense pas que le SMART améliore quoi que ce soit.
Si j'ai bien compris, il peut te permettre de connaitre l'état
du disque et de détecter les défaillances, mais pas d'empêcher
ou de détecter à l'avance ses défaillances, ni de protéger les
données contre ces défaillances.


C'est toujours ça de pris sur l'ennemi !
Si j'avais pu détecter le premier signe de défaillance avant que toute
la partition parte en vrille, j'aurai pu mettre au chaud un bon paquet
de données...


Je ne sais pas quelles infos il remonte exactement, mais ça peut
peut-être aider à éviter le pire...





Avatar
Pham
On Sun, 15 Feb 2004 20:29:17 +0100, no_spam

2) Pourquoi ai-je réussi à copier les données avec 'debugfs'
alors> > qu'en recopiant comme un bourrin avec 'dd' j'ai des


données> >> > endommagées?



Les données endommagées l'étaient déjà sur le disque de départ.
dd ne fait que recopier en bloc. debugfs aurait produit un
résultat sans doute simillaire sur le disque d'origine, les
erreurs disques et les risques (si pas de sauvegarde) en plus...


Justement ou bien les données sont endommagées et dans ce cas
'dd'> > et'debugfs' ne peuvent pas recopier les données sur un autre


disque> > correctement, ou bien elles sont saines ?!?
Qu'est-ce que debugfs avait de si particulier pour réussir (haut
la> > main) à recopier des données que 'dd' n'arrive pas à lire ?



Il est tout à fait possible que le disque renvoie des erreurs lors
des accès, mais qu'en insistant, on arrive à lire les données.
C'est sans doute ce qui est arrivé lors de la copie avec dd.
Le disque d'arrivée étant sain, tu n'as donc aucun problème pour
relire la copie.
Il ne faut pas oublier que le problème est un problème physique,
pas de contenu. Donc, une fois que tu as réussi à recopier les
données sur un autre support, il n'y a aucune raison que tu ne
puisse pas les récupérer.


J'ai l'impression que l'on ne se comprend pas...


En effet...

Bien entendu le disque d'arrivée est sain, la question portait sur
le fait que 'dd' et 'debugfs' avait apparemment un mode d'accès
aux données différent car 'dd' recopiait des données corrompues sur
le disque d'arrivée et 'debugfs' recopiait des données correctes.


debugfs ne recopie pas de données, il travaille en place. Ce que j'ai
compris, c'est que tu as lancé debugfs après la copie par dd,
sur la copie... Si c'est le cas, c'est normal qu'il n'y ait aucune
erreur. Si tu l'a lancé sur la partition d'origine, la seule
différence peut venir du fait que debugfs écrit des blocs, ce qui peut
avoir pour effet de les remapper ailleurs et donc de faire disparaitre
(au moins momentanément) les badblocs, ce qu'une simple lecture
ne fera jamais.


Oui effectivement il y avait un malentendu, je lance 'debugfs' sur la
partition d'origine (j'ai bien essayé de lancer 'debugfs' sur les
données recopiées par 'dd' mais elles sont corrompues) ET je recopie via
'rdump' les données du disque endommagé sur le disque sain.
Je serai assez étonné de voir que 'debugfs' fait autre chose que lire
sur le disque endommagé, je ne lui ai rien demandé ! où allons-nous si
les utilitaires de déboguage commencent à écrire sans qu'on leur demande
quoi que ce soit !

5) Après reformatage et test avec avec 'badblocks' et
'e2fsck',> >> > l'ancien disque dur semble nickel. Que s'est-il passé




? était-ce> >un> > problème de surchauffe de disque (il était un peu
coincé entre> >un> > lecteur de disquette et un lecteur DVD) ? ou
bien ce genre de> >> > plaisanterie peut arriver aléatoirement ?

C'est un coup de chance. Les badblocks ont été remappés par
le controleur interne du disque, sans doute. Il arrive qu'on
récupère des disques avec dd if=/dev/zero of=/dev/<...>
mais ça ne fait que repousser le problème: les disques ainsi
récupérés ont généralement une durée de vie assez faible.
J'ai un seul exemple qui contredit celà: j'ai eu au boulot un PC
qui flinguait les disques en série, jusqu'à ce que je
m'apperçoive> >> que c'était le controleur IDE qui était en train de



lacher...> >> Les disques se sont révélés être tous récupérables sur
un autre> >> PC...

Euh... Est ce que c'est la récupération avec 'dd if=/dev/zero
of=/dev/<...>' qui engendre de toute façon une durée de vie assez
faible ou bien est-ce parce que j'ai commencé à avoir des
badblocks> > ?



C'est le fait d'avoir des bad-blocs qui prouve que ton disque n'est
pas loin de la retraite...


Mais je croyais que justement l'apparation de ces badblocks était
prévu par le constructeur (d'où le remappage d'ailleurs...) ?
Ou bien dès le début de l'apparition du premier badblocks on est en
phase terminale ou bien c'est un comportement prévu et dans ce cas
pas de panique (et pas besoin de jeter le disque... !).


En principe, le premier badblock visible par l'utilisateur arrive
quand le controleur interne du disque a épuisé toutes les possibilités
de remapage. Ce qui veut dire qu'une bonne partie du disque est
déjà morte... D'un autre coté, comme certains disques sont
récupérables avec dd, ça prouve que les controleurs ne sont pas si
intelligents que ça. Mais il faut se méfier: sur les disques IBM
(maintenant Hitachi), les secteurs sont compressés. Donc, un dd
if=/dev/zero occupera un espace physique sur le disque assez petit. Et
on peut alors, par chance, ne pas tomber sur les badblocs, qui
réapparaitront au fur et à mesure de l'écriture de données plus
significatives sur le disque.
La bonne méthode serait peut-être d'utiliser /dev/urandom au lieu
de /dev/zero, mais je n'ai jamais essayé.


Ah je commence à comprendre. Tu veux en fait remplir toute la partition
pour voir s'il n'y a pas de badblocks cachés ?
Pourtant je croyais que c'était justement le rôle de l'utilitaire
'badblocks' ? (je l'ai essayé dans les 3 modes : lecture,
lecture-écriture non destructive et écriture destructive)
Si je ne trouve plus de badblocks et que mon disque est remplis, cela
veut bien dire que le contrôleur a réussi à remplacer les badblocks
défectueux ?
Au fait mon disque est un IBM...

<...>

Je viens de trouver l'option 'SMART monitoring' dans mon BIOS
pour> > apparemment améliorer la fiabilité des résultats... je ne


sais pas> > du tout ce que cela vaut...

Je ne pense pas que le SMART améliore quoi que ce soit.
Si j'ai bien compris, il peut te permettre de connaitre l'état
du disque et de détecter les défaillances, mais pas d'empêcher
ou de détecter à l'avance ses défaillances, ni de protéger les
données contre ces défaillances.


C'est toujours ça de pris sur l'ennemi !
Si j'avais pu détecter le premier signe de défaillance avant que
toute la partition parte en vrille, j'aurai pu mettre au chaud un
bon paquet de données...


Je ne sais pas quelles infos il remonte exactement, mais ça peut
peut-être aider à éviter le pire...


On est jamais trop prudent, enfin bon rien ne vaut une bonne sauvegarde
de temps en temps ! ;-)






Avatar
no_spam
On Sun, 15 Feb 2004 23:57:35 +0100, Pham wrote:

Oui effectivement il y avait un malentendu, je lance 'debugfs' sur la
partition d'origine (j'ai bien essayé de lancer 'debugfs' sur les
données recopiées par 'dd' mais elles sont corrompues) ET je recopie via
'rdump' les données du disque endommagé sur le disque sain.
Je serai assez étonné de voir que 'debugfs' fait autre chose que lire
sur le disque endommagé, je ne lui ai rien demandé ! où allons-nous si
les utilitaires de déboguage commencent à écrire sans qu'on leur demande
quoi que ce soit !


D'accord, je comprends mieux moi aussi ce que tu as fait.
Par contre, je suis comme toi, je ne vois pas, pour le coup, d'ou
vient la différence de comportement...
debugfs n'a pas de raison d'écrire sur le disque si tu ne lui
demandes pas... Le mystère demeure, donc...

En principe, le premier badblock visible par l'utilisateur arrive
quand le controleur interne du disque a épuisé toutes les possibilités
de remapage. Ce qui veut dire qu'une bonne partie du disque est
déjà morte... D'un autre coté, comme certains disques sont
récupérables avec dd, ça prouve que les controleurs ne sont pas si
intelligents que ça. Mais il faut se méfier: sur les disques IBM
(maintenant Hitachi), les secteurs sont compressés. Donc, un dd
if=/dev/zero occupera un espace physique sur le disque assez petit. Et
on peut alors, par chance, ne pas tomber sur les badblocs, qui
réapparaitront au fur et à mesure de l'écriture de données plus
significatives sur le disque.
La bonne méthode serait peut-être d'utiliser /dev/urandom au lieu
de /dev/zero, mais je n'ai jamais essayé.


Ah je commence à comprendre. Tu veux en fait remplir toute la partition
pour voir s'il n'y a pas de badblocks cachés ?


Surtout pour voir si le controleur arrive de nouveau à trouver
des secteurs pour remapper les bad-blocks ou si la situation
est déséspérée...

Pourtant je croyais que c'était justement le rôle de l'utilitaire
'badblocks' ? (je l'ai essayé dans les 3 modes : lecture,
lecture-écriture non destructive et écriture destructive)


badblocks n'agit que sur les bad blocks qui ne sont pas remappés
par le controleur: il note les blocs déféctueux "au niveau utilisateur"
(donc, pas ceux en interne sur le disque) et s'arrange pour ne
pas les réutiliser. Celà marchait bien tant que c'etait des blocs
physiques. Mais, maintenant que les "coordonées" (tete/cylindre/secteur
ou LBA) ne sont plus directement des données physiques, je pense
que badblocks ne peut plus aider....

Si je ne trouve plus de badblocks et que mon disque est remplis, cela
veut bien dire que le contrôleur a réussi à remplacer les badblocks
défectueux ?


C'est bien celà...

Au fait mon disque est un IBM...


Je ne pense pas que celà change grand chose: tous les constructeurs
doivent utiliser des astuces de ce genre là pour palier aux défficiences
des disques. Les densités sont devenues telles qu'il est impossible
de garantir la durée de vie de l'information sur un disque. D'ou
la grande redondance des données pour corriger les erreurs et un
grand nombre de secteurs de remappage pour palier aux déficiences
graves et améliorer la durée de vie globale du disque.

On est jamais trop prudent, enfin bon rien ne vaut une bonne sauvegarde
de temps en temps ! ;-)


C'est bien la seule chose dont on puisse être absolument sur ! ;-)