我一直在运行 Ubuntu 21.10 版本,当然,这个版本现在已经停产一段时间了。今天我终于尝试将其升级到 22.04.1,方法是在不时弹出的小对话框中选择“升级”,提醒我 21.10 已经停产。
(现在看来,也许我不应该这么做——我应该遵循https://help.ubuntu.com/community/EOLUpgrades/和如何安装软件或从旧的不受支持的版本升级?... 但事情已经发生了,现在的问题是如何最好地从损害中恢复过来。无论如何,这些看起来都很旧了,我不确定即使我知道它们的存在,我是否应该信任它们,而不是因为 Ubuntu 自己的升级机制邀请我点击它的按钮。)
(当我承认错误时:是的,我确实应该早点升级。再说一遍,木已成舟,我正在寻求建议,看看接下来该怎么做。)
一切显然都相当顺利(例外:Firefox snap 升级似乎出了点问题),直到(我认为)“安装”步骤结束,此时我很高兴地看到一个窗口显示:
Could not install the upgrades
The upgrade has aborted. Your system may be in an unusable state. A recovery will run now (dpg --configure -a).
在升级终端(即点击“终端”后显示的内容)中,最后看到的是三次重复的
libdvd-pkg: Checking orig.tar integrity...
/usr/src/libdvd-pkg/libdvdcss_1.4.3.orig.tar.bz2: OK
libdvd-pkg: `apt-get check` failed, you may have broken packages. Aborting ...
ZSys is adding automatic system snapshot to GRUB menu.
点击后...呃,麻烦了,我的笔记没有说明相关按钮是什么,但此时唯一可行的事情似乎确实是......还有一条消息:
The upgrade has completed but there were errors during the upgrade process.
系统仍在运行,至少有些功能似乎运行正常。我不太愿意过多地关注它,因为运行部分升级的软件似乎会引起麻烦。
从表面上看,机器似乎认为它现在正在运行 22.04.1。例如,的内容/etc/lsb-release
似乎与此一致,但在整个过程中,它从未重新启动过,也没有重新启动我的窗口管理器,也没有进行任何类似的破坏性操作,因此我很确定 22.04 使用与 21.10 不同的 Linux 内核版本(5.15 对 5.13)和不同版本的 GNOME(42 对 40),我认为我目前无法运行使用完全更新的 22.04.1 系统时会运行的所有内容。
(在 中/boot
,有一个 5.15 内核文件,并且vmlinuz
是它的符号链接。因此,适用于 22.04.1 的内核肯定是那里。同样,GNOME 二进制文件看起来好像/usr/bin
是版本 42.4。)
这一切都相当令人沮丧。目前来看:
- 下一步我应该做什么?
进一步来说:
- 我是否应该采取进一步措施来完成或回滚升级尝试?例如,我知道有这样一种做法,
apt --fix-broken install
显然可以尝试修复有些事情,但我不知道它是否是针对这种情况设计的。 - 如果我重启机器,会不会损坏某些东西?或者会不会恢复目前可能损坏的东西?
- 我可以做一些有用的事情来更深入地了解出了什么问题以及如何(如果可能的话)解决它们?
- 我可以做些什么来更深入地了解机器当前处于什么状态?例如,当进程无错误地完成时,是否有一些东西应该升级,但还没有升级?
user535733 提出了查看日志的极好建议。在我看来,相关日志似乎在 中/var/log/dist-upgrade
,其中唯一显示明显问题迹象的文件是main.log
。其中有三件事看起来很可疑。
- 在开始的时候,显然有人试图做
apt update
类似的事情,但由于 21.10 已停产且更新服务器不可用,因此失败了。(我的猜测:这可能是良性的。) - 接近尾声时,出现了几个错误,抱怨升级 Firefox 遇到了麻烦。(我的猜测:这可能是良性的;我需要重新安装 Firefox snap,仅此而已。)
- 这导致所谓的
installArchives
失败。我很确定那只是因为该操作包括升级 Firefox。再次,我预计这是良性的。
- 这导致所谓的
- 文件中几乎最后一项是尝试运行
./xorg_fix_proprietary.py
,但由于没有这样的文件,因此失败。- 谷歌搜索后发现,过去人们在使用各种不同的 Ubuntu 版本时都遇到过类似的问题。我有点担心,这可能表明之前原本打算将该文件放到位的某些操作没有完成。不过,原则上似乎可以通过重新安装相关软件包来修复。
答案1
首先,总结一下我在评论中得到的建议:
- 从 Ubuntu 的 EOLed 版本升级确实完全不受支持,并且没有人特别尝试让它们不中断。
- 进行发布升级几乎是出现问题的最糟糕时机:一切都很脆弱,您很容易最终得到一个无法运行且无法修复的系统。
- 对于像我这样的例子,没有太多的帮助:例如,没有一个好的方法可以准确地找出哪些事情已经完成,哪些事情(如果有的话)还没有完成。
- (或者有,但评论中给我建议的人认为,任何需要首先提出这种问题的人都无法做到这一点。)
- 最不糟糕的选择是
- 采取适当的措施,以便如果一切都爆炸了,您可以从备份中将其恢复而不会造成太大的痛苦,然后......
- 做最后的准备
apt upgrade
,然后…… - 重新启动,然后...
- 希望它有效。
所以这就是我所做的(好吧,首先我删除了apt removed
几个每次执行apt
操作时都会被抱怨的软件包)。看来我赢了这场升级失败的彩票:系统成功启动,看起来运行正常。