在Grub引导菜单中包含这些内核条目很烦人。
#1 楼
始终建议您保留2个最新版本的内核,但是要删除其他内核版本,我使用了以下命令:dpkg -l | fgrep linux-image-
切勿删除
uname -r
或linux-image-generic-lts-utopic
中显示的内核。 。评论
对删除linux-image-generic-lts-utopic感到担忧,目前它还没有出现任何问题,但也许不要删除它。
–约翰·格雷罗(John Guerreiro)
15年7月1日在10:35
那是获取最新更新的元软件包,没有它,您将不会收到新的内核补丁。
–路易斯·戈达德♦
15年7月1日在10:40
谢谢,编辑以反映这一点。如果有人删除了此软件包,那么sudo apt-get install linux-image-generic-lts-utopic linux-headers-generic-lts-utopic应该可以修复它
–约翰·格雷罗(John Guerreiro)
2015年7月1日在10:50
顺便说一句,代码的每一端只需要1`,而不是3。
–user3
15年7月2日在10:04
#2 楼
您可以使用这种单行自动清除所有旧内核(如果您刚刚更新了内核,请确保在重新启动计算机之前执行此操作):它的作用是卸载(sudo apt purge $( dpkg --list | grep -P -o "linux-(headers|image)-\d\S+" | grep -v $(uname -r | grep -P -o ".+\d") )
)已安装的软件包(apt purge
),这些软件包的名称与“ linux-headers- [number]”或“ linux-image- [number]”(dpkg --list
)相匹配,但(grep -P -o "linux-(headers|image)-\d\S+"
)与当前内核相对应版本(grep -v
)。来源:
CommandLineFu.com-原始灵感
问Ubuntu-使用apt的“清除”而不是“删除”)
询问Ubuntu-确保返回的条目可以安全地删除
堆栈溢出-在
uname -r | grep -P -o ".+\d"
(grep
中使用PCRE ,\d
等)并使用\S
选项超级用户-使用
-P
使-o
仅返回匹配的内容评论
linux-image-extra呢?谢谢。
–金权
2015年9月19日15:38
@JinKwon这些似乎不太常用,但是您可以将“ linux-(headers | image)-\ d \ S +”替换为“ linux-(headers | image(-extra)?)-\ d \ S +”,该命令也将包括它们。
–waldyrious
2015年9月19日在16:35
#3 楼
您只需运行sudo apt-get autoremove
即可“删除所有未使用的软件包”,其中包括较旧的内核。新内核有效!
更安全地保留John在其回答中指出的2个最新版本。
评论
不幸的是,autoremove默认情况下不会删除孤立的内核版本,其原因可能是它们可能无法使用,但可以通过包名将其传递,如下所示:help.ubuntu.com/community/Lubuntu/Documentation/ …
–路易斯·戈达德♦
15年7月8日在19:31
@LewisGoddard你是对的。我今天测试了它。我以为我过去曾经这样做过。所以我删除我的答案。可接受的答案效果很好
– davidak
2015年7月9日下午13:17
在32位系统上,我可以使用apt-get autoremove删除较旧的内核。我安装了3.16.0-43,安装了-41,并提出了自动删除38、39的建议。它还更新了grub配置。因此,也许也没有必要对上述答案中的任务进行手动操作。
– davidak
15年7月11日在17:24
#4 楼
要删除旧内核,您还可以使用synaptic
:安装突触:显示并随后
右键单击选定的旧内核,然后选择
linux-image
注意:屏幕截图只是我系统中的示例。我已经删除了旧内核。请根据您的系统选择旧内核。
#5 楼
删除旧内核:(建议引导至最新内核)
手动删除:
首先列出当前内核:
uname -r
示例输出:
3.19.0-28-generic
列出所有内核:
dpkg --list | grep linux-image
现在手动清除旧内核,(请确保不要清除当前内核)
例如:
sudo apt-get purge linux-image-3.16.0-34 linux-image-3.16.0-46 linux-image-3.16.0-48 linux-image-3.16.0-49
注意:通常删除旧内核内核使用
linux-image-x.x.x-x
将x替换为数字。自动:
-这里的输出不包括当前已加载/正在运行的内核。因此,请引导至最新内核。
sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print }' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")
参考此处
#6 楼
UKUU是用于管理内核的基于GUI的优秀工具 sudo apt-add-repository -y ppa:teejee2008/ppa
sudo apt update
sudo apt install ukuu
#7 楼
有一个更简单的方法:sudo apt install byobu
sudo purge-old-kernels
就这样,它将保留2个内核版本并删除所有其他内核版本
评论
为什么拜by应该怎么办?
– RolandiXor
17年8月31日在19:47
仅仅因为命令/脚本purge-old-kernels包含在byobu软件包中,并且byobu默认安装在Ubuntu服务器上
–Jiab77
17年9月1日在6:50
我发现运行sudo apt autoremove --purge还会删除较旧的内核,并在清理后仅保留一个或两个版本。
–Jiab77
18年5月11日在17:08
评论
这是askubuntu.com/questions/2793/…的副本。使用这些技术后,您可能需要运行:sudo rm -rf / lib / modules / <_ unused_kernels_modules_dirs_> ...