LinuxSir.cn,穿越时空的Linuxsir!

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

耗了一星期编译LFS, 始终kernel panic这个老问题,望大家相助

[复制链接]
发表于 2008-12-7 21:11:50 | 显示全部楼层 |阅读模式
请知道原因的高手帮帮忙,解决了我会把我这个问题的解决思路作一下总结,发一个帖子
以前编译内核的时候也出现过这个原因,不过以前不是编译LFS,以前编译多了,有时候kernel panic就没有出现了
*********************************************************************************************

个案总结:
尝试在SCSI, SATA硬盘上安装LFS的时候,轻一定注意内核的编译配置,把SCSI  SATA的驱动都加进去。

*********************************************************************************************

Lenovo 笔记本,2块硬盘,sda 是笔记本自己的硬盘,sdb 是日立SATA usb 移动硬盘。
Ubuntu 8.10
FLS 6.4
最后出现kernel panic, VFS unable to mount root fs  on unknow block (0,0)

chroot 之前的mount 的结果是:

/dev/sda2 on / type ext3 (rw,relatime,errors=remount-ro)     原来系统装在sda2上
tmpfs on /lib/init/rw type tmpfs (rw,nosuid,mode=0755)
/proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,nosuid,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=620)
fusectl on /sys/fs/fuse/connections type fusectl (rw)
lrm on /lib/modules/2.6.27-7-generic/volatile type tmpfs (rw,mode=755)
securityfs on /sys/kernel/security type securityfs (rw)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
gvfs-fuse-daemon on /home/tonutu/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=tonutu)
/dev/sdb2 on /mnt/lfs type ext3 (rw)        LFS系统装在sdb2上


linux 2.6 27 内核编译好了之后,我是从chroot里退出。 在工作系统(也就是Ubuntu 8.10系统)下的menu.lst 加入
title                 LFS 6.4
root                 (hd1,1)               
kernel                 /boot/lfskernel-2.6.27.4 root=/dev/sdb2

******************************
我加一点自己的理解:
上面步骤完全按照 LFS-BOOK-6.4-HTML  上说的做,顺利编译通过,但是在做
Chapter 8. Making the LFS System Bootable  这章的时候,既配置grub的时候,我觉得根据我自己的情况,我不需要在chroot进入/mnt/lfs 之后去运行grub.
所以我直接在ubuntu 的menu.lst 里加了上面的grub启动项
*****************************
下面是linux 内核的.config文件部分内容,关于SCSI 驱动的,按照LFS-BOOK-6.4-HTML教程的内容,编译生成的只有
arch/x86/boot/bzImage
System.map
没有initrd文件,请大家注意一下,所以,就不可能春在把SCSI驱动作为模块加载的问题。
reboot,启动,选择LFS 6.4项,
还是出现  
VFS Can not open root device sdb2 or unknow_block (0,0)
please append a correct root= boot option
kernel panic not syncing  VFS unable to mount root fs on unknow_block (0,0)
这个错误。

我看了一下别人的错误,都是kernel panic, 但是有些人不是unknow_block (0,0), 括号里的数字变化,比如 unknow_block (3,1) 类似这样子。
弄这个东西耗了我快一个星期的时间了,查了很多,自己实在是解决不了,贴出来,望大家给点意见

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
# CONFIG_SCSI_TGT is not set
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=y
CONFIG_BLK_DEV_SR_VENDOR=y
CONFIG_CHR_DEV_SG=y
# CONFIG_CHR_DEV_SCH is not set

#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
# CONFIG_SCSI_MULTI_LUN is not set
CONFIG_SCSI_CONSTANTS=y
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
CONFIG_SCSI_WAIT_SCAN=m

