centos8编译安装指定版本的内核

Posted alfiy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了centos8编译安装指定版本的内核相关的知识,希望对你有一定的参考价值。

在实际工作中经常会遇到默认安装的或者通过官方更新的内核版本无法实现具体的业务需求的情况,因此我们需要更换系统的内核。本文为centos 8更换5.10.10一个简单记录。
1.当前系统的内核版本

uname -ra

uname -r


2.下载所需的内核

通过linux官方网站https://www.kernel.org/ 下载

官方首页只显示最近最新的内核,如果想下载你需要的内核则需要到如下网址进行下载。

https://mirrors.edge.kernel.org/pub/linux/kernel/

我找到了我所需要的5.10.10内核,地址如下。

https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.10.10.tar.gz

进入/usr/local/src目录,下载内核并解压到当前目录下

cd /usr/local/src
wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.10.10.tar.gz
tar -zxvf linux-5.10.10.tar.gz
cd linux-5.10.10
ls


3.修改内核编译config文件

为了减少工作量以及出错的概率,我们使用当前系统内核配置文件作为基础进行简单修改的方式配置我们新的内核。

cp /boot/config-4.18.0-348.2.1.el8_5.x86_64 ./.config

修改.config文件

vim .config

.config文件中找到CONFIG_SYSTEM_TRUSTED_KEYSCONFIG_DEBUG_INFO_BTF这两行,并将这两行注释。

4.安装内核编译所需要的依赖

yum install ncurses-devel
yum install gcc-c++
yum install make
yum install openssl-devel
yum install bison
yum install flex
yum install elfutils-libelf-devel

5.运行menuconfig程序,选择需要的编译参数

make menuconfig

进入UI界面,参数不用改,切换到save直接保存,尔后按两下Esc退出。

6.编译内核

make -j8

-j8参数根据个人自己的计算机进行设置,我的电脑是8核的所以我使用-j8,如果你的电脑是16核的就可以使用-j16,注意-j后面的数字不要超过你电脑的核心数就行了。

这是一个漫长的过程,还有可能会出现错误,耐心的等待吧。注意保证你的电脑网络的畅通以及centos系统有足够大的硬盘空间。

如果编译完成并没有报错的话就可以进行下一步的编译了。

make modules

这一步不像上一步那样需要很长的时间了。


下一步。

make modules_install

成功

再进行下一步

make install


出现上图时说明编译成功了。

7.使用grubby切换内核

grubby是一个用于更新和显示有关各种体系结构特定的引导程序的配置文件信息的命令行工具。 它主要设计用于安装新内核并需要查找有关当前引导环境的信息的脚本,同时也可以对启动内核的各项信息参数进行修改。grubby已经默认安装在centos8中,如果系统中没有grubby我们也可以通过yum进行安装grubby工具。

yum install -y grubby

查看当前系统默认启动的内核

grubby --default-kernel


看来我的系统已经将5.10.10作为默认启动内核了。

可以通过以下命令查看当前系统有哪些可用的内核。

grubby --info=ALL | grep ^kernel



通过命令grubby --set-default=可以设置你的默认启动内核。

grubby --set-default=/boot/vmlinuz-5.10.10

以上是关于centos8编译安装指定版本的内核的主要内容,如果未能解决你的问题,请参考以下文章

运维笔记:Linux(CentOS8)免编译安装mysql5.7.33最新版本

CentOS8下配置Nginx服务器详细教程

7_1一文Centos8安裝Git

centos怎么更新python

Centos8和7的区别(参照redhat)

Linux 内核编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 )