我的笔记本电脑上最近对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删除-91 sudo apt remove linux-image-4.4.0-91-generic
需要我删除linux-generic和linux-headers-generic。看来不好,所以我没有尝试过。
我可以找到各种有关一般问题的问题,但是似乎没有一个问题可以解决我的所有目标,而且大多数问题都已过时,以至于我认为它们不再适用。
最好的方法是什么?
附录:标记为“ 如何防止更新特定程序包?”的重复项 。该答案可能会解决我的部分问题,但并不能解决更大的问题。
广义上讲,问题在于内核以不寻常的方式处理。它是通过linux-generic安装的,它仅依赖于linux-image-generic和linux-image-header。这些反过来仅依赖于linux-linux-image-VERSION-generic和headers-VERSION-generic,值得注意的软件包会将版本号烘烤到软件包名称中(大概是为了简化并行安装多个软件包)。
该答案中未具体解决的是:
- 不解决如何删除-89和-91。
- 即使我安装了更高版本的更新,也无法解决如何将-57设置为Grub的默认值。
- 即使我安装了以后的更新,也无法解决如何确保-57保持安装状态的问题。即使答案是保存一个或多个程序包,鉴于涉及的多个程序包,我仍要保存哪些程序包?如果要保留linux-generic,我该如何先降级?