是否可能以及如何合并 btrfs 文件系统中不同快照之间的相同文件?

是否可能以及如何合并 btrfs 文件系统中不同快照之间的相同文件?

我经常使用 btrfs 的快照来备份整个系统,但不同快照之间拥有相同的文件是多余的。通常,例如,我将@快照为@_without_install_nvidia_driver,并安装了nvidia_driver。几天后,我更新了系统,导致大量文件发生变化。后来,几天后,我发现nvidia_driver软件包不稳定,并恢复为@_without_install_nvidia_driver,但我必须再次更新系统,然后我意识到两个快照中都存在相同的文件,因为系统现在已经被删除了。在两个快照中均已更新。

这让我想知道:有没有办法合并不同快照之间的相同文件?

答案1

您可以使用床上用品实用程序删除重复的相同文件。安装后,使用非常简单:

# bedup dedup /path/to/btrfs

您可能需要将快照设置为可写 ( btrfs property set -ts /path/to/snapshot ro false),以便可以对它们进行重复删除。您可以稍后将它们更改回来。

请注意,根据您拥有的文件数量,这可能需要一段时间(它首先查找相同大小的文件,然后比较这些文件......因此,如果您有一堆相同大小的大文件,则可能需要一段时间)一点点。)

最后,您可以不时地再次运行它,并且将来的运行速度会更快,因为它会跟踪 btrfs 生成并使用它来跳过旧文件。

相关内容