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文件

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

注意此处的config-4.18.0-348.2.1.el8_5.x86_64要根据你的系统而不同,不要照抄我的。

在这里插入图片描述
将系统的配置文件复制到当前目录下,并重命名为.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 -y ncurses-devel gcc-c++ make openssl-devel bison flex 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

重启系统,感受新内核给你带来的欢乐吧。


版权声明:本文为alfiy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。