218 words
1 minute
Linux initrd.img 解压分析
vmlinuz 是一个为内核映像, vmlinuz里面有gzip的一段代码。
initrd.img 是作为避免在vmlinuz里编译所有的驱动模块,所以使用了一个中间层的技术
initrd有两种格式,一种是较早的2.4.x中的image-initrd格式,里面以/linuxrc为主导。另一种是cpio-initrd
看了网上的资料,想学着看看 initrd里是什么个样子
cp /boot/initrd.imgxxx initrd.img.gzgunzip initrd.img.gz # 这个如果不加后缀gz 就得使用 gunzip -S .img xx.imgmkdir initrdmv initrd.img.gz initrdcd initrdcpio -ivmd < initrd.img #用cpio格式打的包,释放出来,ok,就可以看到了。编译内核:
centos 6.2:make mrproper // 新内核不用,检查依赖对不对make menuconfig //配置选项make modules_install //安装modules /lib/modules 对应的文件夹make install // 将 vmlinuz 和 initrd.img 放到 /boot 下,并填写对应的 /boot/grub/menu.lst 自己可以看看 Linux initrd.img 解压分析
https://w23ta0.vercel.app/posts/linux-initrd-img-extract-analysis/