I have an old Western Digital HDD which started getting some bad sectors by a bad SATA cable, after replacing the cable I tried to fill the disk with zeroes using dd utility but it kept returning I/O errors. So, I tried to use Windows’ full format feature and it worked fine, no errors. I reinstalled my Linux distro on it then checked S.M.A.R.T.
As far as I remember, the reallocated sectors count was first set as 12256. It keeps increasing almost everytime I turn on the computer. Anyway, my questions about it are: why and how did the SATA cable ruined those sectors? what are those numbers in parentheses (2396 0)? why did Windows’ full format worked but dd failed?
Also, I checked the faulty SATA cable on my other HDD (which has Windows 7 installed) and the result was the message “A disk read error occurred. Ctrl+Alt+Del to restart”. I had the same I/O issue 1 month ago with another HDD which was newer than this one (with the same faulty SATA cable)
Weird thing is that S.M.A.R.T. logs only read errors, it never logs write errors. Using hdparm utility, reading the defective sectors results in success but it takes 2/3 seconds to read. If I re-read the defective sectors, the data gets randomized. Also, in the logs, the defective sectors are not always the same. Plus, self-tests says there is an error in a non-existent LBA of the disk, the LBA sector is totally out of the disk’s real size (I have checked it and it’s higher than 1TB, wtf?). This leads me to think the issue is not the hard disk itself but in the firmware