• 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
    
    • 1
    • 2

    其次,还要查看内核中有没有编入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
    
    • 1

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

    2 编译内核

    2.1 安装依赖

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

    2.2 添加Bcache选项

    [root@ceph01 linux-4.18]# make menuconfig
    
    • 1

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

    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
    
    • 1

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

    2.4 编译安装

    根据CPU核数编译,例如:

    make -j16 bzImage      # 编译内核
    
    • 1

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

    make -j16 modules      # 编译内核模块
    
    • 1

    image-20231018160418507

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

    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
    
    • 1
    • 2

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

    image-20231018160529329

    创建Bcache测试

    image-20231018160735200

    image-20231018160633533

    参考

  • 相关阅读:
    开源VOSK引擎免费语音转文字部署
    从零学算法2848
    Model Inspector—软件模型静态规范检查工具
    【MindSpore易点通】如何使用溢出检测工具定位精度问题
    C#多线程(三)线程高级篇
    代码随想录Day16 LeetCode T654 最大二叉树 T617 合并二叉树 T700 二叉搜索树中的搜索
    pillow库,PIL库
    ArrayList集合源码分析
    python的opencv操作记录(五) - 插值第一篇
    NLP-D58-nlp比赛D27&刷题D14&读论文&mathtype
  • 原文地址:https://blog.csdn.net/gengduc/article/details/133908570