CentOS的优势在于稳定,通常是不建议自行编译内核的,但是由于CentOS内核并不带Bcache模块,所以只能自行编译。
bcache配置方案可查看以下链接:
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模块 如图:
编译去除证书选项
编译可能会提示证书有误,直接不编译即可。
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解决方法