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

linuxoperating systemopen source

简介

安装新内核时,旧内核不会自动删除。经过几次更新后,您的系统可能会积聚大量未使用的内核,占用宝贵的磁盘空间。

这可能会导致系统运行速度变慢,更糟糕的是,它会导致重要的系统服务无法正常启动。在最坏的情况下,您的系统甚至可能根本无法启动。

删除旧的未使用内核可以释放磁盘空间并确保系统平稳运行。它还可以降低不再更新的旧版本内核中可能存在的安全漏洞风险。

检查当前内核版本

使用"uname"命令检查当前内核版本

在 CentOS、RHEL 和 Fedora 中,检查当前内核版本的最直接方法之一是使用"uname"命令。只需打开终端并输入"uname -r"即可。

输出将显示当前正在运行的内核的确切版本。例如,如果您使用的是 CentOS 7,并且运行了"uname -r",则屏幕应显示类似以下内容:-

3.10.0-1160.el7.x86_64

第一部分"3.10.0"是指此内核系列的主版本号,而"-1160.el7.x86_64"是部署在 CentOS 7 中的此系列特定版本的唯一标识符。

输出解释

如果您不熟悉"uname -r"的某些元素,那么解释它的输出可能会很困难。短划线 (-) 之前的第一组数字(例如 3.10.0)代表三个不同的数字,中间用点分隔 -

  • 主版本号:表示会从根本上影响所有设备或计算机架构兼容性的更改。

  • 次版本号:表示不会影响系统间兼容性的功能或性能改进。

  • 补丁级别号:表示不会影响功能或性能的错误修复和其他次要更改。

短划线后的文本表示有关此特定 Linux 发行版内核版本的附加信息,例如其构建时间、所属发行版、架构信息等。了解如何解释"uname -r"输出至关重要,因为它决定了您需要哪些命令和技术来有效地管理系统上的内核。

列出已安装的内核

在 CentOS、RHEL 和 Fedora 中删除旧的未使用内核的第一步是列出所有已安装的内核。这可以使用 RPM 包管理器来完成。

RPM 是一个强大的系统软件包和软件管理工具,它也可以用于列出所有已安装的内核。为此,请打开终端窗口或通过 SSH 登录您的服务器。

登录后,输入以下命令 -

rpm -qa kernel

这将显示系统上当前安装的所有内核的列表。每个内核版本都单独列出,并包含其他信息,例如发布日期、内部版本号和体系结构。

使用"rpm"命令列出已安装的内核

"rpm"命令是 CentOS、RHEL 和 Fedora 系统上管理软件包最常用的命令之一。默认情况下,rpm 仅显示系统上当前安装的软件包。要使用 rpm 查看系统上当前安装的 Linux 内核版本,可以使用"rpm"命令,并加上"-qa"参数,然后加上"kernel"。

这将产生类似于以下内容的输出:

kernel-4.18.0-305.el8.x86_64 
kernel-4.18.0-240.el8.x86_64 kernel-4.18.0-147.el8.x86_64 ...  

每一行代表在某个时间点安装到您系统上的一个内核包(包括较旧且未使用的包)。提供的信息包括其版本号(例如"4.18")及其发行版号(例如"-305.el8")、平台架构(例如 x86_64)以及其他取决于其构建方式的详细信息。

输出解读

当您执行 ```rpm -qa kernel``` 命令时,输出乍一看可能有点令人困惑。但是,一旦您理解了输出的每个部分的含义,就会变得更容易理解。

首先,每一行列出了您系统上已安装的特定内核包及其版本号。其次,版本号(例如"-305.el8")指示安装了该特定版本的哪个更新或补丁级别。

这是需要跟踪的重要信息,因为较新的更新通常包含重要的安全修复和错误补丁。架构(例如 x86_64)会告诉您内核是 32 位还是 64 位,以及它是为哪种 CPU 架构构建的。

了解如何阅读这些信息将有助于本文后面删除旧内核。记录当前安装的内核版本也是一个好习惯,这样在 Linux 系统日常维护中删除未使用的内核后,就可以跟踪可能出现的任何更改或问题。

删除旧内核

如何使用"yum"删除旧内核的说明

识别出旧的和未使用的内核后,下一步是使用"yum"删除它们。"yum"是基于 RPM 的 Linux 发行版(例如 CentOS、RHEL 和 Fedora)的软件包管理器。要使用 yum 删除旧内核,您应该首先打开终端窗口并输入 -

sudo yum remove kernel-version

其中"kernel-version"是您要删除的内核的版本号。例如,在 CentOS 系统上,"sudo yum remove kernel-4.18.0-305.el8.x86_64"将删除 4.18.0-305.el8.x86_64 版本。

命令语法和选项

使用 yum 删除旧内核的语法很简单 -

sudo yum remove kernel-version

但是,您可以向该命令添加其他选项来改进其功能。

一些常用选项包括:```--allowerasing```:允许将不必要的依赖项与软件包一起删除,而无需确认提示。

```--exclude=kernel*```:排除所有以"kernel"开头的软件包。 ```--skip-broken```:忽略任何会导致卸载错误的依赖项。

继续操作前的注意事项和警告

在继续删除旧的未使用内核之前,务必采取预防措施,以免破坏系统或丢失重要数据。首先,在从系统中删除任何软件之前,务必备份重要数据;这可确保您拥有所有关键文件的副本,以防卸载期间或卸载后出现问题。

其次,请确保在删除每个内核之前仔细检查其版本号,因为删除重要组件可能会导致某些应用程序出现故障甚至完全崩溃。如果您不确定要删除哪个内核,最好先不要删除它们,并在必要时寻求专业帮助。

CentOS、RHEL 和 Fedora 的示例

使用"yum"删除旧的未使用内核的过程在 CentOS、RHEL 和 Fedora 中是类似的。以下是如何在每个系统上删除旧内核的示例 -

CentOS -

sudo yum remove kernel-4.18.0-305.el8.x86_64

RHEL -

sudo yum remove kernel-4.18.0-305.el8.x86_64

Fedora -

sudo dnf remove kernel-5.6.6-300.fc32.x86_64

请注意,您的系统上的版本号会有所不同;执行任何命令前请务必仔细检查,以免造成意外后果。

结论

删除旧的、未使用的内核对于维护健康高效的系统至关重要。随着时间的推移,随着新内核版本的发布,旧版本会占用系统宝贵的空间,并在更新或安装新软件时导致问题。通过删除这些旧内核,您不仅可以释放宝贵的磁盘空间,还可以降低过时版本中可能存在的冲突或安全漏洞的风险。

此外,在系统中保留旧内核会给计算机资源带来压力,并降低计算机的性能。删除它们不仅可以减轻负载,还可以确保系统平稳高效地运行。


相关文章


有用资源