|
|
发表于 2008-2-9 15:49:03
|
显示全部楼层
这个……你应该弄明白文档里这样设定是出于什么目的
我这里解释一下吧
root=/dev/ram0,init=/linuxrc,real_root=/dev/sdaX
这样设置很明显是系统需要在启动的时候读入不属于内核的模块,或者是需要完成一些特殊的初始化工作
所以用内存先做一个虚拟盘,然后装入initrd文件镜像,执行其中的linuxrc脚本(在这个脚本中完成模块的初始化),再根据real_root=/dev/sdaX把根区换成真正的根区/dev/sdaX
比如当需要使用lvm作为根分区,或者使用软raid作为根分区,都需要类似这样的办法设置Post by f.s.vivian;1814970
多谢版主批评,呵呵,偶赶紧查了下资料。
现在有了一点新的理解。
启动的时候,内核(广义上的)首先被加载到内存,也就是抽象后的文件:ramx
然而,一般人用户不会把根文件放在内存上,所以需要转到硬盘:sdax
总体说来就是root=/dev/ram0,init=/linuxrc,real_root=/dev/sdax这三个步骤。
然而默认情况下,root=/dev/ram0 init=/linuxrc 是必经之路,
即使不写,它也是这么做的(至少pc上的操作系统都是这样设计的)。
之所以这样设计,是为了有的人需要把内存当硬盘用(不写real_root):
一来提高速度;二来断电后系统就干净了,没有东西会保存下来,相当于影子系统。
所以我认为“root=/dev/ram0 init=/linuxrc real_root=/dev/sdax”还是没道理。
并不是说它有错,只是把问题复杂化了。
既然还要转,就不如直接一些,一句“root=/dev/sdax”结束。 |
|