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 ?