LinuxSir.cn,穿越时空的Linuxsir!

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

kernel panic 是否只是编译内核不当引起的错误?

[复制链接]
发表于 2008-4-2 14:59:06 | 显示全部楼层 |阅读模式
我已经很努力很仔细的重新编译了n此内核了
仍然是这个错误

VFS:Cannot open root device "hdb2" or unknown-block(0,0)
Please append a correct "root=" boot option
kernel panic: VFS: Unable to mount root fs on unknown-block(0,0)

clfs中是否还有其他步骤也会导致类似错误呢
发表于 2008-4-2 15:51:15 | 显示全部楼层
文件系统发生错误也会这样的。
回复 支持 反对

使用道具 举报

发表于 2008-4-2 16:41:30 | 显示全部楼层
多了,比方说,你给了错误的内核参数,编写grub时候出点错,都会导致这个问题发生。
回复 支持 反对

使用道具 举报

发表于 2008-4-2 22:57:10 | 显示全部楼层
跟内核配置中硬盘控制器驱动配置的关系很大,建议仔细检查一下,把需要的驱动编译到内核中去。
回复 支持 反对

使用道具 举报

发表于 2008-4-3 11:36:21 | 显示全部楼层
clfs没有做过,建议好好看看vmlinuz、initrd、system.map这几个文件的分析,另外看一下文件系统在系统启动时的挂载问题(可结合内核分析一下,大致分析一下就可以),这对于问题的理解很有好处。
根据启动时显示的出错信息(VFS: Unable to mount root fs on unknown-block(0,0)
),很显然是VFS没有挂载上根文件系统,而要真正弄懂这个问题,你就要知道vmlinuz、initrd这两个文件的关系。或者可以参考一下我对于这个问题的解决。(标题: Kernel panic…… )
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-3 20:27:05 | 显示全部楼层
Post by luozhenwu;1834327
clfs没有做过,建议好好看看vmlinuz、initrd、system.map这几个文件的分析,另外看一下文件系统在系统启动时的挂载问题(可结合内核分析一下,大致分析一下就可以),这对于问题的理解很有好处。
根据启动时显示的出错信息(VFS: Unable to mount root fs on unknown-block(0,0)
),很显然是VFS没有挂载上根文件系统,而要真正弄懂这个问题,你就要知道vmlinuz、initrd这两个文件的关系。或者可以参考一下我对于这个问题的解决。(标题: Kernel panic…… )


vmlinuz 是内核镜像吧 initrd可以动态的加在一些硬件驱动,主要是为了应对硬件改变?
如果硬件不变只要把所需要的驱动编译进内核就不需要initrd
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-3 20:48:56 | 显示全部楼层
我将我host机器上的 vmlinuz initrd 这个两个文件拷进target系统中
系统可以启动并能正常运行

-----这样就可以排除前面有位兄弟所说的文件系统错误吧

然后我就在target (运行的是host的内核)系统下直接编译内核,又经过了相当长时间的menuconfig
我怕再出现kernel panic 所以内核编译device drvier 下面的 ata/atapi/pfm/rll 分项下面的都尽量编译到内核

结果没有kernel panic的错误了.....
VFS:Mounted root (ext3 filesystem) readonly
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-3 20:51:27 | 显示全部楼层
但是却出现了下面的错误

INIT:  version 2.86 booting
Mounting kernel-based file systems: /proc/sys      [OK]
Creating /dev intmpfs....                                            [OK]
Copying static entries....                                            [OK]
Setting Permissons on /dev/shm.....                        [OK]
Starting udevd......                                            
udevd[846]: init_udevd_socket: error getting socket: Address family not supported by protocol
udevd[846]: main: error initializing udevd socket: Illegal seek     [FAIL]

Performing Coldplugging....                           好长时间后 [OK]
Mounting file systems....
/dev/hdb2:
The superblock could not be read or does not describe a correct ext2 filesystem If the device is valid and it really contains an ext2 filesystem (and not swap or ufs or someting else), then the superblock is corrupt, an you might try running e2fsck with an alternalte superblock:
          e2fsck -b 8139 <device>
                                                                                             [FAIL]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-3 20:53:17 | 显示全部楼层
我觉得
udevd[846]: init_udevd_socket: error getting socket: Address family not supported by protocol
udevd[846]: main: error initializing udevd socket: Illegal seek [FAIL]

这个是主要的,哪位兄弟给解释一下阿
回复 支持 反对

使用道具 举报

发表于 2008-4-3 22:07:14 | 显示全部楼层

这个问题我以前遇到到过,是mount命令属性问题

请查看mount的用户和组是否已经设置为root,否则该命令无法正确执行,导致错误!

详细说明请参考:http://linuxman.blog.ccidnet.com ... -itemid-230397.html

关于Kernel panic 的问题,也可以看看http://linuxman.blog.ccidnet.com ... -itemid-226147.html
回复 支持 反对

使用道具 举报

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

本版积分规则

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