linux 内核 ramdisk,内核的ramdisk

ramdisk

内核中的特性之一,使用缓冲和缓存来加速对磁盘上的文件访问,并加载相应的硬件驱。

ramdisk --> ramfs,提高速度

CentOS 5: initrd

工具程序:mkinitrd

CentOS 6 ,7: initramfs

工具程序:mkinitrd, dracut

ramdisk在系统初始化中的位置:

POST --> BootSequence (BIOS) -->Bootloader(MBR) --> kernel(ramdisk) --> rootfs( 只读) --> init (systemd)

ramdisk文件的制作:

ramdisk文件:

/boot/initramfs-2.6.32-696.el6.x86_64.img

这个文件是个gzip压缩文件,解压后是个cpio归档ASCII文档,展开归档文件后发现这里面其实是些类似根文件系统的目录结构,所以我们称为虚拟根目录。

同时可以看到在sbin目录下有个二进制程序叫作switch_root,这个程序功能就是从虚拟的根目录切换到真正磁盘上的根目录。

展开这个文件:

cp -a initramfs-2.6.32-696.el6.x86_64.img /root/initramfs-2.6.32-696.el6.x86_64.img.gz

mkdir initramfs

mv initramfs-2.6.32-696.el6.x86_64.img.gz initramfs

gunzip initramfs-2.6.32-696.el6.x86_64.img.gz

cpio -id < initramfs-2.6.32-696.el6.x86_64.img

制作ramdisk文件

1.为正在使用的内核重新制作ramdisk文件:

mkinitrd /boot/initramfs-$(uname -r).img $(uname -r)

or

dracut /boot/initramfs-$(uname -r).img $(uname -r)

2.将一堆文件打包制作成ramdisk文件:

在对应的文件目录下执行find 和cpio组合命令进行归档

find . |cpio -o -H --quiet > /boot/myramdisk.img

对归档后的文件进行gzip压缩

gzip /boot/myramdisk.img.gz

重命名压缩文件

mv /boot/myramdisk.img.gz /boot/myramdisk.img

mkinitrd

mkinitrd - is a compat wrapper, which calls dracut to generate an initramfs

用于建立呀载入ramdisk的镜像文件。

mkinitrd [OPTION...] []

mkinitrd [-fv][--omit-scsi-modules][--version][--preload=][--with=][映像文件][Kernel 版本]

-f 若指定的映像问家名称与现有文件重复,则覆盖现有的文件。

-v 执行时显示详细的信息。

--omit-scsi-modules 不要载入SCSI模块。

--preload= 指定要载入的模块。

--with= 指定要载入的模块。

--version 显示版本信息。

--nocompress 不压缩结果镜像.

ex: mkinitrd /boot/initramfs-3.10.0-693.el7.x86_64.img 3.10.0-693.el7.x86_64

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值