Re: 1 Currently unreadable (pending) sectors : je panique ?
Frédéric BOITEUX a écrit :
> Oui, je ne me rappelle plus si c'est expliqué dans le BadBlockHowto,
> mais le message que tu as (qui correspond au '1' en fin de la ligne :
> 197 Current_Pending_Sector 0x0022 100 100 000 Old_age
> Always - 1) persistera tant que le disque ne saura pas
> quoi écrire dans ce bloc qu'il sait défectueux : le seul moyen de
> faire disparaître le message est d'écrire quelque chose (généralement
> des zéros) dans le bloc qui lui pose problème : il abandonnera alors
> le bloc qu'il sait défectueux, et en ré-allouera un nouveau pour y
> écrire ces données. Tu devrais alors avoir le compteur
> 'Reallocated_Sector_Ct' incrémenté.
Ok. J'ai commencé à suivre les instructions, mais me suis arreté juste
avant le « THIS LAST STEP HAS PERMANENTLY AND IRRETREVIABLY DESTROYED
SOME OF THE DATA THAT WAS IN THIS FILE. » :)
> Le test court ne parcours sans doute pas tout le disque (essaie un
> test long : smartctl -t long /dev/hda) ...
Je viens de le faire. Voici la nouvelle sortie de smartctl -l selftest /dev/hda
Num Test_Description Status Remaining LifeTime(hours) LBA_of_first_error
# 1 Extended offline Completed without error 00% 8127 -
# 2 Short offline Completed without error 00% 1411 -
# 3 Short offline Completed without error 00% 1401 -
# 4 Short offline Completed without error 00% 1326 -
# 5 Short captive Completed without error 00% 1000 -
# 6 Short captive Completed without error 00% 1000 -
# 7 Short offline Completed: read failure 70% 997 16581
# 8 Short offline Completed: read failure 70% 996 16581
Premiere remarque : cela faisait un bail que je n'avais pas fait de
test. smartmontools ne devrait pas programmer des tests régulièrement ?
Seconde remarque : plus de probleme, apparemment.
Suivant la doc, j'ai fait
# fdisk -lu /dev/hda
/dev/hda1 63 499967 249952+ 83 Linux
[...]
Donc le secteur défectueux (16581) serait sur /dev/hda1
# tune2fs -l /dev/hda1 | grep Block
Block count: 249952
Block size: 1024
Blocks per group: 8192
Ok, taille de 1024. Je fais son calcul :
# echo "(16581 - 63) * 512 / 1024" | bc
8259
Ok, bloc numero 8259. Je regarde quel fichier l'utilise :
# debugfs
debugfs 1.39-WIP (31-Dec-2005)
debugfs: open /dev/hda1
debugfs: icheck 8259
Block Inode number
8259 <block not found>
Donc il n'est pas utilisé. (?)
Je m'appretais à faire ceci :
dd if=/dev/hda1 of=/root/backup_dev_hda1_8259 bs=1024 count=1 skip=8259
dd if=/dev/zero of=/dev/hda1 bs=1024 count=1 seek=8259
(si ca plante, chouette, sinon, ben tant mieux aussi et je remets :
dd if=/root/backup_dev_hda1_8259 of=/deb/hda1 bs=1024 count=1 seek=8259)
/dev/hda1 est ma racine, donc je prends quelques précautions. (par
exemple, j'ai failli inverser skip et seek, ce qui aurait été du
meilleur effet :)
--
Daniel Déchelotte
http://yo.dan.free.fr/
Reply to: