initrd和initramfs 解析
2016-01-23 11:17
387 查看
这个两个都是在内核启动之后的boot加载的临时文件系统,一般制作的内核很多的驱动并没有编译进去,如:硬盘相关驱动等,
由于rootfs存储在硬盘中,没有这些驱动,则无法加载真正的rootfs(rootfs有驱动程序)。真正的rootfs自然包含所有的驱动。
所以为了解决先有鸡,还是先有蛋的问题。引入initrd或是initramfs机制。
一如何制作initrd,
ubuntu/debian: mkinitramfs moduleslib(make modules_install 之后的生成的目录,一般问版本号) -o myinitrd.img
fedora/radhet: mkinitrd moduleslib(make modules_install 之后的生成的目录,一般问版本号) -o myinitrd.img
二如何查看当前系统的initrd的内容
在当前的系统中有:/etc/boot/initrd.img-***generic
在可以通过 file /etc/boot/initrd.img-***generic
mkdir -p ~/initest
cp /etc/boot/initrd.iomg-***generic ~/initest/initrd.gz (把文件后缀给为.gz。因为initrd本质是一个gzip压缩包)
cd ~/initest
gzip -d initrd.gz (解压)
cpio -i < initrd (还原)
ls
其中init是一个脚本,在加载initrd之后,找到这个init的脚本,首先然后执行它。
你也可以修改initrd里面的文件然后再,制作一个initrd。方法如下:通过下面命令
参考文献:
http://linux.koolsolutions.com/2009/11/12/initramfs-ramfs-tmpfs-compressed-image/
由于rootfs存储在硬盘中,没有这些驱动,则无法加载真正的rootfs(rootfs有驱动程序)。真正的rootfs自然包含所有的驱动。
所以为了解决先有鸡,还是先有蛋的问题。引入initrd或是initramfs机制。
一如何制作initrd,
ubuntu/debian: mkinitramfs moduleslib(make modules_install 之后的生成的目录,一般问版本号) -o myinitrd.img
fedora/radhet: mkinitrd moduleslib(make modules_install 之后的生成的目录,一般问版本号) -o myinitrd.img
二如何查看当前系统的initrd的内容
在当前的系统中有:/etc/boot/initrd.img-***generic
在可以通过 file /etc/boot/initrd.img-***generic
mkdir -p ~/initest
cp /etc/boot/initrd.iomg-***generic ~/initest/initrd.gz (把文件后缀给为.gz。因为initrd本质是一个gzip压缩包)
cd ~/initest
gzip -d initrd.gz (解压)
cpio -i < initrd (还原)
ls
bin conf etc init lib sbin scripts usr
其中init是一个脚本,在加载initrd之后,找到这个init的脚本,首先然后执行它。
你也可以修改initrd里面的文件然后再,制作一个initrd。方法如下:通过下面命令
find . | cpio --quiet -H newc -o | gzip -9 -n > /boot/imagefile.img
参考文献:
http://linux.koolsolutions.com/2009/11/12/initramfs-ramfs-tmpfs-compressed-image/
相关文章推荐
- iOS开发实践之cell下载图片(SDWebImage)
- sql中exists,Intersect ,union 与union All的用法
- 树莓派2 B编译内核及安装
- ltnmp 3.0 发布,PHP 开发环境一键安装包
- 表单异步提交不返回响应数据总结
- "前端"碎碎念
- 虚拟机下安装centos 7.0
- Sort方法的扩展
- 采访 Lua 发明人的一篇文章
- javascript笔记之express初体验
- 2016蓝桥杯假期任务之《带分数》
- 最简单的Web Service实现
- iOS【ReactiveCocoa的使用(RAC的属性监听)】
- java 回文 判断
- CodeForce 616A Comparing Two Long Integers 字符串比较
- 留训第一天
- LeetCode:Odd Even Linked List
- IO流 BufferedWriter
- RHCA RH442实战系列(二)之Linux buffer内存释放
- [转]OpenGL 2D纹理