+ -
当前位置:首页 → 问答吧 → 急!DOM启动问题:unable to open an initial console!

急!DOM启动问题:unable to open an initial console!

时间:2005-09-23

来源:互联网

我是新手,请各位大虾帮忙!这个问题已经困扰我几天了,现在已经郁闷至极!

我裁减的是RH9.0(2.4.20-8)内核,我将裁减后的内核以及用busybox做出来的压缩(ramdisk)文件系统拷贝到DOM上,然后设置从DOM启动,内核能够启动,但是当启动到文件系统时,提示:"Warning: unable to open an initial console.kernel panic:No init found.Try passing init= option to kernel"
还请个位高手指点!
我制作ramdisk过程以及将内核及相关配置文件拷贝到DOM的步骤如下:
一:制作ramdisk
1)# dd if=/dev/zero of=/dev/ram1 bs=1M count=4
2)# mkfs.ext2 -m0 /dev/ram1
3)#mkdir /mnt/ram
挂上ram1:
#mount /dev/ram1 /mnt/ram
将先前做好的根文件系统拷贝到ram1上.
# cp -R /babylinux/rootfs/* /mnt/ram
4)#umount /dev/ram1
5)# dd if=/dev/ram1 of=/babylinux/ramdisk.img
6)#mount -o loop ramdisk.img /mnt/ram/
7)# umount /mnt/ram
8)#gzip -v9 ramdisk.img
二:内核与DOM整合
1) #mkfs.ext2 -m0 / dev/hda4 1000
2) #mount /dev/hda4 /mnt/dom
3)#cp /boot/vmlinuz-2.4.20-8me /mnt/dom/
4) #cp /boot/boot.b /mnt/dom
5) #cp /boot/map /mnt/dom
配置lilo.conf
prompt
timeout=50
default=linux
boot=/dev/hda
map=/mnt/dom/map
install=/mnt/dom/boot.b
linear

image=/mnt/dom/bzImage
label=linux
read-only
root=/dev/hda4
append="load_ramdisk=1 ramdisk_start=1020"

6)# dd if=/babylinux/ramdisk.img.gz of=/dev/hda4 bs=1k seek=1020
7)# lilo -C lilo.conf(安装引导文件)
8)# umount /dev/hda4
9)# reboot

三:文件系统中fstab配置如下:
fstab
/dev/hda4 / ext2 defaults 0 0
none /proc proc defaults 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0

四:inittab配置:

inittab
::sysinit:/etc/init.d/rcS

::askfirst:/bin/sh
tty2::respawn:/bin/getty 38400 tty2
tty3::respawn:/bin/getty 38400 tty3
tty4::respawn:/bin/getty 38400 tty4

# Stuff to do when restarting the init process
::restart:/bin/init

# Stuff to do before rebooting
::ctrlaltdel:/bin/reboot
::shutdown:/bin/umount -a -r
::shutdown:/bin/swapoff -a


还有我在配置新内核选项时选中了Virtual terminal和Support for console on terminal选项。
在新的文件系统下也创建了/dev/console设备。
请教各位,是不是我的上述文件配置的不对,还是其它原因?      

作者: mylemontree   发布时间: 2005-09-23

一般情况下是不存在hda4的,hda4只是一个扩展分区      

作者: 魔芋   发布时间: 2005-09-23

非常感谢你的回复。
/dev/hda4:是在fdisk /dev/hda 后建立的primary分区!
可能是分区的原因吗,请指点!      

作者: mylemontree   发布时间: 2005-09-23

你有指明使用initrd么      

作者: 魔芋   发布时间: 2005-09-24

[QUOTE=mylemontree]非常感谢你的回复。
/dev/hda4:是在fdisk /dev/hda 后建立的primary分区!
可能是分区的原因吗,请指点![/QUOTE]
如果只有主分区当然没问题       

作者: 魔芋   发布时间: 2005-09-24

[QUOTE=魔芋]你有指明使用initrd么[/QUOTE]
真的是非常感谢你的回复!
还请教魔芋,这里的initrd该怎么写?      

作者: mylemontree   发布时间: 2005-09-26

最好把ramdisk 挂载为你的根分区,
/dev/hda4 / ext2 defaults 0 0
改为
/dev/ram1 / ext2 defaults 0 0

我碰到过这种事。。。。      

作者: chunyv   发布时间: 2005-09-26

[QUOTE=chunyv]最好把ramdisk 挂载为你的根分区,
/dev/hda4 / ext2 defaults 0 0
改为
/dev/ram1 / ext2 defaults 0 0

我碰到过这种事。。。。[/QUOTE]
非常感谢你,我试试看!      

