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_KEYS
,CONFIG_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最新版本
Linux 内核编译 Linux 内核 ① ( 下载指定版本的 Linux 内核源码 | Linux 内核版本号含义 | 主版本号 | 次版本号 | 小版本号 | 稳定版本 )