[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

i got badblocks :-|



my hard disk run into badblocks, 

when i run a program which produce much disk activities, 

many messages will appear like this:

"
Info fld=0x2023f6a, Current sd08:03: sense key Medium Error
Additional sense indicates Error too long to correct
 I/O error: dev 08:03, sector 24313706
"

and even worse: the building process just hang , it was not running,
and cant kill it, even `kill -9' has no effect.

`ps aux` showes its state is 'D', (ps manpage says: 'D' is
uninterruptible sleep, usually io)

when any process has state 'D', i cant shutdown my system , 

except press the reset button.

next time, when i start it again, 

fsck will check it automatically, 

but `fsck` never mark these blocks as 'bad block', coz the data is 

"Additional sense indicates Recovered data with negative head offset" 

(good things sometimes make bad effect ;-)

according to the kernel message, 

so i decided i must add these block to bad-block-list manually,

my plan is:

1, take the hexadecimal number comes with those kernel message, 
2, translate them to block number,
3, feed these block numbers to fsck 
...
(great work , isn't it ? :)

but i m not sure about what these hex numbers stand for, 

although some looks like sector numbers of disk, 

i have read the kernel source 
   
    driver/scsi/constants.c
and 
    driver/scsi/scsi_lib.c

but they are less meaningful to me, i need more detailed info.

so, could anybody tell me,

what these kernel message stands for ?
how to convert them to block number ?



Reply to: