LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1671|回复: 14

已解决LFS6.2.5启动不了的问题“please append a corrent "root=&quot

[复制链接]
发表于 2007-9-17 10:50:27 | 显示全部楼层 |阅读模式
牺牲了一个周末,参照置顶贴与精华贴跟手册,编译时,用晨想版主的技巧(bash提示符包含一个命令退出状态$?),每一步都退出0,证明没错误发生。但是重启后grub选择从lfs启动后就一片黑屏,啥反应也没有,不知问题是否出在编译内核及grub配置上?
        我是用livecd装的LFS,硬盘上同时还有ubuntu,有一点不明的是,在ubuntu里硬盘分区为sda,但是在lfs里以hda开头(以前装的slackware也显示为hda)
   (1) 那么到底我的硬盘是IDE呢,还是SCSI?(最后发现还是IDE硬盘)
   (2) 编译内核时发现默认已将scsi支持选上,应该装了scsi驱动吧?
       我将grub安装在lfs所在分区,原来ubuntu的grub安装在MBR,启动时显示的是ubuntu的grub里的menu.lst的内容,然后我将lfs的启动信息添加进ubuntu的/boot/grub/menu.lst,重启后选择从lfs启动,发现黑屏,屏幕上也为出现grub  stage 之类的话,也没有光标提示符,就跟没开机一样,这到底是什么原因呢?
=====================================================================================================================
我在grub/menu.lst中去掉vga=792后可以boot,但出现错误:please append a corrent "root="boot option......(这里省略) kernel panic  ...(这里省略)unable  to mount root fs on unkwown block(0,0)
然后我用lfs  livecd 启动后将grub安装在MBR覆盖了原来ubuntu的grub,重启后还是出现“unable  to mount root fs on unkwown block(0,0)”之类的话,贴下我的menu.lst:

title LFS 6.2.5
root (hd0,11)
kernel /boot/lfskernel-2.6.16.38  root=/dev/hda12

title Ubuntu 7.04
root (hd0,8)
kernel /boot/vmlinuz    root=/dev/hda9
initrd /boot/initrd.img

title SlackWare 12
root (hd0,10)
kernel  /boot/vmlinuz   root=/dev/hda11
initrd /boot/diag1.img

以前安装slackware的时候也出现“unable to mount root fs on unkwown block(0,0)”之类的话,但我加入initrd /boot/diag1.img
后就正常了。我猜想是不是编译内核时scsi的驱动没编译进去?下午重新编译内核试试
=========================9月17日晚 大悲=============================================
花了一个下午重新下载了最新的6.22内核,编译完成未显示错误,步聚如下:
(1)恢复到编译内核前的环境
   export LFS=/mnt/lfs
   mkdir $LFS
   mount /dev/hda12 $LFS
   mount -vt proc proc $LFS/proc
   mount -vt sysfs sysfs $LFS/sys
   chroot "$LFS" /usr/bin/env -i \
       HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
       PATH=/bin:/usr/bin:/sbin:/usr/sbin \
       /bin/bash --login +h

   mount -nvt tmpfs none /dev
   /sbin/udevtrigger  ## 豹兄总结的6.1的恢复命令为/sbin/udevstart,但是6.2,5里似乎没有这个命令,man了一下,不知道我这里用/sbin/udevtrigger对不对?
   mkdir -v /dev/pts
   mkdir -v /dev/shm
   mount -vt devpts -o gid=4,mode=620 none /dev/pts
   mount -vt tmpfs none /dev/shm
   
   解压linux2.6.22-rc3.tar.bz2并进入linux-2.6.22-rc3/
   make mrproper
   make menuconfig ## 这里我按照豹兄的<<手把手>>编译scsi支持与ext3支持进内核
   make
   make modules_install
   cp -v arch/i386/boot/bzImage /boot/lfskernel-2.6.22
   cp -v System.map /boot/System.map
   
上面都没出现错误。
但当:
grub
grub> root (hd0,11)时提示找不到disk filesystem
不管我指定(hd0,*) 中*为多少,都出现这个错误。
于是退出 grub
并退出chroot的环境,这里运行 grub就可以安装引导信息了,我将LFS的启动信息添加进/boot/grub/menu.lst :
        title LFS 6.2.5
        root (hd0,11)
        kernel /boot/lfskernel-2.6.22  root=/dev/hda12
于是出现了跟上午一样的情形,启动到一半出现以下错误信息:
please append a corrent "root="boot option......(这里省略) kernel panic  ...(这里省略)unable  to mount root fs on unkwown block(0,0)
晕,实在是没辙了。。。
==================================9月18日晨 大喜===========================================================
昨晚google了一下,发现很多兄弟跟我的情况一样,说明这是一个普遍存在的问题,都是由于配置make menuconfig的时候出了差错,即没选项IDE驱动,于是今天早上重新编译了一遍内核,终天能启动了。总结一下:我想这是由于手册上对make menuconfig说得少,再一个豹兄的<<手把手>>里说“IDE硬盘默认就可”这一句恐怕并不是放之四海而皆准的,因为很多兄弟都是在这一步吃了苦头,影响了积极性,我本人是第一次作LFS,前面都没错,就是启动不了,也是由于没选IDE驱动造成的!在这里希望置顶贴里最好是说明一下,以免后学者范同样的错误。
注:×××××××××××××××××××××××
make menuconfig时具体位置为:Device Drivers下面的 lATA/ATAPI/MFM/RLL support   将里面带IDE的通通选上,呵呵,以防万一,不过有些像IDE FLOPPY,IDE TAPE 就不用选啦,毕竟现在一般没人用软驱与磁带。
发表于 2007-9-17 11:50:48 | 显示全部楼层
这个问题很精典!
把金大侠的那篇编译内核的帖子好好看几遍。那篇帖子在基础版置顶帖。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-17 22:46:36 | 显示全部楼层
Post by tfkdmwmqtr
这个问题很精典!
把金大侠的那篇编译内核的帖子好好看几遍。那篇帖子在基础版置顶帖。

==============================================
谢谢,刚来linuxsir就爱上她了,感觉linuxsir很温馨,朋友们很热情,这么快就有人回复了,谢谢,呵呵
回复 支持 反对

使用道具 举报

发表于 2007-9-17 23:00:08 | 显示全部楼层
sata硬盘要选sata驱动的 好像ext2也的选
回复 支持 反对

使用道具 举报

发表于 2007-9-17 23:03:37 | 显示全部楼层
也可以考虑直接把ubu的config文件拷贝到linux-2.6.22-rc3目录下 make oldconfig
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-18 08:39:46 | 显示全部楼层
Post by smallman
也可以考虑直接把ubu的config文件拷贝到linux-2.6.22-rc3目录下 make oldconfig

有想过,但在ubuntu里没找着内核源代码,可能是安装的时候没安装源码,后来安装slackware的内核源代码(利用他自带的配置文件)也成功了。建议初学者参考这篇文章:http://www.linuxsir.cn/bbs/showthread.php?t=213049 (如何学习编译内核──索引篇)
直接用slcackware的config去编译内核
回复 支持 反对

使用道具 举报

发表于 2007-9-18 14:24:44 | 显示全部楼层
我也是这个问题。想问楼主,你说的选择IDE驱动,能否详细说明你在make menuconfig时改了哪些吗?

谢谢!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-9-18 15:24:19 | 显示全部楼层
Post by bdren
我也是这个问题。想问楼主,你说的选择IDE驱动,能否详细说明你在make menuconfig时改了哪些吗?

谢谢!

make menuconfig时具体位置为:Device Drivers/lATA/ATAPI/MFM/RLL support/ 将里面带IDE的通通选上,呵呵,以防万一,不过有些像IDE FLOPPY,IDE TAPE 就不用选啦,毕竟现在一般没人用软驱与磁带。
回复 支持 反对

使用道具 举报

发表于 2007-9-18 15:44:40 | 显示全部楼层
Post by murenjian
make menuconfig时具体位置为:Device Drivers/lATA/ATAPI/MFM/RLL support/ 将里面带IDE的通通选上,呵呵,以防万一,不过有些像IDE FLOPPY,IDE TAPE 就不用选啦,毕竟现在一般没人用软驱与磁带。


谢谢。试一试先
回复 支持 反对

使用道具 举报

发表于 2007-9-18 16:18:53 | 显示全部楼层
还是不行啊!
我使用的是vmware,内核是2.6.22,已经加上了scsi支持,你说的IDE也加上了。但是还是不行。
Why?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表