检查卷的文件系统和文件系统元数据是否存在逻辑和物理错误。 如果在不使用参数的情况下使用, chkdsk 将仅显示卷的状态,并且不会修复任何错误。 如果与 /f、 /r、 /x 或 /b 参数一起使用,则会修复卷上的错误。
重要
本地 Administrators 组中的成员身份或等效成员身份是运行 chkdsk 所需的最低成员身份。 若要以管理员身份打开命令提示符窗口,请在“开始”菜单中右键单击命令提示符,然后单击“以管理员身份运行”。
重要
不建议中断 chkdsk 。 但是,取消或中断 chkdsk 不应使卷比运行 chkdsk 之前更损坏。 再次运行 chkdsk 检查,并应修复卷上剩余的任何损坏。
注释
Chkdsk 只能用于本地磁盘。 该命令不能与通过网络重定向的本地驱动器号一起使用。
语法
chkdsk [<volume>[[<path>]<filename>]] [/f] [/v] [/r] [/x] [/i] [/c] [/l[:<size>]] [/b]
参数
| 参数 | DESCRIPTION |
|---|---|
<volume> |
指定驱动器号(后跟冒号)、装入点或卷名。 |
[ [<path>]<filename> |
仅用于文件分配表(FAT)和 FAT32。 指定希望 chkdsk 检查碎片的文件或文件集的位置和名称。 可以使用 ? 和 * 通配符来指定多个文件。 |
| /f | 修复了磁盘上的错误。 磁盘必须锁定。 如果 chkdsk 无法锁定驱动器,则会显示一条消息,询问你下次重启计算机时是否要检查驱动器。 |
| /v | 选中磁盘时,显示每个目录中每个文件的名称。 |
| /r | 查找不良扇区并恢复可读信息。 磁盘必须锁定。 /r 包括 /f 的功能,以及物理磁盘错误的其他分析。 |
| /x | 首先强制该卷卸载(如有必要)。 驱动器的所有打开句柄都失效。 /x 还包括 /f 的功能。 |
| /我 | 仅用于 NTFS。 对索引项执行不太激烈的检查,从而减少运行 chkdsk 所需的时间。 |
| /c | 仅用于 NTFS。 不检查文件夹结构中的周期,这减少了运行 chkdsk 所需的时间。 |
/l[:<size>] |
仅用于 NTFS。 将日志文件大小更改为键入的大小。 如果省略 size 参数, /l 将显示当前大小。 |
| /b | 仅用于 NTFS。 清除卷上错误的群集列表,并针对错误重新扫描所有已分配的和免费的群集。 /b 包括 /r 的功能。 将卷映像化到新的硬盘驱动器后,请使用此参数。 |
| /扫描 | 仅用于 NTFS。 对卷运行联机扫描。 |
| /forceofflinefix | 仅与 NTFS 一起使用(必须与 /scan 一起使用)。 绕过所有联机修复;发现的所有缺陷都排队进行脱机修复(例如 chkdsk /spotfix)。 |
| /perf | 仅与 NTFS 一起使用(必须与 /scan 一起使用)。 使用更多系统资源尽快完成扫描。 这可能会对系统上运行的其他任务产生负面影响。 |
| /spotfix | 仅用于 NTFS。 对卷运行现成修复。 |
| /sdcleanup | 仅用于 NTFS。 垃圾回收不需要的安全描述符数据(意味着 /f)。 |
| /offlinescanandfix | 对卷运行脱机扫描并修复。 |
| /freeorphanedchains | 仅用于 FAT/FAT32/exFAT。 释放任何孤立的群集链,而不是恢复其内容。 |
| /markclean | 仅用于 FAT/FAT32/exFAT。 如果未检测到损坏,则标记卷干净,即使未指定 /f 。 |
| /? | 在命令提示符下显示帮助。 |
注解
/i 或 /c 开关通过跳过某些卷检查来减少运行 chkdsk 所需的时间。
如果希望 chkdsk 更正磁盘错误,则驱动器上不能打开文件。 如果文件已打开,将显示以下错误消息:
Chkdsk cannot run because the volume is in use by another process. Would you like to schedule this volume to be checked the next time the system restarts? (Y/N)如果选择下次重新启动计算机时检查驱动器, chkdsk 会检查驱动器,并在重新启动计算机时自动更正错误。 如果驱动器分区是启动分区, 则 chkdsk 会在检查驱动器后自动重启计算机。
还可以使用
chkntfs /c命令来计划下次重启计算机时要检查的卷。fsutil dirty set使用命令设置卷的脏位(指示损坏),以便重启计算机时 Windows 运行 chkdsk。应偶尔在 FAT 和 NTFS 文件系统上使用 chkdsk 来检查磁盘错误。 Chkdsk 检查磁盘空间和磁盘空间使用情况,并提供特定于每个文件系统的状态报告。 状态报告显示文件系统中发现的错误。 如果在活动分区上没有 /f 参数的情况下运行 chkdsk,则可能报告虚假错误,因为它无法锁定驱动器。
仅当指定 /f 参数时,Chkdsk 才会更正逻辑磁盘错误。 Chkdsk 必须能够锁定驱动器以更正错误。
由于 FAT 文件系统上的修复通常会更改磁盘的文件分配表,有时会导致数据丢失, 因此 chkdsk 可能会显示如下所示的确认消息:
10 lost allocation units found in 3 chains. Convert lost chains to files?如果按 Y,Windows 会将根目录中每个丢失的链保存为格式为 File.chk
<nnnn>格式的文件。 chkdsk 完成后,可以检查这些文件,以查看这些文件是否包含所需的任何数据。如果按 N,Windows 会修复磁盘,但它不会保存丢失分配单元的内容。
如果不使用 /f 参数, chkdsk 将显示一条消息,指出该文件需要修复,但它不会修复任何错误。
如果在
chkdsk /f*非常大的磁盘或具有大量文件的磁盘上使用(例如,数百万个文件),chkdsk /f可能需要很长时间才能完成。使用 /r 参数查找文件系统中的物理磁盘错误,并尝试从任何受影响的磁盘扇区恢复数据。
如果指定 /f 参数,如果磁盘上有打开的文件, chkdsk 将显示错误消息。 如果未指定 /f 参数并打开文件, chkdsk 可能会报告磁盘上的分配单元丢失。 如果尚未在文件分配表中记录打开的文件,则可能会发生这种情况。 如果 chkdsk 报告大量分配单元丢失,请考虑修复磁盘。
由于启用共享文件夹卷影副本时无法锁定 共享文件夹的卷影副本 ,因此针对源卷运行 chkdsk 可能会报告错误或导致 chkdsk 意外退出。 但是,可以通过在只读模式(无参数)中运行 chkdsk 来检查卷影副本是否存在错误,以检查共享文件夹存储卷的卷影副本。
可以通过恢复控制台获取具有不同参数的 chkdsk 命令。
在不经常重启的服务器上,可能需要使用 chkntfs 或
fsutil dirty query命令来确定卷的脏位是否已设置,然后再运行 chkdsk。
了解退出代码
下表列出了 chkdsk 报告完成后的退出代码。
| 退出代码 | DESCRIPTION |
|---|---|
| 0 | 未找到任何错误。 |
| 1 | 找到并修复了错误。 |
| 2 | 执行磁盘清理(如垃圾回收)或未执行清理,因为未指定 /f 。 |
| 3 | 无法检查磁盘、无法修复错误或未修复错误,因为未指定 /f 。 |
例子
若要检查驱动器 D 中的磁盘并出现 Windows 修复错误,请键入:
chkdsk d: /f
如果遇到错误, chkdsk 将暂停并显示消息。 Chkdsk 通过显示列出磁盘状态的报告完成。 在 chkdsk 完成之前,无法打开指定驱动器上的任何文件。
若要检查当前目录中 FAT 磁盘上的所有文件是否存在非连续块,请键入:
chkdsk *.*
Chkdsk 显示状态报告,然后列出与具有非连续块的文件规范匹配的文件。
查看 chkdsk 日志
有两种方法可用于在 Windows 中检索 chkdsk 日志文件。 查看下面所述的方法:
若要使用事件查看器查看日志,请导航到以下内容:
启动 >控制面板>管理工具>事件查看器。
或者,按 Win + R 键打开运行对话框,键入 eventvwr.msc,然后选择“ 确定”。
展开 Windows 日志> ,右键单击 “应用程序> ”选择“ 筛选当前日志”。
在 “筛选器当前日志 ”窗口中,导航到 “事件源 ”下拉菜单,选择 Chkdsk 和 Wininit。
单击“ 确定 ”完成这两个源的筛选。