Windows是否计算CRC来检查每个文件操作?


8

Windows在文件系统上遇到文件损坏时,它可能会返回以下错误消息:

数据错误(循环冗余校验)。

这建议Windows通过计算CRC来检查每个文件操作(复制,移动等)。Windows是否真的在操作期间或之后执行此操作?

Answers:


6

Windows实际上并未对文件传输进行任何冗余,这对于设备驱动程序访问错误的扇区块是一个错误的称呼(请参阅SO问题NTFS CRC窗口抱怨什么以及在哪里抱怨?以及此Microsoft KB文章; NTFS不存储任何类型的文件校验和。如果在计算机上收到此错误,则应确保硬盘的完整性(并可能chkdsk使用该/r标志进行调用)。

长话短说,Windows在传输文件后不会对其进行验证。您可以在移动/复制文件后使用其他软件工具(例如TeraCopy)来验证数据。


我实际上已经看过链接的堆栈溢出问题。我要问的是Windows是否在文件操作过程中即时计算CRC,而不一定是是否存储它们。
bwDraco

@DragonLord我不相信,否则这些错误将出现在正常的读/写错误中,没有报告坏扇区。传输文件后,可以使用第三方实用程序来实际验证文件内容。
突破

编辑问题以澄清。在进行文件操作时, Windows是否执行任何错误检查?
bwDraco

@DragonLord以我的经验,不。我以前曾使用Windows将文件复制到坏的驱动器,有时还没有收到错误消息。仅在我手动尝试验证文件的CRC(或MD5 / SHA1哈希)时才检测到它们,但它们不匹配。我相信仅当实际磁盘设备驱动程序在传输过程中引发错误,或者NTFS文件系统本身检测到某种损坏时,才会显示错误消息。
突破

1
实际上,有三种不同的情况可以导致此错误(在典型的传统硬盘驱动器的IDE / SATA接口中):1)硬盘驱动器和控制器之间的连接数据损坏。2)尽管重试,但磁盘控制器从磁盘表面读取的数据中的数据损坏。3)访问控制器已知为坏的磁盘扇区,该磁盘扇区在写入之前无法重新映射。
David Schwartz 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.