testing如果升级后出问题,通常怎么救?

full upgrade貌似就是彻底更新吧。我记得是这样。~~~

渲染时长取决于视频长度、素材数量和特效。

虽然已经是很久以前的帖子,还是记录一下相关经验,以方便其它网友。


首先推荐使用 timeshift 定期备份,备份频率取决于你的更新频率,如果遇到不确定的情况还可以手动创建一个新还原点。

如果系统无法正常启动,可以使用 grub 菜单运行救援模式,如果彻底无法启动,可以使用启动盘运行外部的 timeshift 进行还原。
需要注意的是, timeshift 设计上并不是用来备份用户数据的,它是用来备份系统的,因为该软件没有提供只还原特定文件的功能,如果备份了 /home 那还原时整个 /home 都会被覆盖。所以默认情况下它不会备份 /home。如果有备份 /home 的需求那应该使用其它软件。


至于可能遇到的软件包依赖问题,这些一般都能随着下一次更新自动修复。原因有些时候是维护者疏忽,也可能单纯维护者没有及时上传软件包。例如 bookworm 还在 testing 时,某版本 KDE Framework 更新后,部分组件(窗口装饰)没有同步更新,导致打开相关菜单出现段错误。这些问题一般都会在下次更新时解决。如果遇到依赖问题,不想强行更新,也许可以等几天再说。

还有一个重要的工具可能是 apt-mark,主要用途是 hold 部分软件包,查看手动安装的软件包,在遇到依赖问题或者需要暂时手动回退版本时都是很有用的。

aptitude 也是个很有用的工具,它的策略和 apt 不一定完全一致,有些时候可以交叉用两个工具试试看能不能解决问题。除此之外,aptitude why 命令可以查看软件包为什么会被安装(仅供参考,需要详细依赖图可以使用 debtree --show-installed)。


最后一类问题是随着更新带来的上游软件自身的 bug。这种问题一般无解,要么去相关的 bug tracker 搜索一下,或者报告一下漏洞,要么只能自己修。不过各种漏洞追踪站点都是英文的,对于一般用户还是不太方便的。

如果你决心自己修,那取决于应用具体使用的框架, rr debuggervalgrind 可能会是你的好帮手。另外 debuginfod 也很有用,它可以让 gdb 自动下载符号文件,不过 debian 的打包方式导致没办法自动让符号和行号一一对应,需要用到的时候只能手工指定符号和源码路径。或者谁有更好的方法可以提一下。

系统无法启动的情况下,用liveUSB启动系统,再用timeshift还原,需要重新安装引导程序么?(grub什么的)
还是说,还原时会把引导程序也一并恢复?

假设你的系统在使用 UEFI,如果正确备份了 /boot ,引导程序是会被还原的。一般而言主板都能正确识别出来启动条目。

不过极端情况下,比如某些主板的固件在某些情况下无法正确识别被还原后的引导程序,或者就是需要重新写入 NVRAM,或者像我一样,不小心彻底毁掉了整个硬盘的分区表需要重新分区,那可能就需要:

  1. 从 liveUSB 启动系统,重新正确分区
  2. 使用 timeshift 还原数据
  3. (可能需要)修正 /etc/fstab

之后按照下面的指南,手工挂载 rootfs,然后 chroot,重新安装 grub 还是很简单的:

(如果只有一个根分区和一个 EFI 分区,只需要挂载根分区后把 EFI 分区挂载到 /boot/efi 即可。)

https://wiki.debian.org/GrubEFIReinstall

该指南也可以用于修复 NVRAM 中的启动条目。

至于btrfs,我不了解 btrfs 如何工作,无法提供 btrfs 的相关经验

1 个赞

明白了。