1. 确保centos7上有gcc和make等工具
2. 获取centos7源码。
CentOS-7-x86_64-1503-01版本的内核是3.10.0-229.el7.x86_64,下载该distribution版本的内核源码,拷贝到根目录:
http://vault.centos.org/7.1.1503/updates/Source/SPackages/kernel-3.10.0-229.1.2.el7.src.rpm
安装该源码包
[user@host]# rpm -i kernel-3.10.0-229.1.2.el7.src.rpm
现在内核的源代码目录树可以在 ~/rpmbuild/SOURCE/ 这个目录内找得到,源码文件是linux-3.10.0-229.1.2.el7.tar.xz
3. 编译内核源码
(1) 将linux-3.10.0-229.1.2.el7.tar.xz 文件拷贝到目录 /usr/src/kernels/ 下
(2) 解压内核源码
[user@host kernels]# tar -xvf linux-3.10.0-229.1.2.el7.tar.xz
(3) 切换到 linux-3.10.0-229.1.2.el7目录
[user@host kernels] # cd linux-3.10.0-229.1.2.el7
(4)清除从前编译内核时残留的.o 文件和不必要的关联。
确保源代码目录下没有不正确的.o文件和文件依赖关系,执行该命令后,内核选项会回到默认的状态下。如果你是下载的内核源码,而且是第一次编译,就没有必要执行这一步操作
[user@host inux-3.10.0-229.1.2.el7]# make mrproper
将已存在的./.config文件内容,作为新版本内核的默认值。
[user@host inux-3.10.0-229.1.2.el7]# make oldconfig
(5) 配置内核,修改相关参数
[user@host inux-3.10.0-229.1.2.el7]# make menuconfig
在内核配置菜单中配置ramdisk块驱动模块的个数和大小,并保存退出
Device Drivers
|-->Block devices
|--> [M]RAM block device support
(xx) Default number of RAM disks
(xx) Default RAM disk size(kbytes)
(6) 编译内核和内核模块
[user@host inux-3.10.0-229.1.2.el7]# make bzImage
[user@host inux-3.10.0-229.1.2.el7]# make modules
(7) 编译后的Ramdisk模块的存放位置
/usr/src/kernels/linux-3.10.0-229.1.2.el7/drivers/block/brd.ko
4. 安装新的brd.ko模块
(1) 将新的brd.ko模块拷贝到Centos7系统的 如下目录/lib/modules/3.10.0-229.el7.x86_64/kernel/drivers/block/,
覆盖原来的ramDisk模块brd.ko。
(2) 将旧的brd.ko模块从内核中移除。
[root@localhost ~]# rmmod brd
(3) 更新内核模块依赖。
[root@localhost ~]# depmod -a
(4) 重新挂载内核模块。
[root@localhost ~]# modprobe brd
(5) 检查内核模块是否挂载成功,
如果上面的内核选项中[Default number of RAM disks]的值设置的是2,那么,
新模块加载成功后,命令会输出显示/dev/ram0 和 /dev/ram1 两个设备
[root@localhost ~]# ls /dev/ram*
(6) 检查ramdisk的容量大小(以1024M的ramdisk为例),输入以下命令。
[root@localhost ~] mkdir /tmp/ramdisk0
[root@localhost ~] mke2fs /dev/ram0
[root@localhost ~] mount /dev/ram0 /tmp/ramdisk0
[root@localhost ~] df -h
Filesystem Size Used Avail Use% Mounted on
/dev/ram0 1008M 1.3M 956M 1% /tmp/ramdisk0
来源:oschina
链接:https://my.oschina.net/u/658505/blog/544547