linux img 内核启动,请教linux启动时,initrd.img和linuxrc文件的关系(busybox)

关于一般桌面linux,initrd.img实际是一个ram disk, 里面是一个小的根文件系统,

目前遇到的问题是: 现在想自己剪裁一个内核, 然后用busybox做根文件系统, 运行在工控机上(赛扬m处理器, 存储区是CF卡,也就是compact flash)

bootloader使用的是syslinux, 用法类似于lilo, 配置文件里都必须要指明bzImage和initrd,

问题1: bzImage已有,busybox已经生成了一个linuxrc,请问initrd如何生成?

问题2: linuxrc的作用是什么? 是不是类似于initrd?

|

用 busybox 生成的linuxrc是个连接, 直接连接到 busybox 所以你打不开的。知道它的作用就好了 。

1。  initrd如何生成

initrd 是一个压缩包,存放的是最小系统或者说根文件系统。

问题2: linuxrc的作用是什么? 是不是类似于initrd ?

linuxrc 是第一个用户态程序,他的作用是启动 init 进程。

然后由init 进程去启动其他程序。

http://www.ibm.com/developerworks/cn/linux/l-k26initrd/

http://blog.csdn.net/liuchp/archive/2009/08/16/4449256.aspx

另外你搜索一下,会有很多文章。

initrd.img 制作

|

linuxrc的作用:   (参考/usr/src/linux-2.4/Documentation/initrd.txt文档)

2)/linuxrc文件决定在挂载真正的文件系统之前所需完成的事情(譬如加载必要的网络驱动或者加载ext3文件系统).

3)/linuxrc加载必要的模块.

4)/linuxrc挂载根文件系统

5)/linuxrc调用pivot_root来改变根目录

关于initrd的用途可以查考上面提到的文档

|

不用initrc, 你可以将busybox制成root文件系统,再mount成loop device的文件, 压缩一下就是initrd. initrc太高层了, 用不上。

|

楼上正解,linuxrc在busybox可以不用的,因为你可以在命令行直接指定从/sbin/init启动,其实init最后也是指向/bin/busybox的.busybox做成的root目录,可以融mkromfs直接做成不压缩的romfs initrd,也可以用mkcramfs做成楼上说的压缩initrd, 也可以用mkfs.jffs2压成jffs的格式在Flash上跑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值