I have been rethinking my retraction. When I was having problems with Seagate drives (all 3 of them failed and had to be replaced) I was reading some of the documentation that Seagate provided (if I can ever find it again I will provide a link or a quote). In modern disk drives, you do not have access to all of the sectors. There is a small pool of sectors that is held in reserve. The firmware on the hard drive constantly monitors the state of each sector and if it comes across a bad sector it will automatically remap the sector to one of sectors in the pool. It does this behind the back of the OS and any apps that the OS is running. And as far as the OS is concerned, that sector is still in the original location.cafed00d: However, if either tool comes across a bad sector, the hardware in the hard drive will automatically move the bad sector to a new location.
bbearran: Not quite. A sector is a physical location on the hard drive. Sectors aren't moved. ... It marks a bad sector as unusable and allocates a different, usable sector.
cafed00d: Which is, of course, what I meant. I apologize for not being technically accurate.
When you run chkdsk and it validates the file and directory structure, if it comes across a bad sector, the firmware in the hard drive will remap the bad sector to the pool. Provided that the data from the bad sector can be moved to the good sector in the pool, chckdsk won't even know that anything is wrong. However, it is very possible that a good sector (according to the hard drive) can have bad data (according to chkdsk), in which case chckdsk will fix it as best it can.