Disk Check Loop on Startup: Fix That Keeps Running chkdsk
Disk check runs every boot? The culprit is almost always a dirty bit set on the drive or a corrupted file system. Here's how to stop it fast.
Quick answer for advanced users
Run fsutil dirty query C: in an admin command prompt. If it returns 'Dirty', then run chkdsk C: /f /r in the same prompt and reboot once. That usually clears the dirty bit and stops the loop. If not, check the registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager for BootExecute values.
Why this happens
Windows uses a 'dirty bit' on the drive to mark that a file system check is needed. This bit gets set when the system crashes, when you force a shutdown, or when the drive has bad sectors. Normally, chkdsk runs once, fixes it, and clears the bit. But sometimes it fails to clear it — maybe because the corruption is persistent, or because a background process interrupts the check. I've seen this happen most often after a power outage or a failed Windows update on an older spinning hard drive. On SSDs, it's rarer but still possible if the firmware has a glitch.
Fix steps (start here)
- Open Command Prompt as admin. Press Win+R, type
cmd, then press Ctrl+Shift+Enter. - Check the dirty bit. Type
fsutil dirty query C:(replace C: with your system drive letter if different). If it says 'Dirty', the bit is set. If it says 'Not Dirty', your issue isn't the dirty bit — skip to the alternative fixes. - Run chkdsk properly. Type
chkdsk C: /f /r. It'll say the drive is in use and ask if you want to schedule it for next boot. TypeYand press Enter. - Reboot once. Let the check run fully. This can take 10 minutes to an hour on a large drive. Don't interrupt it. After it finishes, Windows boots normally.
Alternative fixes if the main one fails
Check for pending chkdsk schedules
Sometimes multiple checks stack up. Open admin command prompt and run chkntfs C:. This shows if chkdsk is scheduled. If it says 'The type of the file system is NTFS' with no extra line, there's no scheduled check. If it shows a pending check, run chkntfs /x C: to cancel it, then reboot.
Fix the registry BootExecute entry
A corrupted registry value can force chkdsk every boot. Open Regedit (Win+R, type regedit). Go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager. Look at the BootExecute value. The default should be:
autocheck autochk *If it has extra junk like chkdsk /f C:, delete everything except that line. Then close Regedit and reboot.
Check for bad sectors manually
If chkdsk keeps finding errors, your drive might be dying. Run wmic diskdrive get status in admin command prompt. If it returns 'OK', you're probably fine. If 'Pred Fail', back up your data now. For spinning drives, use CrystalDiskInfo to check SMART data — look for 'Reallocated Sectors' above 50 or 'Current Pending Sectors' above 0.
Prevention tip
Don't force shutdown your PC. Use the Start menu's shutdown option. If you have an SSD, disable disk defragmentation (it's not needed and can cause issues on some drives). Go to Services, disable SysMain (formerly Superfetch) if you're on an older machine — it sometimes triggers false dirty bits on mechanical drives. And for the love of everything, keep your Windows fully updated. Half the buggy chkdsk loops I've fixed went away after a cumulative update.
Was this solution helpful?