How to run the Chkdsk utility in Windows Vista

In this excerpt from Chapter 31 of the book "Windows Vista Resource Kit," the authors examine how to use the Chkdsk command-line tool to find and repair disk-related errors in Microsoft Windows Vista.

Windows Vista Resource KitThis chapter excerpt from the Windows Vista Resource Kit, by Mitch Tulloch, Tony Northrup and Jerry Honeycutt with the MSWinVista Team, is printed with permission from Microsoft Press, Copyright 2007.

Click here to purchase the entire book and find more expert advice on working with the Windows Vista operating system.

Chkdsk (Chkdsk.exe) is a command-line tool that checks disk volumes for problems and attempts to repair any that it finds. For example, Chkdsk can repair problems related to bad sectors, lost clusters, cross-linked files, and directory errors. Disk errors are a common source of difficult-to-track problems, and Chkdsk should be one of the first tools you use when troubleshooting problems that do not appear to be the result of a recent system change. You must be logged on as an administrator or a member of the Administrators group to use Chkdsk.

Before running Chkdsk, be aware of the following:

  • Chkdsk requires exclusive access to a volume while it is running. Chkdsk might display a prompt asking if you want to check the disk the next time you restart your computer.
  • Chkdsk might take a long time to run, depending on the number of files and folders, the size of the volume, disk performance, and available system resources (such as processor and memory).
  • Chkdsk might not accurately report information in read-only mode.

Chkdsk Examples

To correct disk errors from a command line, type:

chkdsk DriveLetter: /f /r

For example, to check drive C for errors, type:

chkdsk C: /f /r

If you need to run Chkdsk on a large D volume and you want Chkdsk to complete as quickly as possible, type:

chkdsk D: /f /c /i

Chkdsk Syntax

The command-line syntax for Chkdsk is:

chkdsk [volume[[path] filename]] [/f] [/v] [/r] [/x] [/i] [/c] [/b] [/l[:size]]

Table 31-3 lists all Chkdsk command-line parameters.

Parameter Description
Specifies the volume that you want Chkdsk to check. You can specify the volume by using any of the formats in the following examples:
To run Chkdsk on the C volume, specify:
To run Chkdsk on a mounted volume called data that is mounted on the C volume, specify:


To run Chkdsk on a volume, you can specify the symbolic link name for a volume, such as:

You can determine a symbolic link name for a volume by using the mountvol command.
path FAT/FAT32 only. Specifies the location of a file or set of files within the folder structure of the volume.
filename FAT/FAT32 only. Specifies the file or set of files to check for ‹a ID= "wPopUp"HREF="HELP=glossary.hlp TOPIC=gls_fragmentation"› fragmentation ‹/a›. Wildcard characters (* and ?) are allowed.
/f Fixes errors on the disk. The volume must be locked. If Chkdsk cannot lock the volume, Chkdsk offers to check it the next time the computer restarts.
/v On FAT/FAT32: Displays the full path and name of every file on the disk. On NTFS: Displays additional information or cleanup messages, if any.
/r Locates ‹a ID="wPopUp" HREF="HELP=glossary.hlp TOPIC= glos_glo_cigj"› bad sectors ‹/a› and recovers readable information (implies /f). If Chkdsk cannot lock the volume, it offers to check it the next time the computer starts.

Because NTFS also identifies and remaps bad sectors during the course of normal operations, it is usually not necessary to use the /r parameter unless you suspect that a disk has bad sectors.
/x Forces the volume to dismount first, if necessary. All opened handles to the volume are then invalid (implies /f). This parameter does not work on the boot volume. You must restart the computer to dismount the boot volume.
/i NTFS only. Performs a less detailed check of index entries, reducing the amount of time needed to run Chkdsk.
/c NTFS only. Skips the checking of cycles within the folder structure, reducing the amount of time needed to run Chkdsk.
/l:size NTFS only. Changes the size of the log file to the specified number of kilobytes. Displays the current size if you do not enter a new size.

If the system loses power, stops responding, or is restarted unexpectedly, NTFS runs a recovery procedure when Windows Vista restarts that accesses information stored in this log file. The size of the log file depends on the size of the volume. In most conditions, you do not need to change the size of the log file. However, if the number of changes to the volume is so great that NTFS fills the log before all metadata is written to disk, then NTFS must force the metadata to disk and free the log space. When this condition occurs, you might notice that Windows Vista stops responding for five or more seconds. You can eliminate the performance impact of forcing the metadata to disk by increasing the size of the log file.
/b NTFS only. Re-evaluates bad clusters on the volume. This is typically not necessary,but it might allow you to reclaim some lost disk space on a hard disk with a large number of bad clusters. However, these clusters might experience problems in the future,decreasing reliability.
/? Displays this list of Chkdsk parameters.

How to Troubleshoot Disk Problems in Microsoft Windows Vista

  • Introduction
  • How to prepare for disk failures

How to use Chkdsk

Reprinted with permission from Microsoft Press. From Windows Vista Resource Kit (ISBN:9780735622838) Microsoft Press. All rights reserved.

Dig Deeper on Windows applications