吴琼

吴琼的博客

他的个人主页  他的博客

LFS启动中挂载文件系统后出现 Warnning:unable to open inital console咋解决?

吴琼  2010年04月26日 星期一 09:32 | 2094次浏览 | 4条评论

LFS启动中挂载文件系统后出现 Warnning:unable to open inital console咋解决?

 kernel parameters没有错,fstab也没有错。/dev/console也创建了。

交换分区也开启了。。

到底何故。。。

各位兄弟,敬请赐教~

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
孔志奎

回复 孔志奎  2010年04月26日 星期一 10:05

dev文件系统是如何生成的? devfs? udev? mdev?
devfs在挂载/dev目录时会自动创建/dev/console, udev 和 mdev 在挂载/dev目录时则不会, 所以在此之后需要手工创建/dev/console, 否则直到udev/mdev创建/dev下的设备节点之前, /dev/console都是不可用的; 在mdev/udev挂载/dev目录之前创建/dev/console也是不行的, 因为mdev/udev重新挂载的/dev目录会替代原来的/dev路径.

1条回复

  • 吴琼

    回复 吴琼  2010年04月26日 星期一 10:15

    目前我的现象还没到mdev/udev这一步,因为上次lfs做出来没问题,上次没有devfs,用udev,/dev/console这个设备文件我已经手工创建了,这次我忘记把usb mass storage编进内核,设备都没找到,现在正在re-compiling。因为从usb设备启动,不用initramfs,必须把usb mass storage编进内核,还要在kernel后加参数rootdelay=10,等几秒才能usb设备就绪。。
    待会要是没解决,我试试老兄的方法。

    0条回复

吴琼

回复 吴琼  2010年04月26日 星期一 10:00

找到原因了,我没有用initramfs。我仔细看了下分析了,因为我lfs放在u盘里,拿到台式机里和里面的硬盘设备好颠倒了,本来是kernel parameter里是sda1为根分区的,而sda在台式机里是内置硬盘,搞反了。调整为sdb1后解决此问题,不过新问题是真正的根分区却挂不上,找不到sdb1。才知道我内核没编译后,内核编译的时候只把scsi驱动编进内核,而疏忽把usb mass storage 编成模块了。这样一来挂不上根分区了。
过还是谢谢,楼上仁兄

0条回复

张家瑞

回复 张家瑞  2010年04月26日 星期一 09:47

把系统最小化,kernel挂个initramfs,里面装一个busybox 然后手写几个dev,用grub legacy引导,跑起来试试。
fstab、kernel parameters、交换分许啥的都没用
如果系统能跑起来,在一点一点的加上去这些东西。
对了,initramfs里面不要写init脚本,直接用busybox默认的init程序。

0条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号