我最近在Ubuntu 12.04中升级到了内核3.4。之后,计算机无法启动。因此,我使用了以前的内核来启动。其实我不想要3.4内核。那么,如何删除它并使用上一个呢?
我最近在Ubuntu 12.04中升级到了内核3.4。之后,计算机无法启动。因此,我使用了以前的内核来启动。其实我不想要3.4内核。那么,如何删除它并使用上一个呢?
Answers:
您是如何安装的?如果您只是抓住了许多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)。
卸载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