#
# SCSI Transports
#
CONFIG_SCSI_SPI_ATTRS=y
# CONFIG_SCSI_FC_ATTRS is not set
CONFIG_SCSI_ISCSI_ATTRS=y
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set
# CONFIG_SCSI_SRP_ATTRS is not set
# CONFIG_SCSI_LOWLEVEL is not set
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
# CONFIG_SCSI_DH is not set
CONFIG_ATA=y
# CONFIG_ATA_NONSTANDARD is not set
CONFIG_ATA_ACPI=y
CONFIG_SATA_PMP=y
CONFIG_SATA_AHCI=y
# CONFIG_SATA_SIL24 is not set
CONFIG_ATA_SFF=y
# CONFIG_SATA_SVW is not set
CONFIG_ATA_PIIX=y
# CONFIG_SATA_MV is not set
# CONFIG_SATA_NV is not set
# CONFIG_PDC_ADMA is not set
# CONFIG_SATA_QSTOR is not set
# CONFIG_SATA_PROMISE is not set
# CONFIG_SATA_SX4 is not set
# CONFIG_SATA_SIL is not set
# CONFIG_SATA_SIS is not set
# CONFIG_SATA_ULI is not set
# CONFIG_SATA_VIA is not set
# CONFIG_SATA_VITESSE is not set
# CONFIG_SATA_INIC162X is not set
# CONFIG_PATA_ACPI is not set
# CONFIG_PATA_ALI is not set
CONFIG_PATA_AMD=y
# CONFIG_PATA_ARTOP is not set
# CONFIG_PATA_ATIIXP is not set
# CONFIG_PATA_CMD640_PCI is not set
# CONFIG_PATA_CMD64X is not set
# CONFIG_PATA_CS5520 is not set
# CONFIG_PATA_CS5530 is not set
# CONFIG_PATA_CS5535 is not set
# CONFIG_PATA_CS5536 is not set
# CONFIG_PATA_CYPRESS is not set
# CONFIG_PATA_EFAR is not set
CONFIG_ATA_GENERIC=y
# CONFIG_PATA_HPT366 is not set
# CONFIG_PATA_HPT37X is not set
# CONFIG_PATA_HPT3X2N is not set
# CONFIG_PATA_HPT3X3 is not set
# CONFIG_PATA_IT821X is not set
# CONFIG_PATA_IT8213 is not set
# CONFIG_PATA_JMICRON is not set
# CONFIG_PATA_TRIFLEX is not set
# CONFIG_PATA_MARVELL is not set
CONFIG_PATA_MPIIX=y
CONFIG_PATA_OLDPIIX=y
# CONFIG_PATA_NETCELL is not set
# CONFIG_PATA_NINJA32 is not set
# CONFIG_PATA_NS87410 is not set
# CONFIG_PATA_NS87415 is not set
# CONFIG_PATA_OPTI is not set
# CONFIG_PATA_OPTIDMA is not set
# CONFIG_PATA_PCMCIA is not set
# CONFIG_PATA_PDC_OLD is not set
# CONFIG_PATA_RADISYS is not set
# CONFIG_PATA_RZ1000 is not set
# CONFIG_PATA_SC1200 is not set
# CONFIG_PATA_SERVERWORKS is not set
# CONFIG_PATA_PDC2027X is not set
# CONFIG_PATA_SIL680 is not set
# CONFIG_PATA_SIS is not set
# CONFIG_PATA_VIA is not set
# CONFIG_PATA_WINBOND is not set
CONFIG_PATA_SCH=y
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
# CONFIG_MD_LINEAR is not set
# CONFIG_MD_RAID0 is not set
# CONFIG_MD_RAID1 is not set
# CONFIG_MD_RAID10 is not set
# CONFIG_MD_RAID456 is not set
# CONFIG_MD_MULTIPATH is not set
# CONFIG_MD_FAULTY is not set
CONFIG_BLK_DEV_DM=y
# CONFIG_DM_DEBUG is not set
# CONFIG_DM_CRYPT is not set
# CONFIG_DM_SNAPSHOT is not set
CONFIG_DM_MIRROR=y
CONFIG_DM_ZERO=y
# CONFIG_DM_MULTIPATH is not set
# CONFIG_DM_DELAY is not set
# CONFIG_DM_UEVENT is not set
# CONFIG_FUSION is not set
发表于 2008-12-7 21:22:11 | 显示全部楼层
这个是配置问题
因为磁盘慢了就是这样的
看看我的帖子吧,里面有menu.lst的配置

