【发布时间】:2011-10-18 19:00:25
【问题描述】:
我猜一个典型的文件系统倾向于保留它管理的每个文件的某种校验和/CRC/哈希,因此它可以检测文件损坏。
你猜对了吗?如果是,有没有办法访问它?
我主要对 Windows 和 NTFS 感兴趣,但其他平台上的 cmets 也会受到欢迎...语言在这一点上并不重要,但我想尽可能避免使用汇编程序。
【问题讨论】:
-
没有。 CRC 检查是磁盘驱动器的工作。
-
@HansPassant 在块级别,当然。但是文件级别呢?
-
取决于操作系统和文件系统,这可能是真的......例如对于 ZFS(适用于 Sun、Linux 和 OSX)......无论如何,如果由文件系统计算/存储它通常是无法通过记录的 API 访问...要获得它,您通常需要深入挖掘并使用几个未记录的东西,在某些情况下需要特定权限(管理员、root 甚至内核模块/驱动程序)...通常很多比计算自己的校验和更麻烦……你的目标到底是什么?
-
@Yahia 是的,这就是我的想法,但我需要确认。如果文件系统已经“访问”了该内容并计算了校验和,则目标是通过避免文件内容的 I/O 来提高性能。
-
@BrankoDimitrijevic,性能下降是文件系统不尝试对硬件进行第二次猜测的一个很好的原因。
标签: windows file filesystems checksum ntfs