更新或升级失败后的恢复
如果在更新过程中出现问题,例如计算机中途断电或更新进程被停止,可能会导致安装损坏,因为软件包可能处于半安装状态且缺少某些依赖项。本文档介绍了如何创建一个单独的恢复环境,以帮助减轻更新过程中出现问题所造成的损害,并修复由此引发的任何问题。
GUI 恢复环境
如果用户执行的升级或更新导致无法启动到 桌面环境,或者在用户能够看到 显示管理器 的情况下无法启动应用程序,那么最好为用户创建一个独立的环境,以便他们能够轻松自行修复这些错误。这对于 Linux 知识有限的用户尤其有用。安装 openbox 或其他等效的窗口管理器,并使用 ideskAUR,然后创建自己的程序按钮或更好的脚本,这些脚本配置为在启动前执行操作、显示警告以及显示系统管理员的联系信息。为了防止任何未经授权的用户使用“故障安全”环境或某些恢复任务,您可以在启动脚本或窗口管理器的自动启动项开头添加以下内容:
AllowedUser="JolinTsai";
if [ "$(whoami)" != " ${AllowedUser,,}" ];then zenity --warning --text="You are not the allowed user!
The allowed user is "$AllowedUser;
#openbox --exit
exit 1
fi
您需要从“会话类型”列表中删除所有不必要的条目。可以通过删除或最好是将包含其信息的 *.desktop 文件移至备份文件夹,然后创建自己的自定义配置文件来完成。简单来说,只需将一个 *.desktop 文件复制到一个您想要的名称的文件中,然后修改 Exec 和 description 部分即可。
您可以使用类似这样的方法来删除或将文件移至备份目录。
通常可以在 /usr/share/xsessions/ 中找到它们。
您还需要删除窗口边框,以防止用户关闭正在工作的窗口(例如,如果您使用 xterm 显示命令输出)。您可以使用 devilspie 来实现此目的。
要获取可用于 devilspie 配置文件中的窗口名称列表,您可以使用 wmctrl 工具 wmctrl -l | awk '{print substr($0, index($0,$4))}',或者在启动 devilspie 时,您将看到所有可用于配置文件中的信息。
窗口标题:'name@host:~/.path';应用程序名称: 'name@host:~/.path' ;类: 'XTerm' ;几何:492x350+487+226
window_name、application_name 和 window_class 可用于更改窗口属性。
您可为首选应用程序使用的 devilspie 配置文件示例
.devilspie/DesktopConsole.ds
(if (is (window_class) "XTerm")
(begin
(undecorate)
(skip_tasklist)
(above)
(fullscreen)
(maximize)
(unpin)
(skip_pager)
)
)
XTerm 也有一个全屏启动命令行:xterm -fullscreen。
准备安全恢复/重置整个存储设备
这里将描述关于如何通过使用您自己制作的“重置”功能来更轻松地恢复默认操作系统(例如 Arch Linux)的基本理论步骤,这对于初学者/普通用户非常有用,或者如果您计划销售预装 Linux 的计算机。
物理锁定存储
- 初始工厂设置必须存储在写保护的存储设备上,例如 Secure Digital (SD) 卡,这种卡可以物理锁定到只读模式。
- 最新的工厂设置必须存储在可写存储设备上,或单独的分区上,但访问权限有限,例如在 fstab 中预定义写保护挂载,和/或在附加挂载脚本 mount.* 中使用,这些脚本会检查已挂载的设备/分区,并仅允许普通用户以只读模式挂载。
- 将这些目标隐藏在文件管理器菜单中也是个好主意。
- BIOS 需要配置为从 SD 卡启动,并设置密码保护(密码可以是计算机的名称+型号)。SD 卡需要永久连接并密封(粘合)。
您可以使用 Archiso 创建自己的自定义 Live CD,其中必须包含以下功能:
- 健康监测工具,例如 smartmontools,用于显示错误和有关目标存储设备损坏时该怎么做的说明。
- 使用 fsarchiver 等工具从备份映像恢复整个存储设备,以防主分区损坏,或将其作为一种选项。
- 从互联网检索更新(如果可用)。
- 使用最新的“ISO”安装更新(如果可用)。
附加 ISO 可以在预定义的用户数量更新后,或由用户手动创建到单独的分区上。
首次登录时,用户必须有机会选择一个云服务器,其中存储了所有已安装应用程序和已更新配置文件的列表。
在 PC 上,恢复介质可以存储在盒子内,通过适配器连接到 USB 卡。笔记本电脑缺少存储额外存储设备的能力,这些设备可用于修复目的,但有些笔记本电脑可以放置额外的存储设备,例如 Secure Digital (SD) 卡,这些卡只能存储初始的“工厂”ISO,还可以选择性地存储内部存储设备的备份映像。
虚拟化
创建 Linux 的最小安装,其中一个用户将自动登录,并启动预配置的虚拟机的 .xinitrc,该虚拟机具有计划的快照,甚至可以存储在远程存储上。
每次启动时恢复所需部分
通过创建可引导的 ISO 映像或 SquashFS,并使用 GRUB 启动。这些可以预先配置,甚至包含最少的必要应用程序、X 服务器或 Wayland 和用户。启动后,您可以自动挂载到 /usr/、/home/ 或物理存储或文件中的其他自定义文件夹的路径。这有助于保护引导和内核设置免受可能的损坏。用户将能够更新程序,如果分区/文件挂载到 /var/lib/pacman/ 并具有写入权限。