免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1504 | 回复: 3
打印 上一主题 下一主题

请教2.6如何生成image格式的initrd [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-03-30 10:29 |只看该作者 |倒序浏览
本帖最后由 jkil 于 2012-03-30 10:32 编辑

各位好。

     我通过网络资料知道,linux 2.4内核支持image格式的initrd。这个直接gzip解压后当作loop设备挂载。linux 2.6内核即支持image格式也支持cpio格式。

     我现在在RHEL5下面,默认生成的initrd是cpio格式。

     以前我是在2.4下面制作的image格式的initrd,使用root=/dev/ram1方式启动我自己制作的小文件系统,在内存里跑。现在我在2.6.18下,发现这种cpio不支持这种方式。

     因此我想制作出image格式的initrd. 但不知道该怎么强制指定。

     麻烦给点建议指点,谢谢!

     P.S. 我用losetup ... mkfs ... cp ... losesetup -d ....等等自己从头做了一个image的initrd, 但发现好像还是不行。

     还有,/dev/ram*这些设备,在initrd里是怎么被挂载的?

论坛徽章:
0
2 [报告]
发表于 2012-03-30 10:30 |只看该作者
cd /lib/modules
mkinitrd -v /boot/initrd-xxxxx  xxxxx

论坛徽章:
0
3 [报告]
发表于 2012-03-30 10:33 |只看该作者
兄弟,谢谢,我这样生成成功了,但是是cpio格式的,但它不支持root=/dev/ram0这种方式来启动自己的镜像了。

论坛徽章:
0
4 [报告]
发表于 2012-03-30 21:28 |只看该作者
现在做好了,特地来结贴。

用dd ....losetup ... mkfs ... mount ... cp ... umount ... losesetup -d .... 这种方式是可以做image格式的initrd的,我下午看了下,这和2.4内核mkinitrd的方法是一样的。

关键我的问题出在,这种image-initrd的文件大小大大了,17M,超过了内核里的设置值。所以启动到initrd时出错。

现在dd的时候我将大小改成8M,比内核里设置的值小一点就好了,可以正常启动切换到内存的文件系统里跑。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP