软件工程

本类阅读TOP10

·PHP4 + MYSQL + APACHE 在 WIN 系统下的安装、配置
·Linux 入门常用命令(1)
·Linux 入门常用命令(2)
·使用 DCPROMO/FORCEREMOVAL 命令强制将 Active Directory 域控制器降级
·DirectShow学习(八): CBaseRender类及相应Pin类的源代码分析
·基于ICE方式SIP信令穿透Symmetric NAT技术研究
·Windows 2003网络负载均衡的实现
·一网打尽Win十四种系统故障解决方法
·数百种 Windows 软件的免费替代品列表
·收藏---行百里半九十

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
升级2.6.5内核导致Kernel panic:VFS 无法mount根文件系统的原因

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

2004-05-21 01:30:14 from http://tendant.mysmth.net

前两天为了装win4lin升级了一下我的debian的内核,可是升级完后却发现死活也启动不了,总是在mount根目录的时候就报错了,到处找原因都找不到,今天总算是被我找到了,hehe,小小的得意一下

错误现象:

发信人: tendant (tendant), 信区: LinuxApp
标  题: 升级2.6.5内核失败,VFS的问题!
发信站: BBS 水木清华站 (Tue May 18 19:33:51 2004), 站内

刚才升级内核到2.6.5,编译过程一切正常
安装后重启,报错:

VFS: cannot open root device "307" or unknown block (3,7)
please append a correct "root=" boot option
Kernel panic: VFS: unable to mount root fs on unknown-block (3,7)

我的系统是debian,根目录在/dev/hda7,/boot目录在/dev/hda6
分区格式是ext3
用lilo引导
编译内核选项中将ext3和ext2都直接编译到内核,
也添加了ide的内核支持

在水木上也问了很多人,可是都没有找到病因,有的说引导程序有问题,有的说做一个initrd的镜像文件。

的确用mkinitrd命令生成initrd文件,并在lilo里设好启动参数后就ok,但是用了initrd后启动的引导过程会很慢,而且我以前的 2.6.0的内核就没有这个文件也可以启动,所以考虑是不是有其他的方法,在编译内核选项中一通狂找总算是把它挖出来了,原来还是内核编译时的某些选项设置有问题.

只需要在将这个选项编译进内核就行了:File System--〉Pseudo File System --〉Automatically mount at boot

内核参数说明:CONFIG_DEVFS_MOUNT

  This option appears if you have CONFIG_DEVFS_FS enabled setting this to 'Y' will make the kernel automatically mount devfs onto /dev when the system is booted the init thread is started. You can override this with the "devfs=nomount" boot option.

这个选项使得在系统初始化前就先把文件系统装载到/dev上

这样就正好解决了系统没有启动之前没有装载文件系统,而文件系统的驱动却还在没有装载的文件系统中,结果造成死循环的问题.

重编内核,修改引导程序,搞定了!




相关文章

相关软件