【转载】关于initrd.image的处理
2013-12-06 12:05
483 查看
initrd (boot loader initialized RAM disk)
Linux2.6 内核支持两种格式的 initrd,一种是 linux2.4 内核那种传统格式的文件系统镜像-image-initrd,它的制作方法同 Linux2.4 内核的 initrd 一样,其核心文件就是 /linuxrc.另外一种格式的 initrd 是 cpio 格式的,这种格式的 initrd 从 linux2.5 起开始引入,使用 cpio 工具生成,其核心文件不再是 /linuxrc,而是 /init,本文将这种 initrd 称为 cpio-initrd.尽管 linux2.6 内核对 cpio-initrd和 image-initrd 这两种格式的 initrd 均支持,但对其处理流程有着显著的区别。
第一种:gzip处理initrd.img
如果initrd.img是经过用gzip -9进行压缩过的ramdisk文件。直接用#mount initrd.img /mnt -o loop会失败,并报告你指定一个文件类型。 要先将其进行解压缩,然后再mount。具体操作如下:
反过来生成initrd.img过程如下:
第二种:cpio处理initrd.img
2.6内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需要使用gunzip解压缩,然后再使用cpio解包
通过以上命令就将initrd.img解压了,现在就可以对其进行编辑,完成后使用以下命令重新压制
(注:-H newc 是必须的,否则内核会认为是ramdisk,而不是initramfs)
![](http://p.blog.csdn.net/images/p_blog_csdn_net/jiazhen/EntryImages/20090325/inirtd.png)
参考文献:
[1] /article/2642982.html
Linux2.6 内核支持两种格式的 initrd,一种是 linux2.4 内核那种传统格式的文件系统镜像-image-initrd,它的制作方法同 Linux2.4 内核的 initrd 一样,其核心文件就是 /linuxrc.另外一种格式的 initrd 是 cpio 格式的,这种格式的 initrd 从 linux2.5 起开始引入,使用 cpio 工具生成,其核心文件不再是 /linuxrc,而是 /init,本文将这种 initrd 称为 cpio-initrd.尽管 linux2.6 内核对 cpio-initrd和 image-initrd 这两种格式的 initrd 均支持,但对其处理流程有着显著的区别。
第一种:gzip处理initrd.img
如果initrd.img是经过用gzip -9进行压缩过的ramdisk文件。直接用#mount initrd.img /mnt -o loop会失败,并报告你指定一个文件类型。 要先将其进行解压缩,然后再mount。具体操作如下:
cd /boot mv initrd.img initrd.gz gunzip initrd.gz /tmp/initrd mv /tmp/initrd /tmp/initrd.img mount /tmp/initrd.img /mnt/ -o loop
反过来生成initrd.img过程如下:
mkcramfs /tmp/ /boot/newinitrd gzip -9 /boot/newinitrd mv /tmp/newinitrd.gz /tmp/initrd.img
第二种:cpio处理initrd.img
2.6内核中的initrd.img采用cpio压缩,不再是2.4内核使用的ext2格式,无法使用mount -o loop 挂载。需要使用gunzip解压缩,然后再使用cpio解包
cp /boot/initrd-2.6.15-prep.img initrd.img.gz #必须先将initrd重名为initrd.gz,否则gunzip工具无法识别该文件 gunzip initrd.img.gz mkdir initrd mv initrd.img initrd cd initrd cpio -ivmd < initrd.img # -v: List the files processed. # -i: Run in copy-in mode, cpio copies files out of an archive or list the archive contents. # -m: Retain previous file modification times when creating files. # -d: Create leading directories where needed.
通过以上命令就将initrd.img解压了,现在就可以对其进行编辑,完成后使用以下命令重新压制
find . | cpio -o -H newc | gzip > /mnt/sda1/boot/initrd-2.6.15-prep.img # -o: Create the archive. # -H newc: Use archive format "newc", the "newc" format is The new (SVR4) portable format, which supports file systems having more than 65536 i-nodes.
(注:-H newc 是必须的,否则内核会认为是ramdisk,而不是initramfs)
gzip ../initrd.new.img
![](http://p.blog.csdn.net/images/p_blog_csdn_net/jiazhen/EntryImages/20090325/inirtd.png)
参考文献:
[1] /article/2642982.html
相关文章推荐
- 关于android Imageview 圆角圆图处理xutils兼容问题
- 转载:关于sizeof对struct和union的处理
- 【转载】一个关于VC++6.0与标准C++差异处理的小技巧
- (转载)关于JSP和Servlet乱码处理
- (转载)Hadoop关于处理大量小文件的问题和解决方法
- 关于iOS开发中图片处理的一些积累(CoreGraphic、CoreImage、GPUImage、OpenGL)
- 关于 android ImageView 圆角处理 圆图
- 转载一篇关于图像处理的文章,很有用,感谢作者
- » 转载请注明来源:贰号楼肆层 » 《关于Maven无法正确处理javac中文警告信息的问题》
- 转载:关于发布后对rowguid列的一些处理
- 一个关于OutOfMemoryError的处理【转载】谢谢网络上大神们
- [转载]关于SQLServer2005的学习笔记——异常捕获及处理
- 关于处理GET方式提交的含有特殊字符的参数(转载)
- 关于$(this)和this、[object object]和[object HTMLImageElement]区别和处理
- 关于session不能自动去除的临时处理方法(转载)我一直没用SESSI
- 关于 android ImageView 圆角处理 圆图
- 关于大文件上传并保存数据库的处理(image,text,ntext)
- java数字图像处理基础使用imageio写图像文件示例(转载)
- Java 关于中文乱码处理的经验总结【转载】
- 【脚本语言系列】关于Python图像处理scikits-image, 需要知道的事