我经常使用 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 生成并使用它来跳过旧文件。