检测 btrfs 重新链接的文件

检测 btrfs 重新链接的文件

很明显,cp --reflink foo bar我可以在 btrfs 上复制文件而不会浪费空间。但是我如何检测这两个文件(此处为 foo 和 bar)使用相同的“空间单位”?

如果它们是硬链接,我将用于[ foo -ef bar ]比较或stat -c%i foo获取唯一的 id(在本例中为索引节点)。

btrfs reflinked 文件是否有类似的命令?

我想将其应用到 300G 卷上,由于重复数据删除,该卷的大小实际上为 6T,所以我想避免校验和......

答案1

好的,这可能是迄今为止最好的:https://unix.stackexchange.com/a/277043/55508,@pwaller

进一步我之前的回答,我刚刚发布了fienode它计算文件物理范围的 SHA1 哈希值,并可用于查找一些(相同的)引用链接副本。但请注意,有一些警告(请参阅文档)。 BTRFS 决定更改我在没有挑衅或警告的情况下制作的 refink 副本的部分(但不是全部)物理范围,从而导致值发生变化。

相关内容