XP Disk Checking upon Reboot from Lockups

*** for the deep details on the the disk checking executable routines, see Chkdsk and Autochk

XP has a safety feature that is very annoying.  Whenever you lock up or freeze (WinXP was supposed to be very stable and stop the freezups - yeah, right) - XP flags all drives with current open files as "dirty".  Then when you reboot it automatically runs chkdsk on all dirty drives.  When chkdsk has completed, the dirty flag is removed.

Do you need to Let the Disk Checking Run ??

Now, this chkdsk process takes time . . . up to 5 or 10 minutes per drive.  Sometimes you may be in a hurry and you want to reboot quickly.  In addition, it is a fact that very, very rarely will anything catastrophic happen if you skip the disk checking.  In fact, very very rarely will there be any lost clusters or other problems that occur when you freeze up - and even if there are lost clusters, they almost NEVER cause damage.

Manually Aborting the Disk Checking

Fortunately XP does allow you to skip the drive checking by hitting any key - but act quickly, there is a timer and you only have a few seconds to act !!  But even if you do abort it - XP will NEVER remove the dirty flag until you allow it to run chkdsk fully, upon a reboot.  In other words, if you hit <Enter> to skip the chkdsk process, the next time you reboot, XP will again try to run chkdsk.  So you may as well let it run, because it will bug you until the cows come home.

Checking the Dirty bit Status on an NTFS Drive

Start/Run . . . cmd

fsutil dirty query n:     -where n is the letter of the NTFS drive you want to check

Chkdsk /d' stops all episodes of chkdsk from running at startup.

Editing the Dirty Flag manually (i.e. the Dirty bit) to turn if OFF

When XP runs chkdsk upon reboot, the dirty flag is turned OFF.  But if you do not want to wait and want to stop the drive from being checked upon reboot, you can exclude the drive from being checked by using the chkntfs /x command (although it does not reset the dirty bit).  You can use this for one or more drives, as follows:
  1. Start/run . . . cmd
  2. chkntfs /x n: m: etc.      -where n, m, etc are the letters of the drive/s you want to exclude from being checked upon reboot

 

What if the Dirty bit gets stuck ??

This has never happened to me, but some users report that even when they let chkdsk run to completion upon reboot, the drive remains flagged as dirty.  Their only fix was to reformat the drive.  Here is a user's post on this problem and the reply:

User 1

I have a second hard drive in my XP machine, and it crashed during a defrag (power outage). Since then the dirty bit has been set and running chkdsk doesn't clear it. The disk itself is fine (per chkdsk and Norton's), no lost data, no bad sectors.

I know I can turn off the chkdsk at boot using chkntfs, but that's just a workaround; I want to know how to clear the dirty bit without reformatting the entire drive. Any help greatly appreciated.

User 2

I've had a similar problem recently. Drive D on my systems was always checked with chkdsk on bootup, because the 'dirty bit' was set. Chkdsk was run on boot, found no errors to correct , but still the dirty bit remained set.

Search of the microsoft support site, several news groups, and a google search turned up some articles that were helpful, but in the end nothing solved the major problem---that is the dirty bit on Drive D remained set.

I never solved the dirty bit problem. As long as the dirty bit remains a check disk will be run. Finally I moved essential data off the drive and did a full format of Drive D. This cleared the dirty bit and chkdsk has not run.

If your disk is Drive C, reformat is your option of last resort. You might try running chkdsk from the recovery console, some with this problem have had results---unfortunatley I was not one of them.

Good Luck. Post back to the group how you solved the problem.

Paul