如何在CentOS 8上安装Linux Kernel 5.x
CentOS 8操作附带一个定制内核,以确保其完整性和与支持的硬件的兼容性。 CentOS 8 Linux中附带的内核版本为4.18. Linux内核包括基本内核本身和许多内核模块。
Linux内核是Linux操作系统(OS)的主要组件,并且是计算机硬件及其进程之间的核心接口。它具有以下主要功能:
流程管理:确定哪些流程可以使用中央处理器(CPU),何时使用以及持续多长时间- 内存管理:跟踪多少内存用于存储什么以及其中存储- 设备驱动程序:充当硬件和进程之间的中介器/解释器- 系统调用和安全性:接收来自流程的服务请求
如果我们是新手,并且想安装最新版本的Linux内核,那么本指南非常适合我们。可用于CentOS的与内核相关的软件包列表如下:内核:此软件包包含用于单核,多核和多处理器系统的内核
kernel-devel:包含用于针对已安装的内核版本构建内核模块的内核头文件和makefile。
内核头文件:该软件包包括C头文件,该文件为Linux内核与用户空间库和程序之间的接口提供了动力。
kernel-tools:包含用于操纵Linux内核和支持文档的工具。
perf:此软件包包含perf工具,可用于监视Linux内核的性能。
linux-firmware:包含各种设备运行所需的固件文件。
在CentOS 8上安装Linux Kernel 5.x
在CentOS上安装最新内核的通用标准方法是从源代码构建。在本指南中,我将向我们介绍提供RPM软件包的ELRepo。
ELRepo是用于Enterprise Linux软件包的RPM存储库。它支持Red Hat Enterprise Linux(RHEL)及其衍生产品,例如Scientific Linux,CentOS等。
将ELRepo添加到CentOS 8
通过运行以下命令,将ELRepo存储库添加到CentOS 8系统。
sudo dnf -y install https://www.elrepo.org/elrepo-release-8.el8.elrepo.noarch.rpm
安装程序将在/etc/yum.repos.d目录下创建一个存储库文件。
$cat /etc/yum.repos.d/elrepo.repo
第2步:导入GPG密钥
将存储库添加到系统后,我们可以导入公钥:
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
在CentOS 8上安装Linux Kernel 5.4
我们添加的存储库具有elrepo-kernel通道,该通道为CentOS和RHEL Linux系统提供了长期(kernel-lt)支持内核和最新的稳定主线内核(kernel-ml)。
我们可以列出资源库中可用的主线内核版本:
$sudo dnf --disablerepo="*" --enablerepo="elrepo-kernel" list available | grep kernel-ml kernel-ml.x86_64 5.7.4-1.el8.elrepo elrepo-kernel kernel-ml-core.x86_64 5.7.4-1.el8.elrepo elrepo-kernel kernel-ml-devel.x86_64 5.7.4-1.el8.elrepo elrepo-kernel kernel-ml-doc.noarch 5.7.4-1.el8.elrepo elrepo-kernel kernel-ml-headers.x86_64 5.7.4-1.el8.elrepo elrepo-kernel kernel-ml-modules.x86_64 5.7.4-1.el8.elrepo elrepo-kernel kernel-ml-modules-extra.x86_64 5.7.4-1.el8.elrepo elrepo-kernel kernel-ml-tools.x86_64 5.7.4-1.el8.elrepo elrepo-kernel kernel-ml-tools-libs.x86_64 5.7.4-1.el8.elrepo elrepo-kernel kernel-ml-tools-libs-devel.x86_64 5.7.4-1.el8.elrepo elrepo-kernel
这会将Linux内核模块安装为依赖项。
Dependencies resolved. ======================================================================================================================================================== Package Arch Version Repository Size ======================================================================================================================================================== Installing: kernel-ml x86_64 5.7.4-1.el8.elrepo elrepo-kernel 32 k Installing dependencies: kernel-ml-modules x86_64 5.7.4-1.el8.elrepo elrepo-kernel 23 M kernel-ml-core x86_64 5.7.4-1.el8.elrepo elrepo-kernel 28 M Transaction Summary ======================================================================================================================================================== Install 3 Packages Total download size: 51 M Installed size: 87 M Is this ok [y/N]: y
既然我们已经确认Linux Kernel 5.x的可用性,我们可以继续安装它。
sudo dnf --enablerepo=elrepo-kernel install kernel-ml
安装其他内核软件包
sudo dnf --enablerepo=elrepo-kernel install kernel-ml-{devel,headers}
在CentOS 8上启动到Linux Kernel 5.4
在CentOS 8上安装Linux Kernel 5.4之后,我们需要重新引导系统。
sudo reboot
在grub菜单中选择内核5.x。
操作系统启动后,运行uname命令以确认操作系统正在运行的内核版本。
$uname -a Linux cent01 5.7.4-1.el8.elrepo.x86_64 #1 SMP Thu Jun 18 10:07:20 EDT 2017 x86_64 x86_64 x86_64 GNU/Linux
我们许多人需要采取进一步的措施来确认所有OS功能均按预期运行。
在CentOS 8上卸载Kernel 5.x
我们可以随时使用dnf命令从CentOS 8计算机上删除Linux Kernel5.x。
首先启动到Linux内核的默认操作系统版本。
确认活动内核。
$uname -r 4.18.0-80.el8.x86_64
然后从ELRepo中删除安装的Kernel5.x。
sudo dnf remove kernel-ml kernel-ml-{devel,headers}
确认移除。
Dependencies resolved. ======================================================================================================================================================== Package Arch Version Repository Size ======================================================================================================================================================== Removing: kernel-ml x86_64 5.7.4-1.el8.elrepo @elrepo-kernel 0 kernel-ml-devel x86_64 5.7.4-1.el8.elrepo @elrepo-kernel 50 M kernel-ml-headers x86_64 5.7.4-1.el8.elrepo @elrepo-kernel 5.0 M Removing unused dependencies: kernel-ml-core x86_64 5.7.4-1.el8.elrepo @elrepo-kernel 64 M kernel-ml-modules x86_64 5.7.4-1.el8.elrepo @elrepo-kernel 23 M perl-Carp noarch 1.42-396.el8 @BaseOS 41 k perl-Errno x86_64 1.28-416.el8 @BaseOS 9.3 k perl-Exporter noarch 5.72-396.el8 @BaseOS 54 k perl-File-Path noarch 2.15-2.el8 @BaseOS 63 k perl-IO x86_64 1.38-416.el8 @BaseOS 137 k perl-PathTools x86_64 3.74-1.el8 @BaseOS 179 k perl-Scalar-List-Utils x86_64 3:1.49-2.el8 @BaseOS 122 k perl-Socket x86_64 4:2.027-3.el8 @BaseOS 124 k perl-Text-Tabs+Wrap noarch 2013.0523-395.el8 @BaseOS 24 k perl-Unicode-Normalize x86_64 1.25-396.el8 @BaseOS 623 k perl-constant noarch 1.33-396.el8 @BaseOS 26 k perl-interpreter x86_64 4:5.26.3-416.el8 @BaseOS 14 M perl-libs x86_64 4:5.26.3-416.el8 @BaseOS 5.8 M perl-macros x86_64 4:5.26.3-416.el8 @BaseOS 5.1 k perl-parent noarch 1:0.237-1.el8 @BaseOS 9.0 k perl-threads x86_64 1:2.21-2.el8 @BaseOS 107 k perl-threads-shared x86_64 1.58-2.el8 @BaseOS 76 k Transaction Summary ======================================================================================================================================================== Remove 22 Packages Freed space: 163 M Is this ok [y/N]: y