Recently i had problems with very bad sactors on my storage drive. These sectors are impossible to recover, but maybe it is possible to isolate them reducing your partition o creating partitions where there are cointiguous blocks. I found them using
badblocks on linux. You have to run it on umounted filesystem:
badblocks -v /dev/yourdev > bad.txt
The file bad.txt will contain a list of bad sectors. So you could create small partitions of 10GB for example to check the integrity and take notes about the start point and the end point to create a partition smaller than your drive capacity but without bad sectors.