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...] [<initrd-image>] <kernel-version>
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

内核的ramdisk的更多相关文章

  1. 内核与ramdisk到底是什么关系

    转自:http://www.lupaworld.com/forum.php?mod=viewthread&tid=61425 原名:内核与ramdisk到底是什么关系? 个人Notes:    ...

  2. 0.11内核rd_load@ramdisk.c中memcpy函数好像有bug

    0.11内核rd_load@ramdisk.c中memcpy函数好像有bug,如:#define memcpy(dst,src,n) \    __asm__("cld;rep;movsl& ...

  3. 内核移植和文件系统制作(3)Ramdisk简介和常见问题

    一,Ramdisk简介: Ramdisk是一种基于内存的虚拟文件系统(并非一个实际的文件系统),它将一部分固定大小(这个大小在编译内核的make menuconfig时配置)的内存当作硬盘一个分区来使 ...

  4. 从ramdisk根文件系统启动Linux成功,及使用initramfs启动linux

    下面两篇文章是ARM9论坛上的讲解ramdisk文件系统的很不错的文章 今天做了个试验,让Linux2.6.29.4从ramdisk根文件系统启动成功,总结一下. 其中涉及的内容较多,很多东西不再详述 ...

  5. 从ramdisk根文件系统启动Linux 二

    今天做了个试验,让Linux2.6.29.4从ramdisk根文件系统启动成功,总结一下.其中涉及的内容较多,很多东西不再详述,如需深入研究请查阅相关资料(百度或谷歌一下一大堆). 开发环境:Fedo ...

  6. Ramdisk文件系统的制作与调试运行

    开发环境:Fedora 9交叉编译工具链:arm-linux-gcc 4.3.2 with EABI嵌入式Linux内核版本:2.6.29.4-FriendlyARM.昨天写贴子的时候具体记不清了,今 ...

  7. Debian编译内核

    转自 yuzibo博客 http://yuzibo.github.io/DebianBuildKernel.html 最终成功一次了 之前又一次编译了好多次.可惜没有一次成功的,说实话.借助Debia ...

  8. 内核调试工具 — kdump & crash

    kdump简介 kdump是系统崩溃的时候,用来转储运行内存的一个工具. 系统一旦崩溃,内核就没法正常工作了,这个时候将由kdump提供一个用于捕获当前运行信息的内核, 该内核会将此时内存中的所有运行 ...

  9. ramdisk文件系统制作

    1.  确保内核支持ramdisk启动.2.  创建根文件系统(应用busybox或拷贝现有文件系统).3.  利用脚本mkroot.sh创建内核镜像:root.img.gz.4.  uboot通过t ...

随机推荐

  1. UVa 548 树(已知其中两种遍历, 还原树)

    题意: 给出后序遍历和先序遍历, 还原一棵树, 然后求出从根节点到叶子的最小路劲和. 分析: 已知后序遍历, 那么后序的最后一个节点就是根节点, 然后在中序中找到这个节点, 它的左边就是左子树, 它的 ...

  2. BNUOJ 5363 Machine Schedule

    Machine Schedule Time Limit: 1000ms Memory Limit: 32768KB This problem will be judged on HDU. Origin ...

  3. 桐桐的糖果计划(vijos 1325)

    背景 桐桐是一个快乐的小朋友,他生活中有许多许多好玩的事,让我们一起来看看吧…… 描述 桐桐很喜欢吃棒棒糖.他家处在一大堆糖果店的附近. 但是,他们家的区域经常出现塞车.塞人等情况,这导致他不得不等到 ...

  4. [bzoj3513][MUTC2013]idiots_FFT

    idiots bzoj-3513 MUTC-2013 题目大意:给定$n$根木棍,问随机选择三根能构成三角形的概率. 注释:$1\le n\le 3\cdot 10^5$,$1\le a_i\le 1 ...

  5. NOIP 2010 关押罪犯

    P1525 关押罪犯 题目描述 SS 城现有两座监狱,一共关押着 NN 名罪犯,编号分别为 1-N1−N .他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突. ...

  6. Ubuntu 16.04创建Swap分区或增加Swap分区容量(转)

    要在Ubuntu中要创建Swap分区主要有如下2种方式: 一.传统创建方式 一般情况下,我们都会使用dd命令来预先创建交换分区文件,然后再用/dev/zero将该文件的内容全部置零,创建时还将用到bs ...

  7. swift container server 莫名stuck

    openstack swift container server的进程经常莫名其妙进入 D Ds等状态 记录一下这个时候 storage.error的log 便于分析 一种情形是下面这种log Jun ...

  8. osg提前定义几何体设置颜色

    注意尽管osg::shape不能够设置颜色,可是osg::shapedrawable能够.

  9. 网上Unused Index Script 脚本的问题

    曾经使用过网上下载的脚本查询没有使用过的Index比方SQL SERVER – 2008 – Unused Index Script – Download,事实上如今看起来这个脚本是有一些问题. 脚本 ...

  10. ie 代理设置中地址和端口置灰的解决办法

    @echo offecho 代理设置reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings&quo ...