从 22.10 升级到 23.04 时,我遇到了这个错误6.2.0-20
由于最新的内核尚未正确安装,导致系统无法启动。
我使用 GRUB 启动菜单来定义一个较旧的内核(显然,5.19.0-41
是最新内核“后面”唯一可用的内核6.2.0-20
),所以现在我在这个较旧的内核上运行。
为了清理我的系统,我尝试了新的和损坏的内核的apt remove linux-headers-6.2.0-20
所有其他6.2.0-20
相关标头,但这是不可能的,因为非特定linux-headers-generic
依赖于那些包。
因此,我还删除了它,linux-headers-generic
并计划在删除有问题的标题后重新安装它。我手动清除了所有这些新标题,直到列表几乎为空(我留下了,linux-libc-dev:amd64
因为这似乎不会造成问题):
$ sudo dpkg -l | grep "6.2.0-20"
pi linux-headers-6.2.0-20 6.2.0-20.20 all Header files related to Linux kernel version 6.2.0
rc linux-image-6.2.0-20-generic 6.2.0-20.20 amd64 Signed kernel image generic
ii linux-libc-dev:amd64 6.2.0-20.20 amd64 Linux Kernel Headers for development
rc linux-modules-6.2.0-20-generic 6.2.0-20.20 amd64 Linux kernel extra modules for version 6.2.0 on 64 bit x86 SMP
rc linux-modules-extra-6.2.0-20-generic 6.2.0-20.20 amd64 Linux kernel extra modules for version 6.2.0 on 64 bit x86 SMP
但是现在,apt install linux-headers-generic
它仍将尝试安装最新的标题:
$ sudo apt install linux-headers-generic
Die folgenden zusätzlichen Pakete werden installiert:
linux-headers-6.2.0-20 linux-headers-6.2.0-20-generic
现在我想知道,系统如何确定在安装常规时将安装较新的内核linux-headers-generic
,我是否可以以某种方式将其重置为较旧的内核?
答案1
5.19.0-41
是 Ubuntu 22.10 内核。它不在 23.04 的存储库中,因此您无法找到它apt
。它可能在您升级之前就存在于您的系统中。
linux-headers-generic
是一个元包,它始终指向最新的一组标题。
你可以精确地指定要安装的标头,apt install linux-headers-6.2.0-20-generic
例如,元包指向哪个标头(请参阅变更日志)
但是您将无法做到apt install
这一点linux-headers-5.19.0-41-generic
,因为如上所述,它不在 23.04 仓库中。
由于您在 23.04 上运行 5.19,因此您可以手动获取 deb:
- 从这里开始:https://launchpad.net/ubuntu/+source/linux/5.19.0-40.41
- 单击该
amd64
链接可转到:这一页 - 然后向下滚动以获取:linux-headers-5.19.0-40-generic_5.19.0-40.41_amd64.deb和linux-headers-5.19.0-40_5.19.0-40.41_all.deb
- 将这两个 deb 放在一个文件夹中,然后使用:
sudo apt install ./*.deb
,然后就完成了。
答案2
事实上,你不想要安装 linux-headers-generic,因为该包依赖于其他会给您带来问题的包。
有两种方法可以解决这个问题:
找到适合您的最新版本的 linux-headers-generic,然后安装它。然后,暂停该软件包,这样它就不会自动升级。然后,一旦最新的标头包含对漏洞您提到,解除保留并升级到最新版本。
这种策略需要做很多工作,因为你必须寻找一个可用的版本,测试并确保它能正常工作,然后清理每个不能正常工作的版本。最后,如果你当前的 Ubuntu 版本没有最新的可用版本,那么添加软件包就是额外的工作,因为popey 的回答密友。
保持系统原样,处于工作状态。在错误修复之前不要做任何更改,修复后,您将能够以与安装其他软件完全相同的正常方式安装最新版本的 linux-headers-generic。
如果这个策略对你不起作用,那为什么不行呢?安装这个包为什么如此重要?