如何查看文件的 btrfs 校验和?

如何查看文件的 btrfs 校验和?

Btrfs 计算每个文件的 crc32c 校验和。有没有办法可以查看存储的校验和(而不是仅仅读取文件并重新计算它)?

答案1

Btrfs 计算每个文件的 crc32c 校验和。

这是不正确的。两个开源校验和文件系统(ZFS 和 BTRFS)都会计算每个逻辑块的校验和(使用的未命名源 Awe 是正确的)。这是磁盘数据的校验和。

如果文件系统启用了压缩(越来越常见的设置),则此校验和是压缩后数据的校验和。这意味着,即使文件适合一个逻辑块,文件系统的校验和数据也有可能(并且越来越有可能)对您毫无用处。

如果您需要文件校验和,获得它的最佳方法是计算它。

答案2

来自一个类似的答案经过日本LP服务器故障时:

我不认为可以从 ZFS 文件系统中提取块级校验和,但由于校验和是在块级,而不是文件级,所以它可能对您没有任何帮助。

含义:btrfs 不会为每个文件创建校验和。提到的是拉克什米帕蒂关于超级用户的问题 有一个补丁可以向inspect-internal子命令添加功能:

btrfs inspect-internal dump-csum

对于给定文件占用的所有块,此转储块校验和。复数,除非文件适合一个块。

答案3

我认为通过 btrfs CLI 不可能做到这一点,但是这里我希望有一个源代码可以帮助您读取 btrfs 文件系统中单个块的校验和。需要root。

相关内容