我有一个 BTRFS 文件系统,运行 Arch Linux x86_64。在该文件系统上,我有顶级子卷(id = 5),然后在其中我有@root,@home,@snapshots,@swapfile。我希望能够创建一个 Snapper 配置来自动将 @root 和 @home 快照到 @snapshots。默认情况下,它会在我为其创建配置的子卷内为其快照创建一个子卷,有什么方法可以更改它创建快照的位置?
答案1
好吧,我所做的是:
- 挂载 Btrfs 根卷(如果尚未完成)(例如挂载到
/mnt
) - 像往常一样创建 snapper 配置; snapper 将创建子卷等
/.snapshots
。/home/.snapshots
- 删除这些子卷并在您喜欢的位置创建新子卷,也许是您的 Btrfs 根目录(例如
/mnt/@SNAPS
,/mnt/@HOMESNAPS
等等) - 在 snapper 之前创建子卷的位置创建空文件夹 (
/.snapshots
,/home/.snapshots
) - 添加条目以
/etc/fstab
将/@SNAPS
子卷安装到/.snapshots
、/@HOMESNAPS
等/home/.snapshots
。
通过此设置,snapper 确实可以访问其硬编码快照目标,而它们实际上驻留在 Btrfs 顶层的直接子卷中。
答案2
对不起,不行。snapper
始终在其快照的子卷中创建快照。
另一种工具是BTRBK。它的配置允许您指定创建快照的位置。
我一直在btrbk
成功地创建定期快照(由 systemd 计时器触发),并在我的备份脚本中将快照传输到外部设备,同时应用保留策略。