如何删除 CentOS、RHEL 和 Fedora 中旧的未使用的内核?
介绍
当您安装新内核时,旧内核不会自动删除。经过几次更新后,您的系统可能会出现大量未使用的内核,从而占用宝贵的磁盘空间。
这可能会导致您的系统速度变慢,更糟糕的是,它可能会阻止重要的系统服务正常启动。在最坏的情况下,您的系统甚至可能根本无法启动。
删除旧的未使用的内核可以释放磁盘空间并确保系统平稳运行。它还降低了不再更新的旧版本内核中可能存在的安全漏洞的风险。
检查当前内核版本
使用“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”的某些元素,那么解释“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 内核,可以使用带有“-qa”标志的“rpm``”,后跟“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”是您要删除的内核的版本号。例如,“sudo yum remove kernel-4.18.0-305.el8.x86_64”将删除 CentOS 系统上的版本 4.18.0-305.el8.x86_64。
命令语法和选项
使用 yum 删除旧内核的语法很简单 -
sudo yum remove kernel-version
但是,可以将其他选项添加到命令中以完善其功能。
一些常见的选项包括: ```--allowerasing```:允许不必要的依赖项与包一起删除,而无需确认提示。
```--exclude=kernel*```:排除所有以“kernel”开头的包。 ```--skip-broken```:忽略任何会导致删除错误的依赖项。
继续操作前的注意事项和警告
在继续删除旧的未使用的内核之前,采取预防措施以避免破坏系统或丢失重要数据至关重要。首先,在从系统中删除任何软件之前,请务必备份重要数据;这可以确保您拥有所有关键文件的副本,以防卸载期间或卸载后出现问题。
其次,确保在删除每个内核之前仔细检查其版本号,因为删除重要组件可能会导致某些应用程序出现故障甚至完全崩溃。如果您不确定要删除哪个内核,最好不要理会它们,并在必要时寻求专业帮助。
CentOS、RHEL 和 Fedora 的示例
在 CentOS、RHEL 和 Fedora 中,使用“yum”删除旧的未使用内核的过程类似。以下是如何删除每个系统上旧内核的示例 -
CentOS -
sudo yum remove kernel-4.18.0-305.el8.x86_64
RHEL -
sudo yum remove kernel-4.18.0-305.el8.x86_64
软呢帽 -
sudo dnf remove kernel-5.6.6-300.fc32.x86_64
请注意,您的系统上的版本号会有所不同;确保在继续执行任何命令之前仔细检查,以避免出现意外后果。
结论
删除旧的未使用的内核对于维护健康高效的系统至关重要。随着时间的推移,随着新内核版本的发布,旧版本可能会占用系统上的宝贵空间,并在更新或安装新软件时引起问题。通过删除这些旧内核,您不仅可以释放宝贵的磁盘空间,还可以降低过时版本中可能存在的冲突或安全漏洞的风险。
此外,在系统上保留旧内核可能会给计算机资源带来压力并降低计算机的性能。删除它们不仅可以减轻负载,还可以确保您的系统平稳高效地运行。