+ -
当前位置:首页 → 问答吧 → CLFS reboot后不能mount root分区

CLFS reboot后不能mount root分区

时间:2007-10-03

来源:互联网

按照CLFS文档reboot后才可以编译basic system.
可是reboot后无法mount root分区,导致kernel panic.
开始我怀疑是/dev/sda*没有建立,于是手工mknod,还是不行。
看来是临时内核编译的有问题。可能是SATA或者IDE的驱动没有编译进入内核。
有谁遇到过类似问题吗?该怎么解决啊?

作者: utstar   发布时间: 2007-10-03

按照贯例,应该帖出开机启动时的提示信息。

GRUB引导装载程序检查 /boot/grub/menu.lst ,lilo引导的检查 /etc/lilo.conf 。还有, /etc/fstab 文件,这些要与系统符合、一致。

重编译内核。
可以找个现成的 config 文件删减修改。
块设备、IDE 或 SATA 和 SCSI 这些地方要注意; ext2 和 ext3 都得选上,如果有用其它的文件系统应该一并选上。网络文件系统中有个含有 root 的选项不要选,而且实际上发行版的内核也没有选此项。另外,如果不做 initrd ,以上你认为需要在启动时首先加载的应该编译到内核而不是编译到模块。

作者: tfkdmwmqtr   发布时间: 2007-10-03

因为没有用到ext3文件系统,所以没选ext3

作者: utstar   发布时间: 2007-10-03

kernel config file
上传的附件
config-2.6.22.6.gz (12.7 KB, 0 次查看)

作者: utstar   发布时间: 2007-10-03

找到原因了,是.config改变后没有make mrproper

现在有新的问题: init过程中找不到/sbin/agetty程序,很奇怪,我是按照文档一步一步作的,怎么会找不到文件呢?

作者: utstar   发布时间: 2007-10-03

udev服务好像起不来,login程序也找不到

作者: utstar   发布时间: 2007-10-03

chroot 到目标系统,查看下有没有这个文件。
再看这个文件是编译哪个包时产生的(看手册)。
如果是 glibc 安装有问题,如果 tools 没有删除,或许能用得上。注意 PATH 中加入 /tools/bin 。
例:
# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
# export PATH=$PATH:/tools/bin

或者在 chroot 的时候,PATH 中加上 /tools/bin 。

作者: tfkdmwmqtr   发布时间: 2007-10-03

哦?
你用的是 CLFS-svn 的吧 ?
udev 问题看一下我的帖子就可以了。
在此文中第三帖:
http://www.linuxsir.org/bbs/showthread.php?t=312053

作者: tfkdmwmqtr   发布时间: 2007-10-03

我是用reboot的方式,不是chroot
找遍所有的地方(包括CLFS手册)就是找补道login是由哪个包编译出来的

作者: utstar   发布时间: 2007-10-03

屏幕上的提示呢?有没有观察过?如有异常,不妨以纸笔抄录。
请提供一些信息以供参考。

按照手册一步一步的做同样是会有错的。 CLFS 的 svn 版从9月3日凌晨2时许更新后一直有几错未改。CBLFS手册同样错误多多,我经常在wiki上小修小改。

作者: tfkdmwmqtr   发布时间: 2007-10-03

屏幕上的有用信息:
1. udev的启动脚本文件找不到,即/etc/init.d/udev不存在 [Warning]
2. set system clock失败 [Failed]

现在把设备文件copy到/dev下后,尽管有上述错误存在,但是能启动到登录提示符:

[none] login:

问题是现在键盘无法使用。我想可能是kbd没有编译,或者是login程序找不到的原因

作者: utstar   发布时间: 2007-10-03

引用:
作者: utstar
屏幕上的有用信息:
1. udev的启动脚本文件找不到,即/etc/init.d/udev不存在 [Warning]
2. set system clock失败 [Failed]
此段,你应该抄录屏幕上的原始英文。启动时,屏幕上没有中文的。虽然,我的英语差到了极点,但分析问题是我会去努力做的事情。
CLFS中应该是这个是否存在 /etc/rc.d/init.d/udev ,启动时是 /etc/rc.d/rc{*}.d/*udev 这个链接。

引用:
作者: utstar
现在把设备文件copy到/dev下后,尽管有上述错误存在,但是能启动到登录提示符:

[none] login:

问题是现在键盘无法使用。我想可能是kbd没有编译,或者是login程序找不到的原因
设备文件能够 copy 到 /dev 目录下?怎样 copy 的?
我接触Linux时间不长,懂得很少。
login 好像是 shadow 控制的吧?怎么会 login 程序找不到呢?要不就不会提示 login 了。
键盘无法使用的可能性就有好几个了,不一定是软件没编译好。
键盘问题,在做CLFS时有一个 /etc/sysconfig/console ,貌似亚洲用户不用设置。手册中有讲到。其它现象/原因不清楚,要看症状。

boot 方式做 CLFS ,我就做过一次,已经很遥远了,记不清了。但你的系统既然已经编译好了,应该可以 chroot 方式进行维护。检查你认为有误的地方。
提示 [none] login ,我见过一种是因为 /etc/fstab 文件中记录的挂载项没有被挂载,是以前用 openSuSE 时见到过。其它原因不详。

综上:
udev 可能是安装问题,或者说按手册上的方法安装是有缺陷的,需要自己作一些检查找出解决的方法。
键盘问题,可能是内核编译,最有可能的是某(几个)配置文件的问题。

作者: tfkdmwmqtr   发布时间: 2007-10-03

突然想起来编译内核时没选USB,而我的是USB键盘!

作者: utstar   发布时间: 2007-10-03

引用:
作者: utstar
突然想起来编译内核时没选USB,而我的是USB键盘!
USB键盘?
没用过,嗯,这个问题应该已经解决了吧?恭喜!

作者: tfkdmwmqtr   发布时间: 2007-10-03

还没彻底解决。
刚才编译的内核不小心打开了USB调试,满屏幕不停滚动调试信息。
好像root无法login

作者: utstar   发布时间: 2007-10-03

找个发行版的 config 文件,修修改改略微删减就可以了。usb的可以不编译到内核,因为不是usb磁盘,是键盘。
好运!

作者: tfkdmwmqtr   发布时间: 2007-10-04

编译util-linux的时候需要编译login程序,否则无法登录。CLFS手册有误。

作者: utstar   发布时间: 2007-10-08