In the past, inconsistencies on disks could mean hours of trouble. Usually, the disk would have to be taken offline and a tool such as check disk would have to be run to correct the errors.
While check disk actually works very well at marking sectors as bad, it is slow and inconvenient. Windows engineers recognized this limitation and came up with a fairly robust solution: Self-healing NTFS.
Windows Vista, Server 2008 and Windows 7 all utilize this new feature. The process is actually very similar to how check disk itself works, but with a difference. Most disk corruption will tend to occur in one area of a file and is not generally endemic to the disk. That being the case, self-healing NTFS systems will actually detect corrupt areas on the disk, prevent access to it, and spawn a worker process that will take check-disk like corrective actions on the disk. This greatly minimizes disruption to end users especially on a particularly busy file server.
This tool is not a black box, luckily and we can actually get in and control its behaviour.
The fsutil repair set command can be used to both view the status of the self healing feature and to set its parameters.
Note, you will have to run this as an administrator to get it to function.
Some useful flags that can be set on the volume are:
SET_REPAIR_ENABLED – This simply enables self healing on the volume in its default state.
SET_REPAIR_WARN_ABOUT_DATA_LOSS – If the self healing option is unable to fully recover a file, it will visually warn the user about the potential data loss.
SET_REPAIR_DISABLED_AND_BUGCHECK_ON_CORRUPTION – This option would mainly be used by system engineers trying to pin point when corruption is occurring. This flag will actually create a 0X24 stop error which will be cleared during reboot.
Should you wish to initiate a manual self-healing operation, this is available too. Simply run:
fsutil repair initiate - to start the process and fsutil repair wait commands. After you are done, go ahead and query the status of the volume by running
fsutil repair query <volume name>
Pretty neat stuff here. I suspect that this will be used often as an alternative to running check disk as more and more people learn about the powerful features of this tool.