Running CHKDSK correctly - Windows can corrupt data if you are not careful with CHKDSK
All too often I see the same scenario “I ran CHKDSK and now my data is corrupt”.
The wrong way
The hard disk is physically failing, and you let CHKDSK /R or CHKDSK /F run on it. Running CHKDSK on a failing hard drive is basically suicide for your data. CHKDSK is not a data recovery utility. It doesn’t behave like one. Data recovery utilities are cautious. If the sector is not readable, it will leave it be. CHKDSK will tenaciously retry until the data is not recoverable, mark the sector unrecoverable, and basically make my work a lot more difficult.
In summary, if your hard disk is failing, under no circumstances should you run CHKDSK on it. If Windows wants to run it, cancel it.
The correct way
A data recovery company, like yours truly, will take a disk image. On the PC, we typically use ddrescue. If the drive is too fragile for that utility, a specialty tool is pressed into service.
Once we have that image, we can do whatever we want with it. We can do it safely because we do not alter the original data. That means, that among other things, we can copy it, and run a CHKDSK on the copy of that image. If CHKDSK creates more problems than it solves, well, then we simply undo the damage by copying whatever useful result there was from this image, deleting it, and trying a different approach.
Why would we run CHKDSK in the first place, you might ask? Usually, we’ll run it if we are returning a bootable system to the customer. We want to ensure that it will function as it did pre-crash.
CHKDSK, when run on a healthy media, such as our lab virtual image drive, will correct NTFS errors that prevent Windows from starting.