Assuming I’m not concerned with the data on it.
It wont “fix” bad sectors, but it should mark them as bad (unusable) and therefore no data would be written to those bad sectors.
Ideally with the cost of storage now, just replacing and using a new drive seems ideal to me.
Your disk will already be aware of the bad sectors and should swap those locations with spares from the platter.
Most hard drives made today (referring to consumer drives) are manufactured in such a way that they really only just work. The drive manufacturers add extra bits so that the drive can compensate the gradual loss of these writable bits.
If you really want to resolve the drive then an application like SpinRite will attempt to read all the data from the current sectors and probably is the number one tool used by skilled data recovery experts short of using a clean room and putting the platters into another piece of hardware.
So in short a low level format may help
re-find bad sectors and mark them as such but it would be a waste of your time and effort on a modern drive (eg: post y2k). Using SpinRite may help in data recovery and helping find other sectors that are starting to degrade.
Like Jason has said, once you have moved beyond 5-10% of the drive having bad sectors, its time to no longer use this drive for data that you wish to keep.
A low level format or disk utility will excercise all sectors on the disk to find bad sectors. A disk can only know if a bit is usuable if a read/write attempt is made. By attempting to read & write every sector on the disk the disk can find bad sectors in areas that have not been used yet.
Also once the disk runs out of spare bits thats when you will start to see your drive space shrinking as the available capacity of the drive is lower due to unusuable parts of the media.
Hope this clears up my comments and makes them more accurate!
I’ve actually successfully ‘fixed’ a drive that had bad sectors, and was failing smart tests and giving me trouble in recovery with a full format from windows, though the linux badblocks command may work as well. I’ve also had drives drop dead so I wouldn’t say this is a solution that always works. This is useful ONLY when there’s a limited amount of damage (I have one sector) and it isn’t major physical, electrical or functional issues.
Generally failing a SMART self test is a sign something is wrong, and backing up with the appropriate tool and not trusting the drive is a very good idea – In this case this drive is used to store downloads and other transient data I will not miss. Unfortunately, I did not try gsmartcontrol on the drive pre data recovery and wipe and the tests the software my laptop’s manufacturer gave is different from what I usually use but it failed a ‘targeted read test’ and ‘smart short test’
The SMART values “Current Pending Sector Count” Indicates you have bad sectors now and you might get an error saying “Uncorrectable error in data”. This is a drive that works now, but you can see some values are not healthy
And the logs show that there were issues – rerunning smart tests post format is a good idea
So its possible to fix this, but time will tell if the drive can survive. I certainly wouldn’t put any critical data on it.