请教linux启动时,initrd.img和linuxrc文件的关系(busybox)
来源: 互联网 发布时间:2016-10-10
本文导语: 关于一般桌面linux,initrd.img实际是一个ram disk, 里面是一个小的根文件系统, 目前遇到的问题是: 现在想自己剪裁一个内核, 然后用busybox做根文件系统, 运行在工控机上(赛扬m处理器, 存储区是CF卡,也就是compact flash) ...
关于一般桌面linux,initrd.img实际是一个ram disk, 里面是一个小的根文件系统,
目前遇到的问题是: 现在想自己剪裁一个内核, 然后用busybox做根文件系统, 运行在工控机上(赛扬m处理器, 存储区是CF卡,也就是compact flash)
bootloader使用的是syslinux, 用法类似于lilo, 配置文件里都必须要指明bzImage和initrd,
问题1: bzImage已有,busybox已经生成了一个linuxrc,请问initrd如何生成?
问题2: linuxrc的作用是什么? 是不是类似于initrd?
目前遇到的问题是: 现在想自己剪裁一个内核, 然后用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 制作
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的用途可以查考上面提到的文档
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上跑。