如何使用 BTRFS 删除重复数据?

如何使用 BTRFS 删除重复数据?

我在 EEE PC 701 上安装了 Lubuntu 15.04,文件系统为 BTRFS。我想删除重复数据,但不知道怎么做。

答案1

首先进行完整备份,这样如果出现问题,您不会丢失任何东西。

我相信你正在寻找duperemove -d

“Duperemove 是一款简单的工具,用于查找重复的区段并提交它们进行重复数据删除。当给定一个文件列表时,它将逐个块地对它们的内容进行哈希处理,并将这些哈希值相互比较,查找并分类相互匹配的区段。当给定 -d 选项时,duperemove 将使用 btrfs-extent-same ioctl 提交这些区段进行重复数据删除。

Duperemove 有两种主要操作模式,其中一种是另一种的子集。

只读/非重复数据删除模式

不使用 -d(默认)运行时,duperemove 将打印出一个或多个匹配范围表,它已确定这些范围是重复数据删除的理想候选范围。因此,只读模式对于查看 duperemove 在使用“-d”运行时可能执行的操作非常有用。其他一些软件也可以使用该输出,以便稍后提交范围以进行重复数据删除。

值得注意的是,此模式不会打印出所有匹配范围的实例,而只会打印出那些考虑进行重复数据删除的实例。

通常,duperemove 并不关心其处理的区段的底层表示。其中一些区段可能已压缩、正在进行 I/O,甚至已进行重复数据删除。在重复数据删除模式下,内核会处理这些细节,因此我们尽量不重复该工作。

重复数据删除模式

此功能与只读模式类似,不同之处在于,我们在“读取、散列和比较”步骤中找到的重复范围实际上将提交进行重复数据删除。操作完成后,将打印重复数据删除的总数据估计值。此估计值是通过比较重复数据删除前后每个文件中的共享字节总数来计算的。

有关运行 duperemove 的更多详细信息,请参阅 duperemove 手册页。”

这似乎没有出现在 btrfs-tools 包中,但有一个 git hub 页面这里。最近开放和关闭的问题(又称脉搏)可用这里。

所有当前支持的 Ubuntu 版本的软件包都可以在此 PPA

我必须重申,强烈建议备份。 看:https://github.com/markfasheh/duperemove/issues/50

引述来源:https://github.com/markfasheh/duperemove

手册页:https://manpages.debian.org/testing/duperemove/duperemove.8.en.html

答案2

我总是用床铺。它非常快速和可靠。此工具也提到了官方 btrfs 页面。我从来没有使用过 duperemove(bedup 比较旧)。

相关内容