作者: mylemontree   发布时间: 2005-09-27

应该是你的libc版本和busybox不兼容,建议你用静态库编译busybox。
顺便告知一下你的busybox版本。      

作者: xbzjackey   发布时间: 2005-09-27

[QUOTE=xbzjackey]应该是你的libc版本和busybox不兼容,建议你用静态库编译busybox。
顺便告知一下你的busybox版本。[/QUOTE]
非常感谢你的答复!
我用的是busybox-1.00.我是用静态库编译busybox的。请教大虾,如何确定libc版本和busybox版本是否兼容?
并且前面chunyv告知我的方法我也尝试了,但是还是同样的错误!      

作者: mylemontree   发布时间: 2005-09-28

[QUOTE=mylemontree]非常感谢你的答复!
我用的是busybox-1.00.我是用静态库编译busybox的。请教大虾,如何确定libc版本和busybox版本是否兼容?
并且前面chunyv告知我的方法我也尝试了,但是还是同样的错误![/QUOTE]
lilo.conf添加下面一行
initrd=/boot/ramdisk.img      

作者: 魔芋   发布时间: 2005-10-02

没有指明initrd=
root=那个错了吧,一般是root=/dev/ram0      

作者: ganganwen   发布时间: 2005-10-08

非常感谢大家的积极回复!

我是用dd if=/babylinux/ramdisk.img.gz of=/dev/hda4 bs=1k seek=4000
将ramdisk.img.gz装入到DOM中,但是当我在lilo中指定initrd=/mnt/dom/ramdisk.img.gz后,运行lilo -C lilo.conf时出现找不到/mnt/dom/ramdisk.img.gz的错误。

当我试图用cp ramdisk.img.gz到DOM中时,他又出现no space left 的提示。实际上我的DOM大小为32M,ramdisk.img.gz大小为2.7M在加上内核不到5M。我用df -lh /mnt/dom查看,挂接到/mnt/dom上的DOM设备大小才4M多,不知道怎么回事?

还望各位大虾们指点,如何指定initrd?      

作者: mylemontree   发布时间: 2005-10-08

[QUOTE=ganganwen]没有指明initrd=
root=那个错了吧,一般是root=/dev/ram0[/QUOTE]
当我指定root=/dev/ram0时,会出现如下错误:
Kernel panic: VFS: Unable to mount root fs on 01:00
这种方式似乎连文件系统都没有挂接上:-(

还恳请高手指教!      

作者: mylemontree   发布时间: 2005-10-08

非常感谢大家的积极回复!

我是用dd if=/babylinux/ramdisk.img.gz of=/dev/hda4 bs=1k seek=4000
将ramdisk.img.gz装入到DOM中,但是当我在lilo中指定initrd=/mnt/dom/ramdisk.img.gz后,运行lilo -C lilo.conf时出现找不到/mnt/dom/ramdisk.img.gz的错误。

当我试图用cp ramdisk.img.gz到DOM中时,他又出现no space left 的提示。实际上我的DOM大小为32M,ramdisk.img.gz大小为2.7M在加上内核不到5M。我用df -lh /mnt/dom查看,挂接到/mnt/dom上的DOM设备大小才4M多,不知道怎么回事?

还望各位大虾们指点,如何指定initrd?      

作者: mylemontree   发布时间: 2005-10-08

[QUOTE=mylemontree]当我指定root=/dev/ram0时,会出现如下错误:
Kernel panic: VFS: Unable to mount root fs on 01:00
这种方式似乎连文件系统都没有挂接上:-(

还恳请高手指教![/QUOTE]
你用/dev/ram1看看      

作者: AIKO_sex   发布时间: 2005-10-08

应该是cp命令拷贝到dom上,然后把grub也装在dom上面就可以了,最后拷贝上去initrd就可以了
有msn的话可以加我[email protected]      

作者: ganganwen   发布时间: 2005-10-08

谢谢大家的热情支持,问题解决了!
正如ganganwen所说,用cp将ramdisk.img.gz考到dom上
再有将lilo.conf中加上
initrd=/mnt/dom/ramdisk.img.gz
root=/dev/ram0
希望以后遇到类似问题的人能够顺利的解决这样的问题!      

作者: mylemontree   发布时间: 2005-10-09

按照我考虑。应该是核心启动,挂接initrd,然后再mount上真正的根文件系统。原来的initrd挂接到/initrd下。
  但是,如果没有作initrd的话,在启动参数中加入noinitrd也可以启动的吧!
  祝你成功      

作者: sunfish   发布时间: 2005-10-21

我也遇到这样问题。up! up!!期盼帮助 谢谢      

作者: corncc   发布时间: 2007-02-10