Linux编译内核添加Bcache模块

由于Bcache是在linux kernel 3.10之后才加入的,所以要使用Bcache,首先必须确保内核版本至少是3.10或及以上,可以使用uname -a查看内核版本

[root@ceph01 ~]# uname -a
Linux ceph01 4.18.0-305.3.1.el8.x86_64 #1 SMP Tue Jun 1 16:14:33 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

其次,还要查看内核中有没有编入Bcache模块,默认内核并没有将Bcache编译进内。检查内核中有没有Bcache模块的的方式有两种:

  1. 检查/sys/fs/bcache/目录是否存在,没有则说明内核中没有bcache
  2. 检查/lib/modules/<$version>/kernel/drivers/md/bcache/目录是否存在,如果存在则可以运行modprobe bcache命令来加载bcache模块,不存在则说明内核中没有bcache。

可以通过下载内核源码重新编译将Bcache以内核模块的形式编译进内核。

1 下载内核源码

下载地址:https://github.com/torvalds/linux/archive/refs/tags/

[root@ceph01 ~]# wget https://github.com/torvalds/linux/archive/refs/tags/v4.18.tar.gz

如果下载速度太慢,可以先本地下载,再上传到服务器上。

2 编译内核

2.1 安装依赖

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

2.2 添加Bcache选项

[root@ceph01 linux-4.18]# make menuconfig

执行上面的命令会出现如下配置界面,

image-20231018103703834

选择Device Drivers,回车

image-20231018104352660

选择Multiple devices driver support(RAID and LVM),回车

image-20231018104622908

image-20231018104738807

移动到Block device as cache选项,按Y键将该功能编译进内核。保存退出即可!

Y:将该功能编译进内核

N:不将该功能编译进内核

M:将该功能编译成可以动态加载到内核中的模块

2.3 去除证书编译

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

vim .config

搜索"cert",将CONFIG_SYSTEM_TRUSTED_KEYS值改为空白即可,CONFIG_MODULE_SIG_KEY保持不变。CONFIG_MODULE_SIG_KEY的置空可能会引起make modules_install的报错。

2.4 编译安装

根据CPU核数编译,例如:

make -j16 bzImage      # 编译内核

下图是我编译完成的提示(之前编译过一次,只有这个图了):

make -j16 modules      # 编译内核模块

image-20231018160418507

make modules_install   # 拷贝内核模块的.ko文件到/lib/modules/下
make install           # 拷贝initrd和bzImage到boot目录下,并修改开机启动配置文件
reboot                 # 重启

2.5 验证

重启后在开机界面会让你选择内核,进入系统后使用uname -a命令验证

[root@ceph01 linux-4.18]# uname -a
Linux ceph01 4.18.0 #2 SMP Wed Oct 18 03:03:29 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux

检查/sys/fs/bcache/目录是否存在

image-20231018160529329

创建Bcache测试

image-20231018160735200

image-20231018160633533

参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值