如何删除主线内核并移回支持的内核?


Answers:


8

您是如何安装的?如果您只是抓住了许多deb文件并安装了它们,那么摆脱它就像找到软件包并apt-get remove为每个软件包运行一样简单。

我刚喝了一杯咖啡,所以今天早上您可以尽情享用我的bashfu。这应该告诉您安装了哪些内核:

dpkg -l | awk '/linux-[^ ]+-[0-9]/ {print $2}'

仔细阅读这些内容,并记下您想要核对的版本。注意,还要注意您当前的安装(uname -a)或自引导以来已安装的任何新内核。您不想删除最新的。

无论如何,只要有了一个主意,就可以通过修改以下命令来批量删除它们:

sudo apt-get purge linux-{headers,image,image-extra}-3.5.0-{7,8,9}.*

花括号中的单词和数字将在运行时扩展,因此该包实际针对的包是:

linux-headers-3.5.0-7*
linux-headers-3.5.0-8*
linux-headers-3.5.0-9*
linux-image-3.5.0-7*
linux-image-3.5.0-8*
linux-image-3.5.0-9*
linux-image-extra-3.5.0-7*
linux-image-extra-3.5.0-8*
linux-image-extra-3.5.0-9*

您可以解决这个问题,但是要清理它,我发现它比通配符更安全(因为我目前使用的是3.5。*内核)。

无论哪种方式,在您说“是”之前,先阅读apt-get将会做什么。删除当前内核和所有内核是Ubuntu用户发现的一个令人惊讶的普遍困境。它不是不可修复的,但是,不要这样做!

使用通配符和apt-get时要格外小心。如果您不相信我运行apt-get -s remove linux-image-3.4*并查看它的选择(是的- 所有内核)。不必担心该命令处于“模拟模式”,因此它不会做任何事情(因此不需要root)。


将近四年后,您的警告仍然成立。我只是一个懒惰-远离...头疼的一天,那时我比平常更仔细地阅读确认信。多么亲密的电话!
裂痕王

您可以从中恢复过来,当您不期望它时,这只是底部的痛苦。
奥利(Oli)

7

卸载Mainline内核

主线内核具有其自己的ABI命名空间,因此它们与现有的Ubuntu内核并排安装(例如,每个内核都有一个单独的目录/lib/modules/VERSION)。这意味着您可以同时安装多个主线和Ubuntu备用内核,并从GRUB引导菜单中选择所需的内核。

如果仍然要卸载主线内核,请首先使用:

dpkg -l | grep "linux\-[a-z]*\-"

查找要卸载的内核软件包的确切名称,然后执行以下操作:

sudo apt-get remove KERNEL_PACKAGES_TO_REMOVE

请记住,几个软件包属于一个内核版本:通用标头,特定于体系结构的标头和特定于体系结构的映像。

来源: https : //wiki.ubuntu.com/Kernel/MainlineBuilds#Uninstalling_Mainline_Kernels

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.