在UBUNTU上删除旧的内核
在使用Ubuntu Linux系统时,经常发现在升级Linux内核之后,旧版本的内核包依旧保留在系统中,占据了一定的磁盘空间。系统并不会自动删除掉旧版本的内核,是因为保证在使用新内核无法启动时,还可以选择使用旧版本的内核来启动系统。因此在使用新版本内核启动成功之后,我们需要手动来删除掉一些旧版本的内核包,以释放一定的磁盘空间。那我们如何安全的删除旧版本的内核呢?
删除旧的内核映像
以下是在Ubunut上安全删除旧的Linux内核映像步骤,你不必须以root
用户执行命令,或者使用sudo
.
步骤一 - 启动到新的内核
首先启动到新安装的内核版本,可以使用如下的命令来验证当前内核版本:
> uname -mrs
> uname -a
输出样例如下:
Linux 4.4.0-117-generic x86_64
使用以下命令显示当前系统中已经安装的所有Linux内核映像:
# dpkg --list | egrep -i --color 'linux-image|linux-headers'
输出可能如下:
ii linux-headers-4.15.0-45 4.15.0-45.48 all Header files related to Linux kernel version 4.15.0
ii linux-headers-4.15.0-45-generic 4.15.0-45.48 amd64 Linux kernel headers for version 4.15.0 on 64 bit x86 SMP
ii linux-headers-generic 4.15.0.45.47 amd64 Generic Linux kernel headers
ii linux-image-4.15.0-45-generic 4.15.0-45.48 amd64 Signed kernel image generic
ii linux-image-generic 4.15.0.45.47 amd64 Generic Linux kernel image
rc linux-headers-4.15.0-22 4.15.0-22.24 all Header files related to Linux kernel version 4.15.0
rc linux-headers-4.15.0-22-generic 4.15.0-22.24 amd64 Linux kernel headers for version 4.15.0 on 64 bit x86 SMP
rc linux-headers-generic 4.15.0.22.23 amd64 Generic Linux kernel headers
rc linux-image-4.15.0-22-generic 4.15.0-22.24 amd64 Signed kernel image generic
rc linux-image-generic 4.15.0.22.23 amd64 Generic Linux kernel image
步骤二 - 删除不想要或者不使用的内核映像
然后可以使用如下命令一个一个地删除掉旧的内核包:
# apt-get --purge remove linux-image-4.15.0-22-generic
或者
$ sudo apt-get --purge remove linux-image-4.15.0-22-generic
对于较新的Ubunu发行版的提示
在较新的系统上,所有过期的内核和相关头文件包会自动标记为不再使用的状态,因此可以使用以下一条命令直接清除:
$ sudo apt --purge autoremove
直接使用一个脚本来删除
可以考虑使用如下的一个功夫脚本来清除旧的内核包:
#!/usr/bin/env bash
v="$(uname -r | awk -F '-virtual' '{ print $1}')"
i="linux-headers-virtual|linux-image-virtual|linux-headers-${v}|linux-image-$(uname -r)"
apt-get --purge remove $(dpkg --list | egrep -i 'linux-image|linux-headers' | awk '/ii/{ print $2}' | egrep -v "$i")