- 论坛徽章:
- 0
|
看到很多文章中都说到做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
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/68459/showart_686942.html |
|