硬盘用久了,偶尔会弹出「文件或目录损坏且无法读取」,或者某个文件夹打不开、复制报错。这时候搜到的第一条建议基本都是 chkdsk c: /f。这条命令确实管用,但很多人是照抄着跑完,并不知道它到底改了磁盘上的什么。
它到底在修什么
NTFS 会在磁盘上维护一张文件记录表(MFT),记录每个文件占用了哪些簇。断电、蓝屏、强行拔盘之后,表里的记录可能和实际数据对不上,于是出现孤儿文件、交叉链接、目录索引错误。chkdsk 做的就是扫这张表,把不一致的地方改正过来。
/f 这个参数不能省
不带参数的 chkdsk 只读不写,报告有问题也修不了。/f 表示修复错误,这也是它需要独占磁盘的原因:C 盘正在被系统使用,文件句柄被占用,没法边跑边改。所以命令会提示「是否在下次系统重新启动时检查这个卷」,输入 Y 重启,开机时会先扫一遍。
chkdsk c: /f
chkdsk c: /r/r 是定位坏扇区并尝试恢复可读信息,隐含了 /f,耗时成倍增加,机械盘上跑几个小时很正常。只有怀疑物理坏道时才用 /r,普通的逻辑错误 /f 就够。
跑之前先备份
修复过程会改动文件系统结构,极少数情况下会让原本能读的文件彻底读不出来。重要数据先拷到移动硬盘,尤其是已经出现异响的硬盘——那种情况应该先做镜像,再谈修复。
结果怎么看
扫描结束会给出几行统计,重点看「已处理」和「坏扇区」两项。如果坏扇区数量在多次扫描后持续增长,说明盘体在恶化,换盘比修复更实际。事件查看器里也能查到 chkdsk 的日志,来源是 Wininit 或 Chkdsk。
几个常见误区
- 当成日常维护:健康磁盘不需要定期跑,反而增加磨损。
- 在固态盘上跑 /r:SSD 没有传统扇区概念,意义有限,还白白消耗写入寿命。
- U 盘报错也跑 C 盘:要换成对应盘符,比如 chkdsk e: /f。
一句话,chkdsk 是修文件系统记录的工具,不是万能的磁盘医生。跑之前备份,跑完盯住坏扇区有没有变多。