耗了一星期编译LFS, 始终kernel panic这个老问题,望大家相助
时间:2008-12-08
来源:互联网
以前编译内核的时候也出现过这个原因,不过以前不是编译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
作者: octps 发布时间: 2008-12-08
因为磁盘慢了就是这样的
看看我的帖子吧,里面有menu.lst的配置
http://www.linuxsir.org/bbs/thread340152.html
作者: hhts1987 发布时间: 2008-12-08
sda?sdb?hda?hdb?
神奇的事情有时还真会发生
作者: qufo 发布时间: 2008-12-08
作者: hhts1987
这个是配置问题
因为磁盘慢了就是这样的 看看我的帖子吧,里面有menu.lst的配置 http://www.linuxsir.org/bbs/thread340152.html |
作者: octps 发布时间: 2008-12-08
作者: qufo
还有一点 ,楼主检查一下你的硬盘在/dev里到底是什么设备.
sda?sdb?hda?hdb? 神奇的事情有时还真会发生 |
sda1
sda2
sda3
sda4
sda5
sdb
sdb1
sdb2
sdb3
sdb4
sdb5
没有其他sd*了
作者: octps 发布时间: 2008-12-08
作者: hhts1987
这个是配置问题
因为磁盘慢了就是这样的 看看我的帖子吧,里面有menu.lst的配置 http://www.linuxsir.org/bbs/thread340152.html |
我在发帖之前,看过你上面的这个帖子,有如下疑问:
你把LFS是装在u盘上, 那么menu.lst 里怎么会是(hd0,4),hda5?
U盘在你的系统里识别为hd0?
作者: octps 发布时间: 2008-12-08
作者: octps
恩,这个原因我倒是第一次听说过! 哈哈
|
作者: hhts1987 发布时间: 2008-12-08
而我是从u盘启动,而且grub是装在u盘上的,当然要写成hd0了,你弄多了,仔细分析了,就会明白的
作者: hhts1987 发布时间: 2008-12-08
作者: hhts1987
我把我的u盘量产了,分了两个区,在ubuntu下显示的是sdb1 sdb5
而我是从u盘启动,而且grub是装在u盘上的,当然要写成hd0了,你弄多了,仔细分析了,就会明白的 |
作者: octps 发布时间: 2008-12-08
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都找不到了
哎! 这个问题不知道什么时候能解决阿!
作者: octps 发布时间: 2008-12-08
我编译lfs时是在ubuntu下
u盘被识别sdb1(10MB用来作启动的),sdb5(lfs系统)
所以安装grub时使用这个命令
grub>root (hd1,4)
grub> setup (hd1)/*(为什么呢,因为我要安装到那,而你在这里用hd0,就表示你把grub安装在hd0,你的menu.lst就不应该写成hd0了,相反应该写成hd1,如果你写成hd0,就必须把grub装在你移动硬盘上(运行grub>setup (hd1))。要理智的做事,你有qq没?我加你)*/
grub>quit
而$LFS/boot/menu.lst(也就是u盘的lfs系统的menu.lst)
写成hd0,而不是hd1,因为你是从u盘启动,要弄清楚两个不同的环境,以及两个不同的grub
如果你根本不想把grub弄在移动盘上,你就只编辑你现在的ubuntu系统里面的menu.lst,没必要执行官方步骤里的grub安装操作。。
你要作的,就是把lfs启动项加在ubuntu的/boot/grub/menu.lst下,并修改kernal及root为
root (hd1,1)
kernel /boot/lfskernel-2.6.27.4 root=/dev/sdb2), 使之指向你的移动硬盘上
本地盘为(hd0),移动盘为(hd1)
如果你想安装在移动盘上
按照你的情况我写下命令吧
在你宿主系统上(ubuntu)
执行:
grub>root (hd1,1)
grub>setup (hd1)
grub>quit
你说你现在看不到ubuntu了,那应该是你安装grub时出的问题,你可以启动livecd,把你的ubuntu分区挂上去,修改你的ubuntu启动的相关menu.lst
附上我的ubutnumenu.lst 可以作修复参考
:
/////////////////////////////////////////////////////////
title Ubuntu 8.04.1, kernel 2.6.24-19-generic
root (hd0,8)
kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=50ca1dcf-ccdc-49ca-8892-674f84e5c6f0 ro quiet splash locale=zh_CN
initrd /boot/initrd.img-2.6.24-19-generic
quiet
title Ubuntu 8.04.1, kernel 2.6.24-19-generic (recovery mode)
root (hd0,8)
kernel /boot/vmlinuz-2.6.24-19-generic root=UUID=50ca1dcf-ccdc-49ca-8892-674f84e5c6f0 ro single
initrd /boot/initrd.img-2.6.24-19-generic
title Ubuntu 8.04.1, memtest86+
root (hd0,8)
kernel /boot/memtest86+.bin
quiet
### END DEBIAN AUTOMAGIC KERNELS LIST
# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root
# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda1
title Microsoft Windows XP Professional
root (hd0,0)
savedefault
makeactive
chainloader +1
//////////////////////////////////////////////////////////
最后再跟你说一次,内核不能找到root fs 是因为磁盘慢(硬盘比移动盘快多了)
你在kernal那行必须加上这个“rw rootdelay=10“ (引号里面的)
作者: hhts1987 发布时间: 2008-12-08
作者: hhts1987
楼上的我要跟你说一下情况
我编译lfs时是在ubuntu下 u盘被识别sdb1(10MB用来作启动的),sdb5(lfs系统) 所以安装grub时使用这个命令 ... 最后再跟你说一次,内核不能找到root fs 是因为磁盘慢(硬盘比移动盘快多了) 你在kernal那行必须加上这个“rw rootdelay=10“ (引号里面的) |
作者: 许木木 发布时间: 2008-12-08
作者: hhts1987
楼上的我要跟你说一下情况
我编译lfs时是在ubuntu下 u盘被识别sdb1(10MB用来作启动的),sdb5(lfs系统) 所以安装grub时使用这个命令 grub>root (hd1,4) grub> setup (hd1)/*(为什么呢,因为我要安装到那,而你在这里用hd0,就表示你把grub安装在hd0,你的menu.lst就不应该写成hd0了,相反应该写成hd1,如果你写成hd0,就必须把grub装在你移动硬盘上(运行grub>setup (hd1))。要理智的做事,你有qq没?我加你)*/ grub>quit 而$LFS/boot/menu.lst(也就是u盘的lfs系统的menu.lst) 写成hd0,而不是hd1,因为你是从u盘启动,要弄清楚两个不同的环境,以及两个不同的grub ... ... savedefault makeactive chainloader +1 ////////////////////////////////////////////////////////// 最后再跟你说一次,内核不能找到root fs 是因为磁盘慢(硬盘比移动盘快多了) 你在kernal那行必须加上这个“rw rootdelay=10“ (引号里面的) |
昨天夜里快3点的时候,总于解决了kernel panic , VFS unable to mount 的问题。
rw rootdelay=10 的参数我加过,可能存在这个问题,但是我的情况不是磁盘慢的问题。
之前因为编译过2此2.6.27.4内核,时间长的要命,所以不想再编译内核。
但是昨天实在是没办法,只好重新编译内核,把内核配置中跟SCSI ,SATA有关的都编译进内核,由于我不知道具体缺什么东西,然后按照LFS book的步骤进行设置,kernel panic , VFS unable to mount 总于没有了!
作者: octps 发布时间: 2008-12-08
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28