我对 Arch Linux 比较陌生,我真的很喜欢它的滚动发布概念。
在通过 进行系统更新之前pacman -Syu
,我想创建一个还原点。这样,如果我的系统更新失败,我可以返回到尝试系统更新之前我的计算机上次所处的良好状态。
这是因为有一次当我pacman -Syu
在 Arch 安装上进行安装时,它破坏了我的系统并且无法启动。发生这种情况时,我的计算机上仍然只有很少甚至没有必要的文件,因此我进行了全新安装。但现在我慢慢地构建了一个非常符合我喜好的系统,我不想从头开始重新安装它,并在系统更新破坏它时再次执行我已经做过的所有事情。与一个还原点,我很可能可以恢复我的计算机,而无需重新安装所有内容。
我如何创建和使用还原点在 Arch Linux 中?
答案1
Arch 并不是这样设计的:它是一个滚动版本,因此当软件包被推送到您的存储库时,您总是必须继续升级它们:唯一的选择是冻结所有内容。
话虽如此,你所要求的最好可以得到管理,在 Arch 框架内通过做两件事:
定期更新(这样您一次只能升级少量的软件包),并使用日志
/var/log/pacman.log
提供软件包列表,以便在出现问题时进行回滚。不要过早清除软件包的缓存,或者(如果您需要空间)在发出 a
pacman -Sc
或之前pacman -Scc
,然后备份/var/cache/pacman/pkg/
到外部驱动器,以便在您确实需要降级一个或多个软件包时可以访问旧版本。
如果您没有运行[Testing]
存储库,那么实际情况是很少有损坏,并且当发生损坏时,会有详细记录。作为沃乔克斯指出,阅读是维持 Arch Linux 安装良好运行的先决条件。
一般来说,对于 Linux,您可以使用类似的工具克隆属制作当前安装的快照。
警告以上所有内容均指您的系统。当然,您应该有一个适当的制度来备份您的数据。
答案2
Linux 发行版通常没有设置类似恢复系统的东西。也有一些小的例外。我使用的基于 RPM 的发行版在升级时会保留所有以前版本的软件包的存档。可以安装这些软件包并将软件回滚到升级前的状态,但这会造成依赖性混乱,并且没有听起来那么有用。通常解决包问题的唯一方法是转发。
但是,如果您想实现系统范围的恢复系统,执行此操作的方法是通过文件系统而不是包管理器。使用允许完整文件系统快照的文件系统,例如 XFS。或者更好的是,使用 LVM 设置驱动器并使用您喜欢的任何文件系统。一种稍微手动的方法是rsnapshot
使用增量备份工具。
在进行主要的系统工作之前,先对整个系统进行快照。然后,如果出现问题,您可以回滚到原来的状态并重试。
答案3
答案4
手动
Arch:安全地保存和恢复 pacman 数据库概述了在官方存储库中保存包快照的手动方法。您可以将此方法与保存包数据的文件系统快照结合使用。我的理解是,只有最新版本的软件包才会保存在存储库中。
使用aura
aura-bin
可以轻松回滚/恢复pacman -Su
系统更新/升级。
保存当前状态
要保存已安装的软件包和版本的列表:
aura -B
恢复之前的状态
从带日期标记的列表中选择以前的还原点:
aura -B --restore
清理旧的还原点
要删除除最后 3 个还原点之外的所有还原点:
aura -Bc 3
Manjaro 用户
如果您正在运行 Manjaro,请删除PKGBUILD
对abs
运行时的依赖yaourt -S aura-bin
。