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 将处理哪些文件。