openSUSE:Snapper FAQ

跳转到:导航搜索

Snapper FAQ

我需要安装哪些软件包才能使 snapper 创建快照?

你始终需要这个软件包

 snapper

如果你使用 YaST2 安装、更新或删除软件包,并且希望 snapper 在你使用此工具时自动创建快照

 yast2-snapper

如果你使用 zypper 安装、更新或删除软件包,并且希望 snapper 在你使用此工具时自动创建快照

 snapper-zypp-plugin

如果你希望拥有高级 btrfs 快照引导菜单管理功能

 grub2-snapper-plugin

警告:上述软件包并非始终默认安装。安装的内容取决于你在 openSUSE 安装过程中所做的选择。在更改系统之前,请确保已安装适当的(通常意味着全部)上述软件包,否则你可能会对 snapper 未自动创建你认为它会创建的快照感到惊讶。

如何为我的 /home 文件系统启用快照?

你必须通过调用创建 /home 的 snapper 配置

 snapper -c home create-config /home

然后使用编辑器打开带有你配置的文件,/etc/snapper/configs/home,并浏览设置。特别是调整以下值

 TIMELINE_CREATE - whether hourly snapshots should be created
 TIMELINE_LIMIT_HOURLY - how many hourly snapshots the timeline cleanup algorithm should keep
 TIMELINE_LIMIT_DAILY - dtto daily snapshots
 TIMELINE_LIMIT_MONTHLY - dtto monthly
 TIMELINE_LIMIT_YEARLY - dtto yearly

默认值可能不适合你的用例,并且应根据文件系统上预期频率和更改的数据量进行调整。

例如,对于 Factory 开发,MONTHLY 和 YEARLY 设置没有意义,应设置为 0。否则快照将耗尽可用空间并可能导致软件包更新失败。HOURLY 的合理值介于 10 和 24 之间(这些会频繁清理),DAILY 的合理值最高为 7。

为什么 snapper 从未在 /var/log 中显示更改?

对于某些目录,我们决定禁用快照,例如 /var/log,因为还原日志会使搜索问题变得困难。要从快照中排除路径,我们为该路径创建一个子卷。你可以通过调用 "btrfs subvolume list /" 查看 / 的所有子卷。

snapper 支持 ext4 吗?

是的,但仅限实验性,并且你需要特殊的内核和 e2fsprogs。有关更多信息,请参见 next4 项目。

snapper 支持 LVM 吗?

自版本 0.0.12 起,snapper 可以使用精简配置处理 LVM 快照。

运行 YaST 或 zypper 后,我的系统 I/O 负载很高。我该怎么办?

运行 YaST 或 zypper 时,snapper 会创建两个快照并对其进行比较。此比较可能会导致高 I/O 负载。

自 snapper 版本 0.0.10 起,你可以通过在配置文件 /etc/snapper/configs/root 中设置禁用后台比较

 BACKGROUND_COMPARISON="no"

现在你可能还希望禁用空预/后快照对的清理,因为否则每日清理可能会导致高 I/O。

 EMPTY_PRE_POST_CLEANUP="no"

我没有使用 openSUSE。我还能使用 snapper 吗?

我们在 openSUSE 构建服务中为各种发行版提供 snapper 软件包,请参见 项目下载。当然,你也可以从源代码编译 snapper,请参见 开发

我没有使用 YaST 安装系统。我该如何开始?

安装完 snapper 软件包后,你必须通过调用为你的根文件系统创建一个配置

 snapper create-config /

然后继续 教程

如何添加预处理和后处理钩子(如 YaST)?

你必须在你的程序或脚本中插入两次调用 snapper。在第一次调用中,使用选项 --print-number,记住该值并将其传递到第二次调用。查看 /sbin/yast2,了解如何在 bash 中执行此操作,或查看 /usr/lib/zypp/plugins/commit/snapper.py,了解 python 的执行方式。

自 snapper 版本 0.0.9 起,你还可以向 snapper 提供一个命令,snapper 将在两者之间运行该命令来创建预处理和后处理快照,例如:

 snapper create --command "make install" --description "install mplayer"

snapper 真的会还原所有内容吗?

Snapper 将还原所有文件(文本和二进制),包括权限和所有权,还会删除和重新创建文件和目录。文件时间戳不会还原。某些文件被排除在外,例如 /etc/mtab。

建议始终使用状态命令来提前查看 snapper 将处理哪些文件。