CHKNTFS.EXE: What You Can Use It For


The Chkntfs.exe utility has been developed by Microsoft and is available in Microsoft Windows NT 4.0 Service Pack 2 and later versions of Windows. It is designed to disable the automatic running of chkdsk on specific volumes, when Windows restarts from an improper shutdown. Chkntfs can also be used to unschedule a chkdsk if chkdsk /f was used to schedule a chkdsk on an active volume on the next system restart.

More Information

Every time Windows restarts, Autochk.exe is called by the Kernel to scan all volumes to check if the volume dirty bit is set. If the dirty bit is set, autochk performs an immediate chkdsk /f on that volume. CHKDSK /f verifies file system integrity and attempts to fix any problems with the volume. It is always advisable to run chkdsk on volumes that have been improperly shutdown, however, there may be some situations in which running chkdsk after every improper shutdown is not possible or practical. In some cases, chkdsk may take several hours or even days to completely check the volume or may hang while checking the volume. In these situations, it is more practical to postpone the chkdsk until a more convenient time.

Chkntfs is a utility that enables a system administrator to exclude volumes from being checked by the autochk program. The utility is run from a command prompt and has the following command line options:

chkntfs drive: [...]
chkntfs /d
chkntfs /x drive: [...]
chkntfs /c drive: [...]

drive: Specifies a drive letter.
/D Restores the machine to the default
behavior; all drives are checked at boot
time and chkdsk is run on those that are
dirty. This undoes the effect of the /X
/X Excludes a drive from the default boot-time
check. Excluded drives are not accumulated
between command invocations.
/C Schedules chkdsk to be run at the next
reboot if the dirty bit has been set.
If no switches are specified, chkntfs displays the status of the dirty bit for each drive.


chkntfs /x c: This disables chkdsk from running on drive C:

chkntfs /x d: e: This disables chkdsk from running on drives D: and E:.

The chkntfs /x commands are not cumulative, the command overwrites any previous drive exclusions that have been established. In the above example, chkntfs only disables the chkdsk checking on drives D and E, drive C is not checked for the presence of a dirty bit.

The chkntfs utility works by modifying the BootExcecute value in the system registry. The BootExecute value is located in the following registry key:
The default value is:
BootExecute:REG_MULTI_SZ:autocheck autochk *
Chkntfs /x adds a /k parameter prior to the asterisk. The /k parameter excludes volumes from being checked for the presence of a dirty bit.

For example, the command

chkntfs /x D:

would modify this registry entry to autocheck autochk /k:d *

Chkdsk /f schedules itself to run at the next reboot by setting the dirty bit on the drive. Chkdsk /x disables the checking for this bit. Chkdsk /f can never run on volumes that are excluded from dirty bit checking by chkntfs.

In order to run a chkdsk /f on a drive that has been excluded by the chkntfs utility, you must run the chkntfs /d option to return the system to its normal state or edit the BootExecute value in the registry and remove the applicable drive letter from the /k parameter.

Important This section, method, or task contains steps that tell you how to modify the registry. However, serious problems might occur if you modify the registry incorrectly. Therefore, make sure that you follow these steps carefully. For added protection, back up the registry before you modify it. Then, you can restore the registry if a problem occurs. For more information about how to back up and restore the registry, click the following article number to view the article in the Microsoft Knowledge Base:
322756 How to back up and restore the registry in Windows

Chkdsk /f /r enables chkdsk to check volumes for file system errors and bad sectors on the physical disk. Chkdsk /f /r schedules itself to be run on the next system reboot, by adding an entry into the BootExecute value. For example,

chkdsk c: /f /r

adds the following entry to the BootExecute value:

autocheck autochk /r \??\C:
Because this entry is actually placed in the registry, the chkdsk /f /r is unaffected by any chkntfs commands. The only way to disable a chkdsk /f /r is to remove the line from the BootExecute value that references this command.

The Chkntfs.exe utility treats all drives as local to the node. This includes Microsoft Cluster Server (MSCS) physical disk resources on a shared drive array. When using Chkntfs.exe to exclude shared drives on a cluster, you must run the exlusion command on each node. This must be done to ensure each node's registry will have the proper entries. You can only run the command for the shared drive(s) that node owns. If the node does not own the physical disk resource you will receive an error.