Windows chkdsk 替换了坏簇 - 文件现在损坏了吗?

Windows chkdsk 替换了坏簇 - 文件现在损坏了吗?

我在驱动器上运行了 chkdsk,当它进入第 4 阶段(验证文件数据)时,某些文件出现了以下消息:

Windows replaced bad clusters in file ######
of name \path\filename.ext

这是否意味着这些文件现在已损坏?我主要关心 ISO 和可执行文件。不幸的是,我没有它们的哈希值,因此在 chkdsk 运行完成后,我无法检查它们的完整性。

如果相关的话,这是一个机械硬盘,2TB 西部数据绿盘。

答案1

答案是,视情况而定。该文件至少有一部分占用了坏簇,这实际上损坏了文件。chkdsk 重新分配了该扇区(将该地址指向磁盘表面上一个不错的位置)并尝试将坏簇的内容复制到它。但是,无法保证源簇中的数据可以完全恢复到目标簇。如果可以,则文件完好无损,但如果无法完整准确地恢复数据,则说明数据已经损坏。

不幸的是,没有基线就无法判断。

答案2

这是否意味着这些文件现在已损坏?这些文件已损坏,Windows 能够修复文件。不幸的是,我没有这些文件的哈希值,因此在 chkdsk 运行完成后,我无法检查它们的完整性。我主要关心的是 ISO 和可执行文件。

您必须根据chkdisk修复的文件找到这些校验和,这并不难。最后检测到集群损坏。您应该从备份源恢复文件。

如果相关的话,这是一个机械硬盘,2TB 西部数据绿盘。

您应该开始更频繁地备份数据,以便可以比较校验和。

如果该文件是系统文件,您应该运行sfc /scannow以验证 Windows 的完整性。

答案3

通常,文件在磁盘上被分配了簇,但这些簇中并不一定存储有意义的数据。例如:

  • 虚拟机的磁盘映像已预先分配,以保留存储空间并避免碎片化。下载一半的文件通常也以这种方式预先分配。
  • 数据库中的记录已被删除但尚未被真空吸尘。在桌面系统上,“数据库”可能包括邮箱、即时通讯历史记录、浏览器书签、密码管理器、照片目录、音乐库或 Windows 注册表。

在这种情况下,文件通常会包含一些有意义的簇,以及一些包含您过去删除的无关数据的簇,例如文件系统标记为要覆盖的文件。因此,有时即使文件在技术上已损坏,您也可能很幸运,因为文件的完整性没有受到损害。

但是,如果可能的话,最好使用能够理解特定文件格式的工具来检查文件的完整性。大多数形式的磁盘映像、数据库和媒体文件都有这样的工具。

答案4

在这种情况下,可以使用十六进制编辑器并搜索是否有异常长的 00 序列中断了原本复杂的数据区域。通常,如果您在某个时候看到 512 字节的倍数空白数据,从相对于文件开头(扇区边界)的 512 倍偏移量开始,在应该有(看似)随机字符(如果是二进制文件)或可读字符序列(如果是文本文件)的区域中,那么您可以肯定发生了一些损坏。

当然,要做到这一点至少需要至少有坏扇区的 LBA,实际上不可能像这样检查每个文件。如果存储单元上有坏扇区,最好的做法是先用合适的工具克隆它(通常建议使用 ddrescue),然后运行 CHKDSK 或任何其他旨在尝试就地修复的工具,这些工具可能会成功或失败,但永远不会明确报告实际结果。否则,检测此类错误的唯一合理方法是在稍后读取/播放/运行存储在该设备上的文件时注意任何类型的故障,然后使用上述方法检查它们。

相关内容