LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1107|回复: 5

livecd中initrd的作用的理解

[复制链接]
发表于 2008-5-13 10:54:13 | 显示全部楼层 |阅读模式
看到很多文章中都说到做livecd中一定用initrd,但是没看到有讲什么作用的
下面给出我自己的理解,我还是新手,有不对的地方,请有高手指点

在软盘linux中因为软盘1.44M,所以装入initrd后就把initrd当作根分区直接用了,放进需要的工具就好了

在硬盘中,不一定需要initrd,如果有可能加载一些驱动什么的,如果没有,内核直接启动init作为第一个进程(这里估计是内核可以在硬盘分区文件系统中找到init,但不知道是怎么找的)

在livecd中因为无法象软盘一样把整个cd都放入内存,所以必须挂载cd,首先和软盘一样,把initrd当作根分区用,但并不是真正的根分区,在initrd的linuxrc中用udev检测到cd,然后挂载他,再通过pivot_root到cd,最后chroot,用init作为chroot后执行的程序
也无法象硬盘一样直接就能够搜索分区找到init执行(我估计是因为cd是iso9660,内核现在还不能在这个文件系统上进行搜索)

在这里initrd的作用就是帮助挂载cd,切换到真根分区的,并帮助内核找到init
发表于 2008-5-14 12:41:39 | 显示全部楼层
我的livecd老说找不到文件系统,挂不上文件系统,只是给一个busybox的shell,是linuxrc有问题吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-14 14:43:25 | 显示全部楼层
我也是新手,交流下,挂不上initrd吗?
回复 支持 反对

使用道具 举报

发表于 2008-5-14 19:09:24 | 显示全部楼层
一开始找不到init 编译了busybox后好了,可是文件系统找不到了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-14 20:33:13 | 显示全部楼层
http://blog.chinaunix.net/u/13265/showart.php?id=477664

我觉得还是参照youbest大哥的这篇文章先弄,尽量搞明白为什么
然后对照你的,因为我看不到你的initrd的内容,也很难说

我没明白你是挂载不上initrd的文件系统,还是真实用的文件

我也是新手,能帮的忙有限,互助一下
回复 支持 反对

使用道具 举报

发表于 2008-5-14 22:36:06 | 显示全部楼层
除了 youbest 的大作,也请阅读精华区内关於 LiveCD 的制作,还有这些 http://www.linuxsir.cn/bbs/thread240067.html

也许对你有帮助 ;)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表