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上
这样就正好解决了系统没有启动之前没有装载文件系统,而文件系统的驱动却还在没有装载的文件系统中,结果造成死循环的问题.
重编内核,修改引导程序,搞定了!