更新错误后如何降级内核(16.04)

Modified on: Sun, 10 Jun 2018 02:18:53 +0800

最近升级到Ubuntu 16.04内核(4.4.0-89和-91)在我的笔记本电脑上严重失败。令人高兴的是,我已经安装了之前的工作版本(4.4.0-57)。现在我已经让Grub配置为向我显示一个菜单,并且我在启动时手动选择-57,但这看起来很脆弱,很可能在未来的sudo apt upgrade上打破。

我想我想:

  • 删除-89和-91,因为它们对我没有任何好处。
  • 使-57成为Grub的默认值,以一种将通过升级持续存在的方式。
  • 确保-57保持安装,即使我安装了以后的内核升级
  • 能够轻松尝试以后的内核更新,但如果失败则还原为-57。我主要担心的是-57会自动删除。
  • 如果我发现稍后有效的更新,则返回撤消所有此操作的简单路径并返回到以下内核更新。

尝试删除-91 with sudo apt remove linux-image-4.4.0-91-generic要求我删除linux-generic和linux-headers-generic。这看起来很糟糕,所以我没试过。

我可以找到关于一般问题的各种问题,但似乎没有一个问题可以解决我的所有目标,而且大多数都已经足够大,以至于我认为它们不再适用了。

最好的方法是什么?

附录:这被标记为如何防止更新特定包?。这个答案可能会解决我的一部分问题,但不能解决更大的问题。

从广义上讲,问题是内核以不寻常的方式处理。它是通过linux-generic安装的,它只是对linux-image-generic和linux-image-headers的依赖。反过来,这只依赖于linux-linux-image-VERSION-generic和headers-VERSION-generic,这些软件包值得注意的是将版本号烘焙到软件包名称中(可能是为了便于多个并行安装)。

答案中没有提及的是:

  • 未说明如何删除-89和-91。
  • 不解决如何使-57成为Grub的默认设置,即使我安装了以后的更新。
  • 未解决如何确保-57保持安装,即使我安装以后的更新。即使答案是持有一个或多个包,考虑到涉及的几个包,我会持哪些?如果这是持有linux-generic的问题,我该如何降级呢?
作者:,Alan De Smet

最佳答案

通过

删除最新的内核

sudo apt remove linux-image-4.4.0-91-generic linux-headers-4.4.0-91-generic

这将卸载元软件包linux-genericlinux-image-genericlinux-headers-generic。内核永远不会升级。

要恢复它,您可以运行

sudo apt install linux-generic

这将安装最新的内核,内核将获得升级。

linux-generic是一个元包。它是空的,但取决于另外两个元软件包:linux-image-genericlinux-headers-generic

最后两个指向最新的内核映像和标题。

如果删除元软件包,则不会从Linux中删除任何内容,但内核映像和标头不会获得更新。您可以随时安装它们。他们将提取最新的“真正的”内核包。

所以解决方案是手动删除你不想要的内核包以及元包。

作者:,Pilot6

相关问答

添加新评论