网站搜索

如何删除 CentOS、RHEL 和 Fedora 中旧的未使用的内核


在本文中,我们将展示如何删除 RHEL/CentOS/Fedora 系统上旧的/未使用的内核映像。但是,在删除旧内核之前,保持内核最新非常重要;安装最新版本,以便利用新的内核功能并保护您的系统免受旧版本中发现的漏洞的影响。

要在 RHEL/CentOS/Fedora 系统中安装或升级到最新内核版本,请阅读本指南:

  1. 如何在 CentOS 7 中安装或升级到最新内核版本

注意:相反,建议保留至少一两个旧内核,以备更新出现问题时使用。

要显示系统上运行的 Linux(内核)的当前版本,请运行此命令。

uname -sr

Linux 3.10.0-327.10.1.el7.x86_64

列出系统上所有已安装的内核

您可以像这样列出系统上安装的所有内核映像。

rpm -q kernel

kernel-3.10.0-229.el7.x86_64
kernel-3.10.0-229.14.1.el7.x86_64
kernel-3.10.0-327.3.1.el7.x86_64
kernel-3.10.0-327.10.1.el7.x86_64

在 CentOS/RHEL 上删除旧的/未使用的内核

您需要安装 yum-utils,它是与 yum 集成的各种实用程序,通过将其原始功能扩展为多种不同的方式,使其更强大且更易于使用方法。

yum install yum-utils

这些实用程序之一是package-cleanup,您可以使用它来删除旧内核,如下所示,计数标志用于指定要在系统上保留的内核数量。

package-cleanup --oldkernels --count=2
Loaded plugins: fastestmirror, langpacks, product-id, versionlock
--> Running transaction check
---> Package kernel.x86_64 0:3.10.0-229.el7 will be erased
---> Package kernel.x86_64 0:3.10.0-229.14.1.el7 will be erased
---> Package kernel-devel.x86_64 0:3.10.0-229.1.2.el7 will be erased
---> Package kernel-devel.x86_64 0:3.10.0-229.14.1.el7 will be erased
--> Finished Dependency Resolution

Dependencies Resolved

===============================================================================================================================================================================================
 Package                                       Arch                                    Version                                                Repository                                  Size
===============================================================================================================================================================================================
Removing:
 kernel                                        x86_64                                  3.10.0-229.el7                                         @anaconda                                  131 M
 kernel                                        x86_64                                  3.10.0-229.14.1.el7                                    @updates                                   131 M
 kernel-devel                                  x86_64                                  3.10.0-229.1.2.el7                                     @updates                                    32 M
 kernel-devel                                  x86_64                                  3.10.0-229.14.1.el7                                    @updates                                    32 M

Transaction Summary
===============================================================================================================================================================================================
Remove  4 Packages

Installed size: 326 M
Is this ok [y/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Erasing    : kernel-devel.x86_64                            1/4 
  Erasing    : kernel.x86_64                                  2/4 
  Erasing    : kernel-devel.x86_64                            3/4 
  Erasing    : kernel.x86_64                                  4/4 
Loading mirror speeds from cached hostfile
 * base: centos.mirror.snu.edu.in
 * epel: repo.ugm.ac.id
 * extras: centos.mirror.snu.edu.in
 * rpmforge: kartolo.sby.datautama.net.id
 * updates: centos.mirror.snu.edu.in
  Verifying  : kernel-3.10.0-229.el7.x86_64                   1/4 
  Verifying  : kernel-devel-3.10.0-229.14.1.el7.x86_64        2/4 
  Verifying  : kernel-3.10.0-229.14.1.el7.x86_64              3/4 
  Verifying  : kernel-devel-3.10.0-229.1.2.el7.x86_64         4/4 

Removed:
  kernel.x86_64 0:3.10.0-229.el7           kernel.x86_64 0:3.10.0-229.14.1.el7           kernel-devel.x86_64 0:3.10.0-229.1.2.el7           kernel-devel.x86_64 0:3.10.0-229.14.1.el7          

Complete!

重要:运行上述命令后,它将删除所有旧的/未使用的内核,并保留当前正在运行的和旧的最新内核作为备份。

删除 Fedora 上旧的/未使用的内核

Fedora 现在使用 dnf 包管理器,这是 yum 包管理器的新版本,因此您需要使用下面的命令来删除 Fedora 上的旧内核。

dnf remove $(dnf repoquery --installonly --latest-limit 2 -q) 

自动删除旧内核的另一种方法是在 yum.conf 文件中设置内核限制,如下所示。

installonly_limit=2		#set kernel count

保存并关闭文件。下次运行更新时,系统上将只剩下两个内核。

您可能还想阅读以下有关 Linux 内核的相关文章。

  1. 如何在 Linux 中加载和卸载内核模块
  2. 如何在 Ubuntu 中将内核升级到最新版本
  3. 如何以持久和非持久方式更改内核运行时参数

在本文中,我们描述了如何删除 RHEL/CentOS/Fedora 系统上旧的/未使用的内核映像。您可以通过下面的反馈分享任何想法。