Debian/Ubuntu Linux删除旧内核镜像命令
时间:2020-01-09 10:38:00 来源:igfitidea点击:
我的Ubuntu Linux系统仍然存在旧内核。
Ubuntu为什么不自动删除旧内核?
如何删除旧的未使用的内核镜像以释放磁盘空间。
如何在Ubuntu Linux上安全删除未使用的旧内核镜像?
您需要手动从系统中删除旧内核。
基于Ubuntu和Debian的系统会保留旧的内核镜像,以便在较新的内核失败时可以引导系统。
清除和删除旧内核的最安全方法如下。
本教程介绍如何删除Ubuntu或Debian Linux上未使用的旧内核镜像,以释放磁盘空间以及linux-image软件包的各种状态。
删除旧内核镜像
对于Debian或Ubuntu Linux系统,该过程如下。
您必须以root用户身份登录。
步骤1引导到新内核
首先,启动进入新安装的内核。
使用以下命令对此进行验证:
$ uname -mrs $ uname -a
输出示例:
Linux server1 3.13.0-68-generic #111-Ubuntu SMP Fri Nov 6 18:17:06 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
要列出所有已安装的Linux内核镜像,请执行以下dpkg命令:
# dpkg --list | egrep -i --color 'linux-image|linux-headers'
检查系统上安装了哪些内核镜像
步骤2删除不需要的和未使用的内核镜像
您可以使用以下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
输出示例:
Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: linux-headers-3.2.0-93* linux-headers-3.2.0-93-virtual* 0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded. After this operation, 67.8 MB disk space will be freed. Do you want to continue [Y/n]? y (Reading database ... 227543 files and directories currently installed.) Removing linux-headers-3.2.0-93-virtual ... Removing linux-headers-3.2.0-93 ...
请注意,autoremove用于删除为满足其他软件包的依赖性而自动安装的软件包,现在不再需要。
这也可能会删除其余不需要的软件包。
了解Ubuntu和Debian Linux中的软件包状态
考虑以下示例:
# dpkg --list | grep linux-image
输出示例:
`rc` linux-image-3.13.0-62-generic 3.13.0-62.102 amd64 Linux kernel image for version 3.13.0 on 64 bit x86 SMP `rc` linux-image-3.13.0-63-generic 3.13.0-63.103 amd64 Linux kernel image for version 3.13.0 on 64 bit x86 SMP `ii` linux-image-extra-3.13.0-68-generic 3.13.0-68.111 amd64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP ii linux-image-generic 3.13.0.68.74 amd64 Generic Linux kernel image
第一列表示软件包标志,如rc,ii。
那么,像ii rc这样的各种dpkg标志是什么意思呢?
- rc:表示软件包处于删除/卸载状态,仅配置文件存在。
ii
:表示软件包处于安装状态,并且已100%安装在系统上。
您可以使用以下命令删除所有处于rc状态的linux-image软件包:
# x=$(dpkg --list | grep -i linux-image | grep ^rc| awk '{ print }') # echo "$x" # apt-get --purge remove $x
再次执行以下命令以查看结果:
# dpkg --list | egrep -i --color 'linux-image|linux-headers'
输出示例:
ii linux-headers-3.13.0-68 3.13.0-68.111 all Header files related to Linux kernel version 3.13.0 ii linux-headers-3.13.0-68-generic 3.13.0-68.111 amd64 Linux kernel headers for version 3.13.0 on 64 bit x86 SMP ii linux-headers-generic 3.13.0.68.74 amd64 Generic Linux kernel headers 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 ii linux-image-extra-3.13.0-68-generic 3.13.0-68.111 amd64 Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP ii linux-image-generic 3.13.0.68.74 amd64 Generic Linux kernel image
轻松删除所有旧内核
考虑以下bash功夫:
# Get kernel version # v="$(uname -r | awk -F '-virtual' '{ print }')" # Create ignore list to avoid deleting the running kernel # i="linux-headers-virtual|linux-image-virtual|linux-headers-${v}|linux-image-$(uname -r)" # Display the list # echo dpkg --list | egrep -i 'linux-image|linux-headers' | awk '/ii/{ print }' | egrep -v "$i"
输出示例:
linux-headers-3.2.0-31 linux-headers-3.2.0-31-virtual linux-headers-3.2.0-52 linux-headers-3.2.0-52-virtual linux-image-3.2.0-93-virtual linux-image-3.2.0-94-virtual
要删除它,只需按如下所示运行它:
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")
输出示例:
Reading package lists... Done (Reading database ... 206225 files and directories currently installed.) Removing linux-headers-3.2.0-31-virtual ... Removing linux-headers-3.2.0-31 ... Removing linux-headers-3.2.0-52-virtual ... Removing linux-headers-3.2.0-52 ... Removing linux-headers-3.2.0-60-virtual ... Removing linux-headers-3.2.0-60 ... .... .. ... Purging configuration files for linux-image-3.2.0-94-virtual ... Examining /etc/kernel/postrm.d . run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-94-virtual /boot/vmlinuz-3.2.0-94-virtual run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-94-virtual /boot/vmlinuz-3.2.0-94-virtual