there is one particular file that my external hard drive always freezes on when I try to read. Since I know a bit about HDs and RAID, I would have thought it should try to automatically perform error recovery and rewrite the content to another working location on disk, or at least inform me of the error. I've tried to do it several times and the HD just freezes, nothing else. I've installed HDTune (Win7 user) and all it said was I have 13 bad sectors out of millions. I'm in the process of backing up important stuff, but is this a sign that the disk is soon to be junk?
did you try to fix your bad sectors? please read this article : click here
also there are several commercial applications which perform this task. you can try them.
If you've been able to identify the hard drive that is causing the problem, I would say replace it right away and let your array rebuild. IF you're using Raid 5, maybe just add another spare and let it build up to Raid 6. Then the hard drive with the problems so your array doesn't suffer from down-time or much performance degradation, and run some low level diagnostics on it, including a surface scan to identify and mark the problem areas bad.
It's better to have questionable areas permanently marked as BAD rather than to try to recover data from them and have them marked as GOOD, when those sectors will just immediately fail again.
In any case, I would not re-integrate that drive back into the array, as I'm assuming integrity is the paramount.
You could easily use it for an Un-Raid system without any real risk, however, which is sort of a mix between a JBOD and Raid 4. IT uses one drive for parity for all the other drives that it treats as one large drive. No striping, so if a drive is removed, the data on that drive is still usually usable, and can be replaced and rebuilt by another drive from the other drives and the parity drive, like Raid 4.