It may not be bad sectors at all.
I had a drive showing up bad sectors and all, once you formatted it looked good but at reboot it couldn't mount it, but the drive was good, proof of that is that in F13 it is working again and it shows no bad sectors and no problems.
Image the disk or save the data you want somewhere and try formatting it if it is ok then that probably is a bug in some core system, your drive is ok the OS is not. I don't know what it was but it got corrected for me in Fedora 13, there is a bug report somewhere I just don't have the link anymore.
---------- Post added at 10:36 PM CDT ---------- Previous post was at 10:23 PM CDT ----------
ps: If the problem is a bug it is a low level one well into the kernel realm and magic fairies LoL
Meaning that you need to capture all comunication between your driver and the OS driver and start tracing it, not fun when you are not familiar with all those standards.
One thing I remembered SATA conectors are not shielded so they can interfere with each other you could try connecting only that drive and see if it works.
Good reading specially the part "What not to do with a SATA drive"(or something to that effect)
The SATA specification has to be purchased so that will be a problem
If I think of anything else I will post that.
---------- Post added at 10:46 PM CDT ---------- Previous post was at 10:36 PM CDT ----------
By the way the SMART data is not reliable, do not take those warnings as the holy gospel they are not, they are more like a compass that point you in one direction but can't tell you where you are exactly.
---------- Post added at 11:00 PM CDT ---------- Previous post was at 10:46 PM CDT ----------
If it is the hardware you probably will hear some loud clicks coming from it that is hardware failing.
If the drive is making strange rattling or clicking noises, turn off the computer immediately.
If the diagnostic tool doesn't make the drive make sounds is probably software but don't take my word for it.
Testing that I thought of now:
- Take the drive and test it on another computer.
- Test it with another cable.
- Test other connector on the board.
- Try an enclosure.
- Try a non linux OS.
If it works on another computer or other OS the you can rule out hardware failure and start bugging the developers on bugzilla