如何在CentOS 8上安装Linux Kernel 5.x

时间:2020-02-23 14:30:45  来源:igfitidea点击:

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