http://www.linuxsir.cn/bbs/thread340152.html
回复 支持 反对

使用道具 举报

发表于 2008-12-7 21:27:04 | 显示全部楼层
还有一点 ,楼主检查一下你的硬盘在/dev里到底是什么设备.
sda?sdb?hda?hdb?

神奇的事情有时还真会发生
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-7 21:38:10 | 显示全部楼层
Post by hhts1987;1920624
这个是配置问题
因为磁盘慢了就是这样的
看看我的帖子吧,里面有menu.lst的配置

http://www.linuxsir.cn/bbs/thread340152.html


恩,这个原因我倒是第一次听说过! 哈哈
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-7 21:43:09 | 显示全部楼层
Post by qufo;1920634
还有一点 ,楼主检查一下你的硬盘在/dev里到底是什么设备.
sda?sdb?hda?hdb?

神奇的事情有时还真会发生


sda
sda1
sda2
sda3
sda4
sda5

sdb
sdb1
sdb2
sdb3
sdb4
sdb5
没有其他sd*了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-7 21:47:04 | 显示全部楼层
Post by hhts1987;1920624
这个是配置问题
因为磁盘慢了就是这样的
看看我的帖子吧,里面有menu.lst的配置

http://www.linuxsir.cn/bbs/thread340152.html



我在发帖之前,看过你上面的这个帖子,有如下疑问:
你把LFS是装在u盘上, 那么menu.lst 里怎么会是(hd0,4),hda5?
U盘在你的系统里识别为hd0?
回复 支持 反对

使用道具 举报

发表于 2008-12-7 21:58:52 | 显示全部楼层
Post by octps;1920640
恩,这个原因我倒是第一次听说过! 哈哈


你不听老人言哈,让你欲哭无泪,嘿嘿
回复 支持 反对

使用道具 举报

发表于 2008-12-7 22:11:18 | 显示全部楼层
我把我的u盘量产了,分了两个区,在ubuntu下显示的是sdb1 sdb5
而我是从u盘启动,而且grub是装在u盘上的,当然要写成hd0了,你弄多了,仔细分析了,就会明白的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-7 22:23:50 | 显示全部楼层
Post by hhts1987;1920661
我把我的u盘量产了,分了两个区,在ubuntu下显示的是sdb1 sdb5
而我是从u盘启动,而且grub是装在u盘上的,当然要写成hd0了,你弄多了,仔细分析了,就会明白的

yup, i have  tried that. i set my lap-top to boot from my usb external disk , but still failed, mybe there is somewhere i configured incorretly , i will try it rightnow and show u the result. Thanks man
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-12-7 23:29:42 | 显示全部楼层
我把笔记本内置的硬盘在BIOS的启动列表里删掉之后,把这个USB移动硬盘作为第一个启动盘,启动之后,我发现很奇怪的现象:

grub 启动列表里的内容并不是 menu.lst里的内容,只有FLS 6.4.  但是我的menu.lst 有ubuntu 的启动项却没有显示!  奇怪。

另外,这个grub的设置是这样的

grub> root (hd0,1)
grub> setup (hd0)

menu.lst 如下
title                 LFS 6.4
root                 (hd0,1)               
kernel                 /boot/lfskernel-2.6.27.4 root=/dev/sda2


按照hhts1987的说法,现在只剩下一个盘子(既我的日立移动硬盘),所以这个硬盘现在可以是hd0了,但是这次直接是grub 之后就没有了。也就是说,连内核lfskernel-2.6.27.4都找不到了

哎! 这个问题不知道什么时候能解决阿!
回复 支持 反对

使用道具 举报

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

本版积分规则

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