First of all I have to say that this procedure is NOT able to repair physically damaged HDDs and it is just a waste of time trying to repair physically damaged HDD this way - sorry - no magic today :-/
Using this procedure you are able to repair sectors which are currently unreadable because they were not written properly for some reason - in most cases because of power-fail or vibrations during write process. For examle HDDs from notebooks suffer vibrations while playing games, because the HDD is just under the keyboard...
OK, but how?
The procedure itself is very simple - we just call badblocks to make non-destructive read-write test of the HDD. This means that every sector is read - written (which is important) - and verified by badblocks and this makes the HDD to try to rewrite every sector again (even if the read operation failed) - result of this is that sector which were written improperly in the past are correctly overwriten and become readable!
Also in some cases (depends on drive's firmware) the controller is able to replace (realocate) physically damaged sectors with (to) spare ones (in case that the drive have some left) and fix light physical damage of the HDD, but I DONT recommend you to use such HDD for any data that you cant afford to loose.
Using badblocks to fully-rewrite HDD
Make a backup of all data on the HDD - it will put extra load on your disk which might cause it to fail.
# run following command as root
# replace sdX according to your drive
badblocks -svvn -c 262144 /dev/sdX
Now wait until the procedure finish. After that results are shown. For example:
Pass completed, 7 bad blocks found (7/0/0 errors)
This means that there were 7 error while reading, 0 when writing and 0 when comparing, so right now we fixed 7 unreadable sectors on the HDD.
Like my blog? Want to buy me coffee or beer?
LTC (litecoin): LeWzkcV2ArRv7Bi7TmrTpwkp6j2CZSLwfY
BTC (bitcoin): 1LzmUcwHK5Ys4zGPRoxYodjzpJsWiG61JY
DOGE (dogecoin): DQmS6EdDXssriDgSBpQMxYicHTiji6kMhx
ETH (ethereum): 0x387ff39c66e71c454ce5844c188c1a87835d2263
USDT (tether@ETH): 0xa69cae5a1da5ff5fb226e4bc87fe5d0f8c45908a
MANA (decentraland): 0xa69cae5a1da5ff5fb226e4bc87fe5d0f8c45908a
XMR (monero): 4JUdGzvrMFDWrUUwY3toJATSeNwjn54LkCnKBPRzDuhzi5vSepHfUckJNxRL2gjkNrSqtCoRUrEDAgRwsQvVCjZbRxBb8sEWJB1SCCuUEa