Why does CHKDSK run everytime I boot my Windows 7 machine?

The proper way to stop chkdsk from running on startup is to use chkntfs:

chkntfs /x c:

Where c: is the drive you're excluding from the disk check. You can use multiple drives as arguments like so:

chkntfs /x c: d:

Explanation of the various switches:

C:\Documents and Settings\Administrator>chkntfs /?
Displays or modifies the checking of disk at boot time.

CHKNTFS volume [...]
CHKNTFS /D
CHKNTFS /T[:time]
CHKNTFS /X volume [...]
CHKNTFS /C volume [...]

  volume         Specifies the drive letter (followed by a colon),
                 mount point, or volume name.
  /D             Restores the machine to the default behavior; all drives are
                 checked at boot time and chkdsk is run on those that are
                 dirty.
  /T:time        Changes the AUTOCHK initiation countdown time to the
                 specified amount of time in seconds.  If time is not
                 specified, displays the current setting.
  /X             Excludes a drive from the default boot-time check.  Excluded
                 drives are not accumulated between command invocations.
  /C             Schedules a drive to be checked at boot time; chkdsk will run
                 if the drive is dirty.

If no switches are specified, CHKNTFS will display if the specified drive is
dirty or scheduled to be checked on next reboot.

If Windows is running CHKDSK at every boot then you have a problem.

Using CHKNTFS to exclude the drives from checks at boot is not a good idea at all, that's just ignoring the problem.

If you are ensuring you always shutdown properly, and it appears to do so, then something is causing the dirty bit to be flagged before power off.

This can be caused by many things (hardware or software), and it's impossible to pinpoint based on what we know. But it's most likely a hardware issue (based on too many years of experience). If you have warranty, save your data and get them to fix it, should be EASY for them if it's happening every time (and they should have all the spare parts available).

If you want to try and diagnose it yourself, then please go try a few things and come back with specific questions.

Hint: try Windows power adjustments, and HDD manufacturer diagnostics to start)


John T beat me to the command, but in addition, it is worth noting that this is controlled through "Boot Execute" in Microsoft/Sysinternals Autoruns, you can delete entries there, or go to the registry key they are stored in:

HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\Session Manager

Autochk.exe seems to be there by default - it is just the c: (and any additional drive) parts that you need to delete. The default value for the registry key (incase you delete something by accident) is autocheck autochk *.