chkdsk 究竟做了什么?

Cor*_*ory 26 windows chkdsk

我试图阅读一些关于 chkdsk 的内容,但我仍然不从概念上理解它的作用。

来自Microsoft:“基于文件系统创建并显示磁盘的状态报告。Chkdsk 还列出并纠正磁盘上的错误。不带参数使用时,chkdsk 显示当前驱动器中磁盘的状态。”

来自维基百科:“显示硬盘和软盘的文件系统完整性状态,并可以修复逻辑文件系统错误。”

但这一切都非常模糊,我还没有看到对实际情况的一个好的、简洁的、清晰的总结。

我刚刚运行了一个 chkdsk 并收到了以下一些消息:

从文件记录段 120759 中删除损坏的属性记录 (128, "")。

块 0x3 中的 USA 检查值 0x0 不正确。预期值为 0x63。

文件 0x3d5b6 中的多扇区头签名不正确。

正在删除损坏的文件记录段 251333。

正在删除孤立文件记录段 251321。

从文件 25 的索引 $O 中删除索引条目。

正在删除文件 118566 的索引 $I30 中的索引条目 P1040158123.JPG。

有什么地方可以让我从这些消息中获得任何意义吗?这对最终用户来说到底重要吗?它会删除文件还是只删除索引?从日志/输出来看,我的磁盘似乎有很多错误,但不知道这是否是我应该关心的问题。

Mik*_*ier 11

考虑到这个线程的年龄,我的 2 美分,主要是给未来的读者。

一些用户无疑不知道实际上有两个级别的 chkdsk 操作,可以通过命令行开关选择:斜杠 F (chkdsk /f) 和斜杠 R (chkdsk /r)。两者都指示 chkdsk 修复它发现的错误,但不同之处在于斜线 F 不检查驱动器是否有坏扇区,而斜线 R 会。

一种思考方式是:/F修复软件问题,/R软件和硬件,因为坏扇区是对磁盘表面的实际物理损坏。/R基本上做旧的 SpinRite 程序过去所做的事情(“习惯”是因为今天的大容量驱动器在很大程度上超出了它的处理能力);分析驱动器上的每个扇区,无论它包含数据还是完全空白,并尝试读取和重新定位它找到的数据到好的扇区。然后它将坏扇区标记为坏扇区,以便 Windows 不会再次使用它们,从而有效地从系统中“删除”坏扇区。

正如所料,该/R选项需要几个小时才能完成,所以不要坐在那里盯着它等待它完成。:)

我通常是微软的大批评家,但即使我也不得不承认他们用这个工具做对了;使用得当,它很容易与售价从 40 到 100 美元不等的独立程序一样值得(另外注意:关于“碎片整理”也可以这样说,它也包含在 Windows商业碎片整理程序。)


Wil*_*sum 9

我认为微软的定义很好,从你的问题来看——

“根据文件系统创建并显示磁盘的状态报告。Chkdsk 还列出并纠正磁盘上的错误。不带参数使用时,chkdsk 显示当前驱动器中磁盘的状态。”

从你所展示的情况来看,你的硬盘驱动器基本上有一点损坏,但看起来 chkdsk 能够修复它。

不幸的是,这种事情会随着时间的推移而发生(写入过程中出现故障关机/电源故障等),并且不必担心。

  • chkdsk 不会删除文件,但它可以(部分)将已损坏的文件恢复为 .chk 文件。而万一硬盘出现严重故障,读/写会使情况恶化,所以首先要做的是保存重要文件...... (6认同)
  • @Cory:要真正知道它可以纠正哪些错误,这需要对所有 NTFS 功能、数据结构和内部工作原理进行彻底的解释,这当然是*可能的*,但不是有意义的、简短的方式。基本上,文件系统认为理所当然的一切都可能出错,是的,即使使用日志(尽管它具有很好的自愈能力);如果有任何*是*错误,那么您可以尝试修复它。稍微阅读一下文件系统的工作原理,然后您可能会想到足够多的可能出现问题并需要修复的情况。 (2认同)
  • 它本身不会删除文件,但如果您打算恢复的驱动器上有已删除/丢失的数据,它*可能*弊大于利,因为它可以覆盖它认为空闲的集群。我曾经通过在 FAT 驱动器上运行 CHKDSK 来销毁已删除的文件,这使得一些文件在扫描之前无法恢复,但取消删除软件仍然报告可以恢复。基本上,不要在已经出现问题的驱动器上运行它。 (2认同)