在ubuntu环境中,boot目录下存放着经过压缩的cpio格式文件initrd。 将boot目录下的initrd文件拷贝到任意目录下,重名为为initrd.gz,并且使用gunzip解压。 这样我们就得到了一个cpio格式的initrd文件,使用vi查看文件内容如图2所示(由于文件太大,只展示了部分内容): 简单分析后显示该文件包含了script/nfs-top目录、script/nf...
好了,下面咱们就可以得出生成CPIO-INITRD的完整步骤了: cd ~ gen_initramfs_list.sh rootfs/ > filelist gen_init_cpio filelist > rootfs.cpio gzip rootfs.cpio 最后得到的这个rootfs.cpio.gz,就是咱们要的CPIO-INITRD了. 在BOOTLOADER里修改一下参数: append initrd=rootfs.cpio.gz ramdisk_size=8192 vga=792...
从Fedora Core 3开始,默认的initrd映像是一个压缩的cpio归档文件。您可以使用cpio归档文件,而不是使用循环设备将文件挂载为压缩映像。要检查cpio归档文件的内容,请使用以下命令: 检查initrd (FC3及更高版本) #mkdir temp ; cd temp#cp /boot/initrd‑2.6.14.2.img initrd‑2.6.14.2.img.gz#gunzip initrd‑...
然后,将这些内容打成 gzip 压缩过的 cpio 包: song@ubuntu:/home/linux_src/initrd/debian_etch/initrd$ find . | cpio -o -H newc | gzip -9 > ../initrd.img.gz 20500 blocks song@ubuntu:/home/linux_src/initrd/debian_etch/initrd$ ls -l ../initrd.img.gz ...
如果指定的是一个目录而不是一个像这样的配置文件,内核在编译的时候会从指定的目录创建一个配置文件(usr/Makefile调用scripts/gen_initramfs_list.sh来生成),作为usr/gen_init_cpio.c文件的输入,最后生成一个usr/initramfs_data.cpio.gz文件,通过usr/initramfs_data.S包含到.init.ramfs段中去,最后生成zImage。
zt:Linux cpio initrd操作 简介:今天需要修改initrd.img 文件,才发现rhel已经修改文件格式,采用gz+cpio的模式,不是原来的gz+ext2文件系统,google发现如下链接,记录下来:http://blog.opensource.org.cn/hdcola/2007/09/linux-cpio-initrd.html在OpenSUSE中使用了2.6 kernel所支持的cpio initrd。
查看 initrd 的内容(适用于 fc3 及其以后的版本) mkdir temp ; cd temp cp /boot/initrd-.img initrd-.img.gz initrd-.img.gz cpio -i -make-directorie 6、s initrd-.img 结果会生成一个很小的根文件系统,如清单 3 所示。在 ./bin 名目中有一组很少但却十分须要的应用程序,包括 nash(即 not a ...
1.在修改后的文件目录下,使用find将所有的文件列出来,再通过pipeline,把所有清单交给cpio指令.cpio用到的参数'c'代表用新的SVR4可移植格式.'o'代表建立文件.最后用gzip以最佳的压缩效率'-9'压缩(默认是-6),使用'>'导出.复制代码代码如下:root@192.168.30.68:initrd# lsbin conf etc init lib ...
cd /path/to find . |cpio -o -H newc |gzip -c > ../initrd.gz 如果没有特别的需要,通常使用cpio格式。 找到根文件系统的任务通常是用shell脚本来完成,主要原因是: 1.体积所限,通常initrd不会做很大,因为它功能很明确单一 2.方便修改,针对不同硬件/系统通常会做一定更改,编译型语言更改起来较麻烦 ...