Originally Posted by
Techie007
The
/r flag scans the entire non-marked portion of a partition for unreadable areas to
add to the super-hidden
$BadClus file so that they can't be used to store file data.
The
/b performs the same scan, and then attempts to
re-read the areas occupied by the
$BadClus file, to evaluate whether they should be released back to general use or not. On a failing HDD, the last part of this test could be quite tortuous and take a lot of time, as each failed read will probably take a second to timeout-and there could be hundreds or thousands of them from a previous scan. But for a normal HDD, there would be no bad sectors, so the two tests would be the same.
I agree with
Oj010 that this is quite unnecessary as pretty much all drives nowadays silently remap any failed sectors to the spare sector pool before Windows even realizes what's happening. By the time a drive's spare sector pool is exhausted (no more spare sectors available for remapping new bad sectors), the drive is probably done anyway due to run-away media failure. Windows introduced this feature back in the day when HDDs didn't have a spare sector pool, and having a couple bad sectors was normal.
Probably the more important use of scanning for bad sectors would be to identify impending drive failure and retrieve data before it becomes completely unreadable. See, a drive can be working perfectly fine, while certain areas storing rarely accessed files are degrading, and no one would ever know about the problem because those areas are never read. I have personally had this happen with about a half-dozen HDDs over the years.
Even then,
chkdsk is a bad tool for this job because of its very aggressive approach (it can burn up an otherwise functioning drive just because of a small bad area), its complete lack of reporting, and the fact that it will ignore the
time aspect of reads. Bad areas usually start reading slowly before they fail completely. These extremely slow areas pass
chkdsk until the point of complete failure, at which point
chkdsk goes into torture mode trying to recover the lost data, which often overheats the drive, causing its premature (and complete) demise. Often times, all the drive needs is the slow area to be copied to memory, zeroed+oned a couple of times, and then written back to the same spot. Unfortunately, I am not aware of a better tool for this sort of scanning at this time. Maybe I'll write one someday.