Linux 内核更新错误导致包管理陷入停顿!

Linux 内核更新错误导致包管理陷入停顿!

我最近更新了我的系统 (Ubuntu Studio 22.10),并且有新的 Linux 内核可用。在 Ubuntu Studio 上,您可以收到通用内核和低延迟内核的更新,其中低延迟内核也是您启动的内核。

嗯,显然是出了什么问题,因为它无法安装更新的内核(两个都无法安装),现在我无法使用 apt 安装或更新任何软件包(幸运的是 snap 和 flatpak 仍然有效)。

我目前停留在内核低延迟 1009,但 1012 可用。

我见过一些与此类似的问题,但没有一个能给我提供解决方案。

既不工作Sudo apt-get install -f也不安装。sudo apt --fix-broken

我的系统似乎希望我删除它linux-image-5.19.0-23-generic,但任何删除该包的尝试都失败,并告诉我 dpkg 遇到了太多错误。

当我尝试通过 Synaptic 删除该包时,我得到的结果是:

E: linux-image-5.19.0-23-generic: installed linux-image-5.19.0-23-generic package post-removal script subprocess returned error exit status 1

值得注意的是,Ubuntu 的安装从 21.10 开始,并已升级到 22.04 和 22.10。我真的不想重新安装整个系统。所以请告诉我有办法解决这个问题。

如果需要的话我很乐意提供更多信息。

先感谢您!

编辑:这是输出apt -f install

Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED
  linux-image-5.19.0-23-generic
0 to upgrade, 0 to newly install, 1 to remove and 2 not to upgrade.
3 not fully installed or removed.
After this operation, 12.2 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 406974 files and directories currently installed.)
Removing linux-image-5.19.0-23-generic (5.19.0-23.24) ...
/etc/kernel/postrm.d/initramfs-tools:
update-initramfs: Deleting /boot/initrd.img-5.19.0-23-generic
/etc/kernel/postrm.d/zz-update-grub:
Sourcing file `/etc/default/grub'
Sourcing file `/etc/default/grub.d/init-select.cfg'
Generating grub configuration file ...
/etc/grub.d/bin/grubcfg_proxy: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 127
dpkg: error processing package linux-image-5.19.0-23-generic (--remove):
 installed linux-image-5.19.0-23-generic package post-removal script subprocess returned error exit status 1
dpkg: too many errors, stopping
Errors were encountered while processing:
 linux-image-5.19.0-23-generic
Processing was halted because there were too many errors.
E: Sub-process /usr/bin/dpkg returned an error code (1)

答案1

目前,除了安装 libcrypto.so.1.1(这是一个弃用的版本)之外,您无法做太多事情,例如

问题的根源是 grub 脚本 grub_proxy,它不是来自任何官方软件包。它一定是来自你自己的修改或来自某个 ppa。

请尝试:

apt-file find grubcfg_proxy

如果您有 apt-file,请识别该软件包并将其卸载。然后尝试寻找它的替代品。我猜您正在使用 grub-customizer。当您使用某些 ppa 更改启动过程然后使用 do-release-upgrade 时基本上是搬起石头砸自己的脚。因为 do-release-upgrade 会尝试屏蔽所有自定义存储库。但是,启动过程肯定依赖于那些被屏蔽的软件包才能运行。此外,系统上的旧软件包通常依赖于特定子版本的系统库。所以在大多数情况下,旧软件包根本不起作用。大多数用户没有注意到这一点,因为他们没有使用 boot-process-customizers。重新启动到新版本后,可以通过启用新发布版本的 ppa 来升级损坏的软件包,或者卸载并由替代软件包替换。

对我来说,版本升级从来都不起作用(超过 20 年的经验。每次看到它,我都会尝试版本升级方法,但从来都不起作用。)。我强烈建议您定期重新安装系统。您必须聪明地将您的 /home 放在不同的分区上,并且不要在安装过程中格式化或覆盖它。安装后,您可以尝试新系统,看看您是否喜欢它。然后进行修改/etc/fstab以重新安装您的 /home 分区。然后您可以查看您的 ~ 中是否有一些您必须修改的配置(通常只有一小部分需要更改/重新创建)。

您可以通过运行来检查 release-upgrade 造成了多少混乱aptitude search '?narrow(?installed, ~o)'。这会为您提供孤立包,通常是依赖关系中断的来源。

重新安装 ubuntu 仅需大约 10 分钟,因此如果您不进行深度定制,没有理由不这样做:(添加太多 ppa、更改太多启动配置、使用两次以上的更新替代方案)。如果您进行了大量定制,那么您不希望触及配置。但是,配置文件会更改格式,软件包会来来去去。因此,如果您不希望触及配置,最终您将无法升级:发布更新将破坏您的系统。这是我一开始就学到的惨痛教训,现在仍然如此。因此,我强烈建议您仅使用 ~/ 中的配置进行用户定制。如果您觉得您仍然触及了系统的太多部分并需要自动化,请仅触及 /etc 中的一小部分配置并使用一些 sysop 工具(如 ansible)来维护它。如果您不知道 ansible 是什么并且不想学习它。那么我建议您选择最适合您的开箱即用的发行版。不要调整系统以使其成为您自己的发行版,这是不可能的。你必须问自己,如果你讨厌大多数默认设置,为什么你还在使用这个发行版。

答案2

找到了一个简单的解决方案...

我的 grub 无法以低延迟启动,因为上次完整升级没有安装低延迟映像……

所以我尝试修复这个问题... 在恢复模式下重启机器人,并激活网络... 转到 root 命令行,然后运行 ​​apt 或 apt-get,更新并进行完整升级系统... 当前未安装任何映像文件... 再次重新启动,检查是否有任何低延迟来启动最新内核,如果没有... 重新启动最后一个可用的低延迟映像。 在我的情况下,它是 5.6.2-低延迟,并执行我现在正在执行的操作... 加载低延迟映像似乎是一个错误...

当系统安装 Ubuntu 5.15.0-60 更新时,会发生这种情况,它错过了低延迟图像和标题......

解决方案:::::

在恢复模式下加载最新的通用映像。 活动网络 进入 root 命令行 运行 apt-get 或 apt update 运行 apt install linux-image-(您的映像编号)-lowlatency 示例:apt-get install linux-image-5.15.0-60-lowlatency

然后安装标头 apt-get install linux-headers-5.15.0-60-lowlatency

重启

它将被修复...

感谢你们...

相关内容