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

参考

  • 编译内核 make modules_install报错SSL error
  • bcache的使用_内核中配置bcache模块

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/162174.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在Linux中,怎么查看自己电脑的系统架构是什么?

2023年10月18日&#xff0c;周三晚上 这些命令会返回一个字符串&#xff0c;表示系统的架构。 常见的架构包括 x86&#xff08;32位&#xff09;、x86_64&#xff08;64位&#xff09;、ARM 等。 方法1&#xff1a;使用uname命令 uname -m方法2&#xff1a;使用arch命令 ar…

如何查看前端项目vue版本

&#xff08;1&#xff09;点击package.json文件 &#xff08;2&#xff09;找到dependencies下面的value &#xff08;2&#xff09;查看vue版本 2开头为vue2 3开头为vue3

从零开始了解协同OA办公系统,一篇文章就够了!

随着现代企业管理的不断发展&#xff0c;越来越多的企业开始关注协同OA办公系统&#xff0c;以提高工作效率和降低成本。但是&#xff0c;很多企业对协同OA办公系统并不了解&#xff0c;甚至不知道该如何开始使用。本文将从零开始&#xff0c;为大家详细介绍协同OA办公系统。 一…

【数据结构】排序算法的稳定性分析

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …

Java使用javah命令:‘javah‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。

前提是已安装jdk&#xff0c;配置JDK环境变量&#xff0c;并成功输出下图&#xff1a; 但在命令行窗口使用javah&#xff0c;找不到该命令&#xff1a; 原因&#xff1a;新版的Java不使用javah的命令了&#xff0c;而是使用javac -h 用法&#xff1a; javac -h <directory&…

软件测试全套教程,软件测试自学线路图

目录 一、简介 二、引言 为什么要做接口自动化测试&#xff1f; 为什么要自己写框架呢&#xff1f; 三、环境准备 四、测试接口准备 接口代码 接口信息 五、编写接口测试 测试思路 脚本实现 六、优化 封装接口调用 保持cookies&增加log信息 封装重复操作 七…

微信隐秘功能:如何巧妙隐藏好友和消息的方法教程

在日常使用微信的过程中&#xff0c;难免会有些私密内容或特定的联系人和群聊希望能够暂时隐藏起来&#xff0c;以保护个人隐私。幸运的是&#xff0c;微信提供了一些内置功能以及额外的工具&#xff0c;能够帮助我们实现这一目的。下面就来详细介绍一种简单易行的方法&#xf…

软件考试学习笔记(希赛)

软考学习笔记-软件设计师 1. 软考基本介绍1.1 软考分数制1.2软考考试分类介绍1.3软件考试报名网站1.4考试内容1.4.1上午考试内容-综合知识1.4.2下午考试内容-软件设计 2.数据的表示2.1进制转换2.1.1R进制------》十进制转换2.1.2十进制-----》R进制转换2.1.3二进制与八进制与16…

低代码如何赋能实体经济走向数实融合

数字工厂、智慧园区、智慧社区、数字乡村、智慧校园、数字化管理平台……当前&#xff0c;各行各业正在全面拥抱数字化。“数实融合”的浪潮持续高涨&#xff0c;企业数字化转型的呼声也不断走高。然而&#xff0c;当前实体经济和数字经济融合不全&#xff0c;数字技术未能深度…

SpringBoot+自定义注解+AOP高级玩法打造通用开关

1.项目结构 2.引入依赖 <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot<…

MySQL 查询 唯一约束 对应的字段,列名称合并

MySQL 查询 唯一约束 对应的字段&#xff0c;列名称合并 SELECT F.DbName,F.TableName,F.ConstraintName,GROUP_CONCAT(ColumnName) ColumnName FROM ( SELECT t1.TABLE_SCHEMA DbName, t1.TABLE_NAME TableName,t1.CONSTRAINT_NAME ConstraintName,t2.COLUMN_NAME ColumnNam…

UI自动化测试的痛点

当我们找工作的时候查看招聘信息发现都需要有自动化测试经验&#xff0c;由此看来测试人员不会一点自动化测试技术都不好意思说自己是做软件测试的。大部分测试人员也都是从使用自动化测试工具、录制回放、测试脚本、开发小工具入门自动化测试的&#xff0c;然后在慢慢的接触 U…

Rust-类型转换进阶

这篇文章收录于Rust 实战专栏。这个专栏中的相关代码来自于我开发的笔记系统。它启动于是2023年的9月14日。相关技术栈目前包括&#xff1a;Rust&#xff0c;Javascript。关注我&#xff0c;我会通过这个项目的开发给大家带来相关实战技术的分享。 关于Rust的类型转换&#xff…

美国绿氢项目开发商NovoHydrogen完成2000万美元融资

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;总部位于美国科罗拉多州戈尔登的绿氢项目开发商NovoHydrogen今日宣布已完成2000万美元融资。 本轮融资由现代能源公司领投。 该公司打算利用这笔资金进一步扩大其团队&#xff0c;并将其绿氢项目的…

纳米软件科普:开关电源测试方案之如何测试短路保护

开关电源短路保护测试是通过模拟短路状态来检测电源在短路时是否有保护能力&#xff0c;是开关电源一个重要测试项目。通过测试&#xff0c;不仅可以测试开关电源的保护能力&#xff0c;还可以保护电路系统以及对设备的保护&#xff0c;防止受到损坏。那么短路保护要如何测试呢…

Linux创建与删除用户

Linux创建与删除用户 新增用户&#xff1a; adduser 用户名【添加用户】 passwd 用户名【设置用户密码】删除用户&#xff1a; userdel -r 用户名【删除用户】

205、使用消息队列实现 RPC(远程过程调用)模型的 服务器端 和 客户端

目录 ★ RPC模型&#xff08;远程过程调用通信模型&#xff09;▲ 完整过程&#xff1a;代码演示总体流程解释&#xff1a;ConstantUtil 常量工具类ConnectionUtil RabbitMQ连接工具类Server 服务端Client 客户端测试结果服务端客户端 完整代码ConstantUtil 常量工具类Connecti…

文献阅读快速法-ChatPDF

如题&#xff0c;直接提供给大家一款能够快速阅读文档的好工具——iTextMaster。 iTextMaster是一款免费的pdf阅读浏览器&#xff0c;上传pdf文档后等待几秒钟&#xff0c;AI就会自动反馈给用户关于文档的摘要总结。十分的方便且实用。 ChatPDF为您提供简洁的文档摘要。对于那…

plink分析100个性状的批量gwas分析

大家好&#xff0c;我是邓飞。 GWAS分析时&#xff0c;3~5个性状是正常操作&#xff0c;要分析100个性状呢&#xff0c;手动修改参数&#xff0c;工作量是够了&#xff0c;但是程序员的修养体现在哪里了&#xff1f;&#xff1f;&#xff1f; 如果还是按照每个性状一个文件夹…

2023年中国液晶电视出口现状、品牌格局及行业发展趋势[图]

液晶电视指采用液晶显示面板的电视机&#xff0c;是目前最主流的彩色电视机&#xff0c;主要结构包括液晶面板模组、电子线路模块、结构件等。 目前常用的液晶电视有STN-LCD&#xff08;SuperTN-LCD&#xff0c;超扭曲向列LCD&#xff09;、DSTN-LCD&#xff08;DoublelayerSTN…