Try hdd regenerator .The program creates a bootable disk and you have to let it do the job at least a day if you a have a large drive .It recovers the bad sectors if they are not very badly dammeged
SpinRite 6.0 by Steve Gibson has been keeping my drives running for years and it has even fixed corrupted drives (run it on lvl #5 and it will often make bad sectors good also).
One drive was even corrupted two times in the same year durring power blackouts!
Works for all/any OS or file formats...people have even used it on iPod drives.