Is there really any way to repair or remove bad sectors??
Lots of funny software out there claim to do so!
Lots of funny software out there claim to do so!
Repair, no. Remove (that is, arrange never to try to use them again), yes. Two good ways, and I suggest doing both in the right sequence for best results.
The lowest-level work can be done for you by the HDD diagnostic software packages available for free from HDD manufacturer's websites. Well, at least some of them - Seagate (and their Maxtor group) have Seatools, WD has Data Lifegard, others will have their own. Each will only work on their own HDD units. In each case I prefer to download the version that has you burn your own optical disk with the tools. You boot from this disk and it loads its own mini-DOS into RAM so you can run all its tests completely independent of any OS or any HDD.
These packages have a lot of very useful tests you can use to check out drives. But they may (Seagate's and WD's have this) also have a tool to Zero-Fill a drive. BEWARE!! This operation will DESTROY any data on your HDD, so do NOT do it if you are trying to save data on it!! If that's your situation skip down to the notes about using Windows CHKDSK below.
A bit of background. When it is manufactured, every modern disk has a hidden stash of good sectors it does not need right now, and its own controller card on the HDD unit keeps track of this. As the disk is used, the smarts on the HDD unit itself check on signal quality and try to anticipate possible failure. If it detects a questionable sector, it copies that sector's data to a spare good sector before the data is corrupted (ideally) and retires the bad one to the "do not use" pile. Now, eventually this process could run low on spare good sectors. If that happens it puts out a flag via the SMART system that can be checked by your OS to alert you that spares a getting low. When you get that message, back up your data and replace the drive while you still can!
This background process happens entirely out of view of the OS - Windows will never know this is happening. BUT it is possible that a sector failure can happen and NOT be detected this way, so that the OS does actually find a Bad Sector when it tries to use it. One way to force the HDD to check EVERY ONE of its sectors with the background process is to do a Zero-Fill operation. This is a routine entirely run within the HDD's own controller card. It writes all zeros to every sector on the disk, and reads each one back to check its quality. Any poor sectors will be found this way and the substitutions made as normal. BUT this is completely over-writing your HDD and is totally destructive. After it is done you will have to Partition and Format the HDD just like a brand new empty drive, then restore all your data. But the process will ensure that ONLY good sectors are actually made available to any OS that tries to use the disk.
Now, there are lots of times you do NOT want to go back that far in the system, and you do not want to risk losing data or go to the work of backing up and restoring the whole HDD unit. For this we have Windows' well-known CHKDSK routine. For its own purposes Windows keeps track on the HDD of all the disk sectors it can use (that is, that the HDD's system allows it to see). One thing it can do with CHKDSK is examine EVERY disk sector it has and see if the data there make sense - that is, is it readable logically. If it is not, Windows will mark that sector "do not ever use again" and replace it in with a good blank sector. Note that in this case, since Windows already knows it cannot rely on the data it read from the Bad Sector, the file containing the replacement sector will be corrupted with (likely) bad data. But the file as a whole is preserved and you might be able to fix its problem. From now on, Windows will NEVER try to use that Bad Sector. Well, that is until you do some drastic action like Format the hard drive, which re-writes all the tracking tables that contained indications of bad sectors. But even then, if you do a Full Format, Windows will re-do the sector checking routine and re-mark any bad sectors it finds.
So, OP, the simplest way for you to "remove" Bad Sectors is to run the disk checking tool in Windows. It will do that finding and substitution process so the Bad Sectors don't get used again. You might have to repair or replace some files if any had corrupted sectors in them.
If you want a very thorough process, you make a good backup of your entire disk and then VERIFY that you have a good backup you can restore from. Then you have two choices. You can do a Full Format of the disk, then restore your data to it. But I think if you're going that far, you would be better to do the diagnostic tools' Zero-Fill operation first, then Partition and Full Format the disk, then restore.