|
|

楼主 |
发表于 2005-11-23 14:25:41
|
显示全部楼层
Post by d00m3d
是可以的,只不过是不同发行版的mkinitrd脚本都不同,部份发行版如Debian会强制找寻usb模组来制作initrd。印像中LFS的那个mkinitrd脚本好像也会强制找寻usb模组,但这是有选择性的
其实内核也可以打一个睡觉补丁,让系统起动时自己睡几秒钟以便系统能辨认及挂载usb设备上的root filesystem的话,那麽连initrd都可以不用了
如你所讲,如果内核可以自己睡觉几秒钟,可以不要initrd,那么,能不能在initrd的linuxrc中什么也不做,仅仅只是sleep 10,这样不用给内核打补丁,可行吗?
我想测试一下,分过过linuxrc,但看不懂,我所知道的:
内核先用RAMDISK做根系统,然后执行initrd中的linuxrc,我分析过initrd中的linuxrc,该文件是一个脚本文件,先加载/proc文件系统,再创建/dev,然后创建root文件系统,其中有几行我不懂,echo 0x0100 > /proc/sys/kernel/real-root-dev这是什么意思啊,好像是创建真实的根文件设备吧,那么根文件设备是如何编号的呢?是不是0x0100中前两位为主设备号后两位为次设备号呢?
还有,如何从RAMDISK根文件系统切换到USB根文件系统呢?具体一点就是系统内核加载根文件系统的过程是怎样的,系统要内核初始化后,是怎样先加载RAMDISK的,加载RAMDISK后,又是如何切实到真实的根文件系统的,系统从加载RAMDISK后到加载真实根文件系统这段过程是如何进行的呢? |
|