CentOS的优势在于稳定,通常是不建议自行编译内核的,但是由于CentOS内核并不带Bcache模块,所以只能自行编译。

bcache配置方案可查看以下链接:

Linux/CentOS使用bcache开启SSD缓存加速

Linux/Ubuntu/Debian使用bcache开启SSD缓存加速

查看本机内核

uname -a

我的内核为4.18.0

Linux localhost.localdomain 4.18.0 #1 SMP Sat Dec 25 17:52:09 CST 2021 x86_64 x86_64 x86_64 GNU/Linux

下载内核源码

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

找到对应的内核版本,下载,可能速度太慢,可以本地下载,再上传到服务器。

wget -O https://mirrors.edge.kernel.org/pub/linux/kernel/v4.x/linux-4.18.tar.gz

CentOS也可以前往CentOS官网下载内核,例如CentOS8.3.2011系统的内核:
https://vault.centos.org/8.3.2011/BaseOS/Source/SPackages/kernel-4.18.0-240.22.1.el8_3.src.rpm

编译内核

安装编译所需依赖

yum update
yum install gcc bc gcc-c++ ncurses ncurses-devel cmake elfutils-libelf-devel openssl-devel

安装以后再次update,确保所以软件和依赖都是新版本,提高成功率。

yum update

拷贝原有内核配置

cp /boot/config-4.18.0-240.el8.x86_64 .config

编译添加Bcache选项

make menuconfig

修改Device Driver->Mutiple device driver support让Linux编译时生成bcache模块 如图:

image1807e678cb4dc5f3.png

编译去除证书选项

编译可能会提示证书有误,直接不编译即可。

vi .config

搜索"cert/signing_key.pem"
将该值改为空白即可,如果是其他证书问题,同理,找到去除。

开始编译

根据CPU核数编译,如我的8核CPU,则使用

make -j8

安装模块

make -j modules_install

安装内核

make install

安装完成后即可重启,重启后会看到自己编译的内核,选择自己编译的内核版本启动即可。

签名问题解决办法

如果启动时提示签名无效

error: /vmlinuz-5.10.6-1.el8.elrepo.x86_64 has invalid signature
error: you need to load the kernel first

禁用主板的安全引导即可。

CentOS升级内核invalid signature error: you need to load the kernel first解决方法