CHKDSK is a command on computers running DOS, OS/2 and Microsoft Windows operating systems that displays the file system integrity status of hard disks and floppy disk and can fix logical file system errors. It is similar to the fsck command in Unix. It is short for "Check disk". On computers running NT-based versions of Windows, CHKDSK can also check the disk surface for physical errors or bad sectors, a task previously done by SCANDISK.

CHKDSK can be run from the Windows Shell, the Windows Command Prompt or the Windows Recovery Console. One option for CHKDSK is the use of the Command-line/R parameter, which allows the program to repair damage it finds on the hard drive.

Conducting a CHKDSK can take some time, especially if using the /R parameter, and the results are often not visible, for various reasons. The results of a CHKDSK conducted on restart using Windows 2000 or later operating systems are written to the Application Log, with a "Source" name of Wininit or Winlogon and can be viewed with the Event Viewer. On the Windows 7 operating system, look for events with a "Source" name of "Chkdsk"

The standard version of CHKDSK supports the following switches :

filename   FAT only. Specifies the file or set of files to check for
           fragmentation. Wildcard characters (* and ?) are allowed.

path    FAT only. Specifies the location of a file or set of files within the
        folder structure of the volume.

size    NTFS only. Changes the log file size to the specified number of 
        kilobytes. Must be used with the /l switch.

volume  FAT and NTFS (NTFS support is unofficially supported but works 
            normally) Specifies the drive letter (followed by a colon), 
            mount point, or volume name.

/c  NTFS only. Skips checking of cycles within the folder structure.

/f  Fixes errors on the volume. The volume must be locked. If CHKDSK 
    cannot lock the volume, it offers to check it the next 
    time the computer starts.

/i  NTFS only. Performs a less vigorous check of index entries.

/l[:size]   NTFS only. Displays current size of the log file. If size is 
            specified, changes the log file to that size (in kilobytes).

/p  Checks disk even if it is not flagged as "dirty" 
    (only available in the Recovery Console).

/r  Locates bad sectors and recovers readable information (implies /f and /p)
    If CHKDSK cannot lock the volume, it offers to check it the next time the 
    computer starts.

/v  On FAT: Displays the full path and name of every file on the volume.
    On NTFS: Displays cleanup messages, if any.

/x  NTFS only. Forces the volume to dismount first, if necessary. 
    All opened handles to the volume are then invalid (implies /f ).

/b  NTFS only, since Vista. Clears the list of bad clusters on the volume
    and rescans all clusters for errors (implies /r).

/?  Displays the list of available CHKDSK switches.

When running CHKDSK from the Recovery Console the options are different. The /p is not read-only as in the standard version but corrects errors :

/p  Fixes errors on the volume. Same as the /f option in standard CHKDSK.

/r  Locates bad sectors and recovers readable information (implies /f and /p)
    Takes much longer to run than /p by itself.