+ -
当前位置:首页 → 问答吧 → lfs-6.2-5 制作完成, 启动内核时 出错?

lfs-6.2-5 制作完成, 启动内核时 出错?

时间:2007-12-18

来源:互联网

grub界面出现, 引导后, 提示的错误是:
------------------------------------------------------------------------------
VFS: can not open root devices "hda1" or unknown block(0, 0)
Please append a correct "root=" boot option
Kernel panic - not syncing : VFS : Unable to mount root fs on
unknown - block(0,0)
-------------------------------------------------------------------------------
我不知道是什么原因, 因为我反复检查了fstab和menu.lst, 而且grub中,
进入命令行, 进行如下操作,
--------------------------------------------------------------------------
grub> find /boot/grub/stage1
(hd0,0)

grub> root (hd0,0)
......................

grub>setup (hd0)
.........
........

grub> kernel /boot/lfskernel ......
grub> boot
---------------------------------------------------------------------
boot操作进行后, 过一会, 就出现上述错误

我附近中, 分别抓图了/etc/fstab, /boot/grub/menu.lst, 以及boot时候的错误
上传的图像
fstab.JPG (28.4 KB, 24 次查看)
menu.lst.JPG (30.4 KB, 24 次查看)
booterr.JPG (71.9 KB, 25 次查看)

作者: zjuylok   发布时间: 2007-12-18

楼主是不是boot在hda1,根文件系统在hda2啊

作者: sspipipipi   发布时间: 2007-12-18

我没有单独挂载/boot的

作者: zjuylok   发布时间: 2007-12-18

可以将fstab里面hda2的fsck改成2试试

作者: sspipipipi   发布时间: 2007-12-18

grub的引导不是很复杂啊,在命令行输入 root (hd0,0) 正确的话就会显示文件系统类型和分区类型,然后用kernel命令:kernel /boot/<TAB>,看看/boot下的内容全不全,然后,输入kernel /boot/<内核> root=/dev/hda1,最后boot就完了,如果不行的话,很有可能楼主的内核编译的有问题。

作者: sspipipipi   发布时间: 2007-12-18

内核选项没配置对

作者: 不开花   发布时间: 2007-12-18

内核选项, 有哪些需要配置的?

我直接把livecd-6.2.5中的/usr/src/linux-2.6.16.38/.config
copy过来的

作者: zjuylok   发布时间: 2007-12-18

这就是了。Livecd上的内核是采用了initrd/initramfs的,只复制内核是不够的。

作者: wybmk   发布时间: 2007-12-18

引用:
作者: zjuylok
内核选项, 有哪些需要配置的?

我直接把livecd-6.2.5中的/usr/src/linux-2.6.16.38/.config
copy过来的
这个.config中很多驱动都编译成模块,要根据情况将硬件驱动和文件系统直接编译进内核。

作者: wybmk   发布时间: 2007-12-18

最起码文件系统的支持要编入内核里

作者: d00m3d   发布时间: 2007-12-19

此问题我刚解决!参考网上的贴子做的,细节还不是很懂!
进入编译内核目录
vi fs/Kconfig
加入如下语句:
config DEVFS_FS
bool "/dev file system support (OBSOLETE)"
default y
config DEVFS_MOUNT
bool "Automatically mount at boot"
default y
depends on DEVFS_FS

make menuconfig 配置文件系统选单中是否有了新东东?
重新编译安装内核,启动成功!
好像linux.2.6.16.38缺省不支持DEVFS,所以make menuconfig 选单中没有这个选项!(我用的也是lfs-6.2.5 liveCd,我把她安装到硬盘的时候,首先就遇到这个问题!找了好几天的锄头,终于给除掉了!呵呵!)

网上还有的说:mkinitramfs 可以解决此问题,initrd我没试过,不懂!

作者: xuanwf   发布时间: 2007-12-20

最好不要采用devfs,现在已经用udev代替了。

作者: wybmk   发布时间: 2007-12-20

devfs?什麽年代了,早於 2.6.13 时期已被弃之。。。

作者: d00m3d   发布时间: 2007-12-22

根据上面的总结,LZ可以chroot后看一下/usr/local/sbin/udevstart,或者/sbin/udevstart命令能用否,不能用就把UDEV包重装一次,试试

作者: tuishu   发布时间: 2007-12-28

较新版的 udev (LFS-6.2 里)是没有 udevstart 这命令的说。。。

作者: d00m3d   发布时间: 2008-01-11

我的新做法:
用lfs livecd 6.2.5启动,login
#mkdir -pv /mnt/lfs
#mount -v -t ext3 /dev/hda2 /mnt/lfs
(/dev/hda2 我的LFS分区)
#cp -v /usr/src/linux-2.6.16.38/.config \
> /mnt/lfs/usr/src/linux-2.6.16.38/.config
###chroot 后重新编译内核
#chroot /mnt/lfs
#cd /usr/src/linux-2.6.16.38
#cp -v .config myconfig (保存.config)
#make mrproper
#cp -v myconfig .config (恢复从lfs livecd 上拷过来的配置文件)
#make menuconfig(去掉不要的模块和驱动)
#make
#make modules_install
#make install
(新内核1.1M,未压缩,在尝试精简内核配置中 )
重新启动,OK了,希望对你有帮助!

作者: xuanwf   发布时间: 2008-01-11

注意,有些时候 "make install" 是行不通的,这也是 LFS 手册不用 make install 而采用更底层方式去安装的原因

作者: d00m3d   发布时间: 2008-01-13

谢谢版主的回复!
make install的时候,是有错误提示,说找不到lilo和它的配置文件,当时没管它,因为是用Grub启动内核!重启居然成功!
是我回复的太马虎了!

作者: xuanwf   发布时间: 2008-01-13