Home │ 

Disable Auto Check Disk on Reboot in Windows XP

Topics on this page:





If your computer has an improper shutdown or a hard disc problem Windows may mark the volume as dirty in the registry and set autocheck disk (autochk) to operate on next reboot. Autocheck is a version of check disk (chkdsk) that runs before the system starts.

Normally you should deal with the hard disc problem first by letting check disk to run and correct any errors. However, sometimes after checking no problems are found and the same happens on next reboot.

Apparently this is a problem more commonly encountered in FAT partitions than NTFS.

The fsutil and chkntfs commands can query if a volume is marked dirty.

Sometimes when this happens, temporarily disabling hard disc caching may alleviate the problem.

There are ways to stop autocheck from happening again. Don't forget to check the Task Scheduler for any entries you made.

I've not encountered this problem myself so have not verified the methods below.



Method 1: Chkntfs

Type chkntfs volume [...] in the command prompt to check if volume is flagged dirty.

chkntfs c: command

Fig. 1. Chkntfs c: command showing volume c is not dirty.

Use the chkntfs command to disable a volume from autocheck with the /x parameter.

chkntfs [/x volume [...]]

For example, to disable this on C drive, type:

chkntfs /x c:

Type chkntfs /? for the available syntax.


Method 2: regedit

Open Regedit and modify this (if absent):

CurrentControlSet\Control\Session Manager


Or modify this if the value is different:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\
REG_Multi_SZ = autocheck autochk *


Method 3: Script

Prevent Autochk from running

The following WSH Scipt is taken from Microsoft TechNet. I include the code in full here in case the website is not available for reference. I've not tested it.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set objDisk = objWMIService.Get("Win32_LogicalDisk")
errReturn = objDisk.ExcludeFromAutoChk(Array("C:"))
Wscript.Echo errReturn


Modify the autochk timeout value.

This script is again from Microsoft TechNet; the original uses a timeout value of 30 seconds but this can be changed to 0 as in the modified code here.

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colAutoChkSettings = objWMIService.ExecQuery _
("Select * from Win32_AutochkSetting")
For Each objAutoChkSetting in colAutoChkSettings
objAutoChkSetting.UserInputDelay = 0



Running Autochk When the Computer Restarts



Description of Enhanced Chkdsk, Autochk, and Chkntfs Tools in Windows 2000

Using Chkntfs to Prevent Autochk from Running

Modifying the Autocheck Time-out Value

Maintaining Your System in 10 Easy Steps

Fsutil: dirty

TechNet Scripts: Prevent Autochk from running

TechNet Scripts: Modify the Autochk Timeout Value

KB 831426 Chkdsk.exe or Autochk.exe starts when you try to shut down or restart your computer


Copyright 2003 by Kilian except for the scripts from Microsoft. All my articles including graphics are provided "as is" without warranties of any kind. I hereby disclaim all warranties with regard to the information provided. In no event shall I be liable for any damage of any kind whatsoever resulting from the information. This article is provided in good faith but the contents have not been verified and it may contain technical or typographical errors. Links to other web resources may be changed at any time and are beyond the control of the author. Articles may be added, removed, edited or improved at any time. No support is provided by the author.

This is not an official support page for any other products mentioned. All the products mentioned are trademarks of their companies. Edit the registry at your own risk and back up first.

Last updated 9 May 2004