A workaround.
I don’t have a fix for why this is happening, though I suspect it would involve diving into the registry.
Instead, I have a workaround: a way to run CHKDSK on your C: drive anyway. It uses a technique that is kind of useful to know about.
Become a Patron of Ask Leo! and go ad-free!
When CHKDSK won't run on boot
If CHKDSK won’t run on boot, you can run it anyway by rebooting into advanced troubleshooting tools and running the Windows Command Prompt from there. You’ll be able to run CHKDSK as well as other useful diagnostic or informative tools on your system drive.
Getting to a Command Prompt
Our destination is a Command Prompt window, but not via the normal means.
Start by closing all running programs. We’ll be rebooting a time or two.
In Windows 11, go to the Settings App and click on System, then Recovery .
In Windows 10 Settings, click on Update & Security and then Recovery.
In both versions, under Advanced Startup, click on Restart now.
On the next screen, click on Troubleshoot.
Click on Advanced options.
Finally, click on Command Prompt.
Run CHKDSK
In the resulting Command Prompt window, enter:
CHKDSK /F C:
The results will be displayed as they happen.
When complete, you can scroll back up within the Windows Command Prompt window to see the full results.
When you’re finished, you can close the Command Prompt window, or enter “EXIT” followed by the Enter key, and then click on Continue – Exit and continue to Windows to reboot and return to Windows normally.
When C: isn’t C:
In the example above, the disk that contains the system drive was conveniently assigned its normal drive letter, C:. Unfortunately, that might not always be the case.
If, for example, in Windows Command Prompt, CHDKSK completes lightning fast (as it did for me in one case), do a “DIR C:” to see what that drive contains.
The drive that had been assigned the letter C: was a different, apparently empty drive. No wonder CHKDSK was so fast.
If this happens to you, enter the following command to list all known drives on the system:
wmic logicaldisk get name
This will list the drive letters known to Command Prompt.
There may be an easier way, but I then just did a “DIR” command on each of those drive letters until the results matched the content of my system drive. In my case, that turned out to be E:.
What would normally be my real system drive at C: drive had instead been assigned the letter “E:” in this troubleshooting session. To run CHKDSK on it, I’d type:
CHKDSK /F E:
The Advanced Command Prompt
This technique gets us to an advanced command prompt. Normally, we can’t do a “CHKDSK C:” because C: is the system drive, and it’s in use. By rebooting into this advanced troubleshooting mode, Windows runs from one of the reserved partitions on your hard disk instead, not the C: drive at all. If you look carefully, you’ll see that the Command Prompt has opened on drive “X:”, which is the temporary system drive for this session.
You can examine and operate on the C: drive in other ways as well. Without Windows running, you may be able to manipulate files that are otherwise locked, run utilities (like CHKDSK) that normally require advanced access to the drive, and more.
Naturally, you need to be careful. It’s certainly possible to damage your system by deleting the wrong file or changing the wrong thing. But as long as you’re careful, it’s a quick and convenient way to get low-level access to system components you normally can’t modify.
Do this
Run CHKDSK on C: in this way, and remember that you now have another tool in your diagnostic and repair toolkit.
Want more tools for your toolkit? Subscribe to Confident Computing! Less frustration and more confidence, solutions, answers, and tips in your inbox every week.
“As Administrator, I type chkdsk C: /F”
Does it matter to the text parser that the /F option is after the specified drive. I noticed all your examples put the option ahead of the drive: chkdsc /F C:.
I’m rusty in the “old” DOS commands so I can’t remember. I realize the command window uses the same & enhanced DOS commands from before.
Doesn’t matter in this case.
/F and c: in this case are parameters The order of those parameters doesn’t make any difference. In many cases, the order of the parameters doesn’t matter. In others such as copying or moving files, the order matters.
Hi Leo, maybe you or your readers can help me understand how bad block reports and chkdsk really work, because I’m stumped. I got 2 Event ID 7s, \Device\Harddisk0\DR0, has a bad block. CHKDSK C: /R found no errors. I used DISKPART to assign a drive letter to all 5 hidden partitions and run CHKDSK /R on each of them. No errors found on any of those either. FWIW, Win 10, fully updated, SSD. Any ideas, anyone? Thanks.
Do you have any other disks on the machine? Even USB conencted? When was that event ID — recent? Has it happened after the /R? (/R could have repaired the issue)
Thanks, it’s possible a user inserted a flash drive, although unlikely after hours – 6:34 PM yesterday. I addressed it almost immediately and reviewed all logs. Nothing since then. Keeping an eye on it. (It’s a client’s computer, not mine. It sent me alerts.)
Hi Leo, In order to find the system drive, I’m surprised you didn’t use “Echo %SystemDrive%”
In my test that shows the recovery drive (X:) and not the Windows Drive that I truly want to operate on. (C:)
I think the X: drive is a ram disk set up by that special boot as its system drive.
When I clicked on Command Prompt in Advanced Options, I got a request for my Microsoft password. I typed it in and got the response that it was incorrect. It’s my most current password for Microsoft that I use frequently. (And it works!) Is it possible that Microsoft is looking for an earlier password I had used with that particular computer? (It’s now two years old.)
It’s asking for the password of your login or administrator account. (It actually should show you the ID of the account it’s asking for.) If needed, ask at https://askleo.com/ask, and then include a screen shot in reply to the initial auto-response you’ll get after you submit your question.
You need to use Administrator Account on the local machine; not a Standard User account and not a Domain Account. If you click on Forgot Password, it tells you about this.
You said, “There may be an easier way, but I then just did a ‘DIR’ command on each of those drive letters until the results matched the content of my system drive.”
When I want to find out which is the system drive, I run the Disk Manager (start typing diskman and click “Create and manage hard disk partitions”). That lets me see the drive that contains the system partition. I don’t know if that will work in Troubleshooting mode, but I imagine it should as it’s a system utility.
In my case, it’s the c: drive, but look for the partition that says Healthy Boot and Page File etc.
What warnings signs might I see when I check results here. I ran the chkdsc through the Recovery mode you suggested. My file system shows 100% and I am trying to find out why and this was one way to troubleshoot. My chkdsc would not run the conventional way. I am not a computer person so the results that show don’t mean much to me.