如何从以前的版本中删除内核

请参阅问题如何从先前版本中删除内核? 被标记为重复。 我再次问这个问题,因为问题是特殊情况,而不是在相关问题的答案中处理。 我使用安装媒体从15.10升级到16.04。 来自15.10的内核位于/ boot,但是包管理系统似乎在升级后没有意识到这一点。 相关的错误报告在这里 。 我不知道,如果发生这种情况,如果您选择升级软件更新程序。

如果dpkg不知道内核,你可以通过删除所有文件来手动删除它们(我这样做是为了删除本地编译的内核: 如何删除已编译的内核? )

首先检查使用uname -r运行的内核

不要删除运行核心

假设您要从系统中删除内核版本3.19.0-56

您可以使用发布字符串来查找其所有文件和目录。 locate -b -e 3.19.0-56将找到包含字符串3.19.0-56现有( -e )文件和目录,而不列出所有目录中的所有文件( -b

找到它们之后,您可以附加命令以使用xargs删除它们rm -r 。 让我们使用-p标志使xargs交互,这样我们就可以在命令执行之前看到目标并确认。 这是整个命令:

 locate -b -e 3.19.0-56 | xargs -p sudo rm -r 

然后键入y以在所显示的目标上真正执行rm -r

(这会引发一些错误,抱怨所有不是目录的东西都不存在,因为你试图用-r递归删除它,但它仍然有效,文件真的消失了 – 再次使用sudo updatedb && locate -b -e 3.19.0-56 ,什么也没找到)

最后,要清理启动菜单,请运行

 sudo update-grub