|
最近 我根据网上GuCuiwen的《Babylinux制作过程详解》一文模仿制作babylinux,(google搜一下就有)由于没有软驱,身边也没几个人有,即使有也是坏的,所以我就用虚拟软盘,用winImage做的。制作的过程基本上都是按照要求一步步下来的,虽然得出的内核和ramdisk的大小可能有点偏差,但是应该无关大局。
重新启动从软盘启动(我用的是虚拟机vmware)。
来到lilo提示符,输入linux,启动。
然后来到 enter to continue
问题出现了:
warning:unable to open a initial console
kernel panic: no init found. Try passing init= option to kernel.
我查找了一些资料,也查看了源代码,发现是在main.c有这么一段
if (open("/dev/console", O_RDWR, 0) < 0)
printk("Warning: unable to open an initial console.\n");
(void) dup(0);
(void) dup(0);
if (execute_command)
execve(execute_command,argv_init,envp_init);
execve("/sbin/init",argv_init,envp_init);
execve("/etc/init",argv_init,envp_init);
execve("/bin/init",argv_init,envp_init);
execve("/bin/sh",argv_init,envp_init);
panic("No init found. Try passing init= option to kernel.");
我的根目录下/dev/console 和 /bin/init 都是有的啊,所以我认为可能是 ramdisk
的问题,因为之前我做过类似的东西,当时最后一步没有用ramdisk, 而是直接在硬盘上建
的根文件系统。
虽然大概知道问题所在,但是由于才疏学浅,一直没找到解决方法,请教各位高手,这个问题应该怎么解决呢?谢谢! |
|