Debian/Ubuntu Linux如何删除旧内核镜像

时间:2019-11-20 08:53:09  来源:igfitidea点击:

Ubuntu为什么不自动删除旧内核?
如何删除Ubuntu中旧的内核镜像?
如何在Ubuntu Linux上安全删除未使用的旧内核镜像?
如何删除Ubuntu或Debian Linux上未使用的旧内核镜像,以释放磁盘空间?

删除旧内核镜像

对于Debian或Ubuntu Linux系统,该过程如下:

引导到新内核

首先,启动进入新安装的内核。

查看正在使用的内核信息:

$ uname -mrs
$ uname -a

列出系统中安装的所有Linux内核镜像

# dpkg --list | egrep -i --color 'linux-image|linux-headers'

删除不需要的和未使用的内核镜像

使用以下apt-get命令或apt命令删除内核镜像:

# apt-get --purge remove linux-image-3.13.0-67-generic

或者

$ sudo apt-get --purge remove linux-image-3.13.0-67-generic

它们删除软件包,所有配置文件也将被删除。

关于Ubuntu和Debian新系统说明

在较新的系统上,所有过时的内核和标头应该都已经自动标记为不再需要,
因此可以使用以下单个命令清除:

$ sudo apt --purge autoremove

或者

$ sudo apt-get --purge autoremove

请注意,autoremove用于删除
那些当时为满足其他软件包的依赖性而自动安装的,但现在不再需要的软件包。
这个命令也可能会删除其余不需要的软件包。

如何查看Ubuntu和Debian Linux中的软件包状态

使用dpkg --list

# dpkg --list | grep linux-image

输出示例:

rc  linux-image-3.13.0-67-generic        3.13.0-67.110                         amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-3.13.0-68-generic        3.13.0-68.111                         amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP

在dpkg列表中,rc,ii表示什么意思?

第一列表示软件包标志,如rc,ii。

  • rc:表示软件包处于删除/卸载状态,仅配置文件存在。
  • ii:表示软件包处于安装状态,并且已100%安装在系统上。

可以使用以下命令删除所有处于rc状态的linux-image软件包:

# x=$(dpkg --list | grep -i linux-image | grep ^rc| awk '{ print }')
# echo "$x"
# apt-get --purge remove $x

使用脚本删除所有旧内核

脚本如下:

# 查看当前内核版本
v="$(uname -r | awk -F '-virtual' '{ print }')"
 
# 创建要删除的列表,排除正在运行的内核
i="linux-headers-virtual|linux-image-virtual|linux-headers-${v}|linux-image-$(uname -r)"
 
# 显示要删除的列表
echo dpkg --list | egrep -i  'linux-image|linux-headers' | awk '/ii/{ print }' | egrep -v "$i"

要删除这些旧内核,改写脚本如下:

v="$(uname -r | awk -F '-virtual' '{ print }')"
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 }' | egrep -v "$i")