How much do you want to check?
Chkdsk is a Windows utility that diagnoses and possibly repairs disk issues. It has several options, but the two most commonly cited are /F, for fix, and /R, for repair.
Wait.
Aren't "fix" and "repair" just two words for the same thing?
Yes. But when it comes to CHKDSK, no.
Become a Patron of Ask Leo! and go ad-free!
CHKDSK /F or /R?
CHKDSK /F scans for and attempts to repair errors in the file system overhead information stored on a disk. CHKDSK /R includes /F, but also scans the entire disk surface for physical errors and attempts to repair them as well. Repairs are often successful, but not guaranteed.
Fix: CHKDSK /F
While "fix" and "repair" are synonyms in English, CHKDSK uses them to mean two different things.
CHKDSK /F is concerned with the file system overhead information that tells Windows about the files, folders, and data on the disk and their disk locations.
Think of it as the Table of Contents to a book. CHKDSK /F makes sure the Table of Contents entries all point to the right chapters, that all chapters have entries, and that the page numbers and spelling of the entries are correct.
It's all about making sure the Table of Contents is correct and leads you to the right information in the book, and that all the information in the book can be found via the Table of Contents.
Back in disk terms, it's all about making sure that the file system overhead information is correct, leading Windows to the right data on the disk, and that all the data on the disk is correctly represented in the filesystem information.
If errors are found, CHKDSK /F does its best to repair the information, though it's not always possible.
Repair - CHKDSK /R
CHKDSK /R begins by performing the same function as CHKDSK /F. (This implies that "CHKDSK /F /R" is redundant, as /R includes /F.) CHKDSK /R is also concerned with the physical condition of the information stored on the disk -- more specifically, whether or not the data is readable.
Think of this as carefully examining our book page by page to make sure that all the text is legible and no pages are torn. This step doesn't care what's on the pages; only that they can be read and aren't damaged.
In disk terms, CHKDSK /R scans the entire disk surface, sector by sector, to make sure every sector can be read properly. As a result, a CHKDSK /R takes significantly longer than /F, since it's concerned with the entire surface of the disk, not just the parts involved in the Table of Contents. It carefully examines every single page, not just those referenced by the Table of Contents.
If errors are found, CHKDSK /R does its best to work around them, though it's not always possible.
If errors are found...
Both /F and /R attempt to fix any errors they find.
CHKDSK /F attempts to build a new Table of Contents, meaning it tries to repair the file system overhead information. Depending on the nature of the errors found, though, CHKDSK may not succeed, resulting in lost files.
Occasionally, CHKDSK /F uncovers information that should be a file, or part of a file, but doesn't know what to do with it. Then it creates ".CHK" files to contain that information. In our book analogy, it's like saying "I found these pages, but I have no idea which chapter they belong to."
CHKDSK /R attempts to use spare disk sectors, if any are available, to take the place of damaged sectors it finds, and then marks the original sector as "bad", indicating it should no longer be used.
CHKDSK doesn't cause errors
Because many people first learn about missing files or bad sectors after running CHKDSK, they often blame it for causing those errors. That's a clear case of shooting the messenger.
CHKDSK doesn't cause errors; it uncovers them. The errors were already there.
Disk errors happen. Disk failures happen. CHKDSK is one useful tool for recovering from certain types of errors -- but you still need to back up. CHKDSK can't save you from everything, regardless of whether you use /R or /F.
Do this
Run CHKDSK occasionally when you suspect you're having disk problems. On a disk without issues, it's completely safe, and if there are issues, repairing them may recover data and/or extend the life of the disk itself.
When you're done, subscribe to Confident Computing! Less frustration and more confidence, solutions, answers, and tips in your inbox every week.
Thanks Leo, you’re really nailing the most critical issues / issues / knowledge gaps this week!
This is by far the VERY BEST explanation of CHKDSK I’ve yet come across. Finally, “light” … fully, now, out of the darkness w.r.t. this function / tool.
Thanks so much!
Dorian
Leo, Can you run CHKDSK on a solid state drive or does it only work on spinning drives?
That’s right here: Should I Run CHKDSK on My SSD? (Spoiler: yes.)
As usual, excellent information for the lightly informed.
Running CHKDSK (from personal experience): Sometimes, when you run CHKDSK it’ll tell you that the drive is busy and you need to reboot the machine first. In that event CHKDSK sets a flag, called the dirty bit, which tells it to run immediately after reboot. If CHKDSK completes successfully it resets or clears that dirty bit flag. Since the world isn’t perfect, you may come across a situation when CHKDISK doesn’t complete successfully and so it never clears the dirty bit flag. What happens in then is that every time the machine boots up CHKDSK is run again, fails again, and you find yourself in a ground hog day scenario (referring to the movie). There is no way to manually clear the dirty bit, such as in the Registry. The only way is to get CHKDSK to complete successfully. How do you get off this merry-go-round? Not easily.
When CHKDSK gets ready to run it’ll show a message, very briefly, saying to press any key to cancel the scan process. If you’re quick enough to catch that and pound on the keyboard your machine will boot up, but that won’t clear the dirty bit. Once you get on the machine, run CHKDSK in its most minimalist configuration, with the /I and/or /C options and hope that it clears the dirty bit. This situation can get so hopeless that many online sites suggest the nuclear option: reformat and reinstall Windows.
excellent article – does /F mean for FAT? also, are there any other choices with chkdsk?
/F means “Fix” as outlined in the article.
CHKDSK /? will list all the options – there are several.
I use chkdsk without an option. ‘chkdsk.exe /scannow’.
What am I getting?
You should be getting “Invalid parameter – /scannow”. “/scannow’ is a parameter to the SFC command, not CHKDSK.
OUCH! You are correct. A little brain dead today
Steve Gibson had a utility program that ran under DOS which fixed most disk glitches. Is it still available? Any good?
Doesn’t matter, because DOS itself no longer exists.
Was the utility called SpinRite?
https://www.grc.com/sr/spinrite.htm
It doesn’t matter that DOS no longer exists. Spinrite boots into its own FreeDOS environment and can be run on even on a Linux system as it doesn’t boot into the installed OS.
And freedos still exists: https://www.freedos.org/
SPINRITE is still around, but last I heard it hadn’t been updated in YEARS. I used to recommend it often. https://www.grc.com/sr/spinrite.htm
That’s one thing I’ve wondered about. It hasn’t been updated but since it boots into its own DOS environment, wouldn’t it still work? I imagine it’s simple enough that all the bugs probably have been eliminated so it might not need an update, although a cosmetic change to give it a more modern look might be nice.
I believe it has problems with some (not all) SATA interfaces, and some (not all) larger drives. Fortunately there’s a 100% money back guarantee.
Steve Gibson is busy with an exercise to update and extend SpinRite. This exercise was suspended for a couple of years while he developed his identify verification system (SQRL) as a replacement for password based logins. He’s now back working on Spinrite and extending it to deal with modern bios / secure boot systems as well as to speed up disk access. As he programs in Assembly this will take a while.
He might be a little late. With more and more computers coming with SSDs, fewer people will be a target audience for SpinRite. External HDDs will still be around for a long time but I’m sure his biggest market is for system drive repair.
This concerns me too. HDDs will be around for a long time, but I suspect consumer devices are already switching away to SSDs for the majority. Even my own beefy desktop is SSD based.
I’m planning on getting a new desktop this week. I’ll get a 256 GB SSD system drive with a capacious HDD. Not sure how big yet but probably at least 5 TB because, why not?
As I understand it, as long as I have redundant backups, chkdsk.exe would be enough to mark bad sectors and the backup would protect against data loss, so I probably would never need SpinRite.
He’s been “working on it” for well over a decade. “SQRL” is an awesome name for one of his efforts, since I think that characterizes his attention span as well — he’s been diverted to so many projects over the years, and SpinRite always seems to take a back seat. I love what he does, I just wish he could focus … the SpinRite update is long, long over due.
I have a Dell computer that will not boot. How do I boot from a Windows 10 boot repair disk? I can get to the bios Boot order screen but can not change the order. It just stays on Hard Drive. Any help would be appreciated.
You’ll have to reach out to Dell for help. This is one of those things that’s different for every machine. Make sure to include the specific model of machine you have when you ask there.
Hi Leo,
My Western Digital passport external drive is giving an error “File record segment is unreadable” upon chkdsk /f run. It is a 1 TB external drive and I have bunch of such errors (bunch of unreadable addresses). How can I fix there errors and retrieve my data back? Thank you so much in advance for your help.
Thanks!
What you’re saying is your data is not backed up anywhere else? That’s bad.
What I would do:
If after all that you’re not getting all the data you want, you may need to enlist the services of a data recovery company. This will cost money.
I ran chkdsk /f /r on boot up. I expected it would a take a long time, so at 13% complete I walked away. Two hours later and the computers login screen is up. I log into windows. Not like old days where after chkdsk ran, it was still there in DOS environment with report.
So where do I go to find the chkdsk report? Yeah, its called a log file or some other such thing, so where is it to tell me what it found and what happened? For all I know it exited due to some error and never finished.
thanks
Fire up the Event Viewer
How Do I See the Results of a CHKDSK that Ran on Boot?
I ran chkdsk d: /f /r /x on my laptop for 1TB for one of the partiotioned drive (drive D: in my case). Apparently, took more than 12 hours and still running.
My PC is still running and i went to Disk MAnagement to try to assign a letter back to mount back the drive , but unable to do so. So, now my Drive D is disabled.
I am not sure if i can stop it halfway and reboot. Is it safe to do so? OR should I just keep it running until it ends? If it really stuck for say more than a day, it is okay I reboot? Please help. thanks .
If it’s doing it for that long, there’s probably a reason. (The fact that CHKDSK is still running is WHY you can’t assign drive letter). I’d let it run as long as you can tolerate, and then instead of rebooting, go to the command window in which CHKDSK is running and type CTRL+C. That’ll stop it.
Thanks for the quick reply , Leo!
Chkdsk just paused for a very long and progressing very slowly. It says in C Prompt – Stage: 9% , Total: 22% since this morning. I supposed my hardisk are giving way soon. I saw a prompt from my Asus laptop that says “S.M.A.R.T status bad, backup and replace” yesteday and I need to press F1 to resume to Windows. I called Asus and they said, hardisk issue. Most likely going to go soon.
I was actually trying to copy files for backup and some files are unable to read the source. That is why I attempted to repair it.
I will take your advise and keep it running for as long as I can tolerate hahaha… will do the Control + C to stop it. Just want to check with you that I can then mount my Drive D back by assigning the letter at Disk Management once I stopped Chkdsk with Control + C, yes?
It should come back automatically, but if not you should be able to assign the drive letter. And yes, BACK THAT DRIVE UP. It’s failing. (Ideally, you’d back all drives up regularly before they fail.)
This is an excellent article. There are a few other things I would add from experience: First, the /X option is your friend, as it will give scandisk exclusive access to the drive; Second, while, as the article correctly states, scandisk does not cause errors, I do tend to refer to it as a potentially destructive utility, if only because it can place file data out of context (i.e. in a .CHK file, where it is of little use). Finally, defrag is an excellent prelude to scandisk, since sectors having errors correctible by scandisk will cause defrag to fail. Both defrag and scandisk work best when at least 15% of the drive is free. When scandisk finds an error and names the file using the sector, you can sometimes copy that entire file to a different place on the same disk successfully, thereby forcing an update to the FAT or MFT before running scandisk again.
“I do tend to refer to it as a potentially destructive utility, if only because it can place can’t determine which files they are associated with.”
It is not moving anything out of context. It is creating new files. So, it’s not doing any damage. When I first used CHKDSK, I’d look at those files, but they never contained any useful data, so now, I move them to my backup disk without looking at them, just in case it turns out they might have anything useful.
I don’t think any of these methods help when you can’t seem to locate the drive… Some time back, I had an SSD installed as my main drive, and took a HDD from the old computer and had it installed as a backup into the new frame. It was working fine, and then all of a sudden, it “disappeared.” While I can see it listed by an alphanumeric name in “Disk Management”, its name is “Disk 1” and it shows as “Unknown not initialized” and “unallocated.”
If I go to “Devices and Drives” it does not show up as a storage drive; only the main SSD and the WD backup, and DVD drive show letters. I’ve tried a lot of things to try and get at the HDD but with no success. It’s as if it doesn’t exist, but in Device manager it shows under Disk drives as “ST1000DM003.”
Any thoughts?
Sounds like a drive failure. Might just be time to replace it.
Here’s a slight variation for backup purposes, for you to comment upon…
Running W10 as primary SSD drive, with what was an older HDD as “slave” for backup location, in addition to an external backup (WD) hardware…the backup HD is the one I referred to earlier in this thread, which I believe you’re right in suggesting it is likely kaput.
If I have another system (XP) with a working hard drive, and want to format that drive completely and use it for the “slave” to W10, which would be one of two other backups then (internal, and WD external SSD) — would that work? That is: having removed any relevant photos, etc. from the old computer (XP), then would you format that drive to create a blank drive that could then be used only for a backup of the W10 system? AND, if so, what method would you use to best strip that old XP drive: format in the older machine (to make sure it doesn’t conflict with the W10 system by installing it downstream to the main drive with the intent to format it in the new machine)?
If you want to use that drive as an internal extra backup, the fastest way would be a quick format. No need to wipe or perform a full format on the drive. The drive would be empty for all practical purposes, and the files on it would be overwritten as you add backups and other files to it.
Should work. Formatting it in either should be fine.
AS ALWAYS, you guys rock; thank you!
What is “tried a lot of things”? Before you give up that it’s a drive failure, try these (if you haven’t): Make sure the cable connections (data and power) are securely installed. Make sure the motherboard side of the data cable is securely installed. If your computer has another data cable for a hard drive, try that. Try the hard drive in another computer. Go to device manager, right click on properties, and the driver tab, uninstall the driver and reboot your computer. Of course, if you’re running Windows 10 it may be that your disk driver was corrupted in an update, so see if you can find an old driver from the manufacturer. Install a free version of a disk management utility, such as Aomei, Macrium, PartitionWizard, etc. These utilities will give you other options to try and may provide some clues. Maybe you accidentally created a drive letter conflict, so try assigning a different drive letter, such as Z (something that you would never use). Reformat it with NTFS. See if you can partition the drive (using one of the disk utilities). Make sure the hard drive is enabled in the BIOS/UEIF (although, if it were disabled you wouldn’t see it at all). Just to cover all basis, check the Power Options in the Control Panel. Depending on your computer and OS you may have settings for selectively suspending a drive.
aa…: Thanks for the comments. My IT guy remote connected a year or so back, tried everything in his bag of tricks, but in the end he couldn’t figure it out.
In Disk Management, it shows as “Disk 1” and when I open the Management feature, a pop up says “Disk 1 must be initialized…” so when I click “OK” another pop up window (Virtual Disk Manager) says “The request could not be performed because of an I/O device error.”
The “file history backup log” shows 297 events. The Disk shows as only being 3.86GB (in dManagement, under its name) and 3.86Gb unallocated. The event log started in July 2020 (maybe it caught COVID). Clicking each event line, coming forward in time, gives you some info about “the issue” highlighted.
The final event log entry (Sep 2020) read: “Unusual condition was encountered during finalization of a backup cycle for configuration C:\Users………”
I am pretty sure that the drive was larger than 3.86Gb, into the hundreds, but can’t recall accurately anymore.
In the list under “volume” (disk management), “Disk 1” does not appear; only C:\, Disk 0 partition 1, Disk 0 partition 2, My Passport (D:\), and WD Unlocker (E:\).
I’ll admit I have not checked cables, etc. because the unit is never entered by myself and I can’t see why it would come off, but also don’t feel qualified to assess that aspect.
That drive (was “B:\”) was only being used to back up the main C:\ drive, in addition to a WD external drive for backup. So I’m puzzled; but tonight bought a new external SSD (WD) My Passport 1TB with a view to doing an IMAGE of the current hard drive (internal, SSD) to the WD external HDD, then ejecting it and storing it “in case” whilst putting the new SSD external on as a new backup of the C:\ drive (which I realize will not cover all disk components, but will cover files, email, photos, etc.). I’d do incremental on it, perhaps using MACRIUM REFLECT 8 (??chime in guys, is it better than using the WD Discovery “software for backup and password protection” that the box says is included with the SSD I bought)? I suspect I’d have to format the new external SSD drive to remove that software, if I wanted to use Macrium instead??
I’ve tended to agree with Leo that the old drive inside is likely fried, and suspect that since so many of the event lines reference a “pathway that exceeded allowable file name…” (sic) it was trying to back up but just gave up, or the 3.86Gb wasn’t enough left on the drive to allow it to do its magic, maybe.
I ran chkdsk /f and let it do its thing, which was quick, given that it was scanning an SSD. But when it finished and displayed the “100 % complete” message, the system wouldn’t reboot. I let it sit for about 5 minutes, then hit the reset button to get things back on track. I then checked the log file and no problems were reported. Any ideas why the system wouldn’t reboot after chkdsk?
Thanks,
James
CHKDSK was not designed for SSD. It’ll run on an SSD and very likely won’t harm it, but it won’t have any benefits either. SSDs have their own, build in, maintenance software which is always running to get the most efficiency out of the drive. Also, don’t run defrag on an SSD. I believe Leo had an article about this.
CHKDSK /F will run on and repair software errors on SSDs. I say software errors because it doesn’t fix hardware errors. It rebuilds indexes. I don’t believe it can recover data from bad sectors as it sometimes can on an HDD.
It has nothing to do with maintenance or speed efficiency.
Incorrect. CHKDSK /F checks the file system on the drive, and the internal SSD utilities cannot do this. CHKDSK /F is both useful and safe.
MR, LEO, Your contributions are a great help to many people like me who is willing to learn as a senior. May God bless you a HAPPY, HEALTHY, PROSPEROUS, AND PEACEFUL LONG LIFE. Padman d
Hello sir my external hard drive shown the error “The Parameter is Incorrect” and after another window pop out format the disk. I don’t want to format the disk so I ran the command chkdsk d: /f /r /h (h my hard drive name).But its taking too long time, I am already over 60 hours and the task is only completed 10% of stage 4 of 5.It’s taking too long, what should I do, should I terminate the above command and just run chkdsk d: /f. Will my data be lost if above command terminated. please reply.Thanks.
Your data should not be lost by terminating the command, but given the behavior the data might have been lost before you even ran CHKDSK. I would:
It definitely feels like that drive is dying.
This has to be one of the best explanations of a CMD function that I have ever seen. The difference makes perfect sense now. Thank you so much.