LinuxSir.cn,穿越时空的Linuxsir!

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

VFS 是什么东西?编译内核时在哪个选项配置?

[复制链接]
发表于 2005-10-10 22:38:55 | 显示全部楼层 |阅读模式
通过
make menuconfig
make
make modules
make modules_install
make install


命令
编译了2.6.13.2的内核
但是重启后

出现了如下错误提示

VFS:Connot open root device "hda12" or unknown-block(0,0)

kernel panic--not syncing:VFS:Uable to mount root fs on unknown-block(0,0)








我想一定是VFS   在哪里去掉了

但是我看了好几遍file system的 选项,没有呀


不知道什么原因


编译三次了

一直是这个错误


请教呀
 楼主| 发表于 2005-10-11 08:47:41 | 显示全部楼层
又编了一夜

如果按照默认编译就可以通过

不知道到底在哪个地方少选了

个人认为file system那个地方没有选错
只会多选不会少选
回复 支持 反对

使用道具 举报

发表于 2005-10-11 09:05:08 | 显示全部楼层
grub配置看看
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-11 12:22:44 | 显示全部楼层
title Debian GNU/Linux, kernel 2.6.11-1-386
root (hd0,11)
kernel /vmlinuz-2.6.13.2 root=/dev/hda12 ro
initrd /initrd.img-2.6.13.2



应该没有什么问题吧



如果按照默认选项编译内核就不会出问题

可是那样就跟没编译一样
回复 支持 反对

使用道具 举报

发表于 2005-10-11 12:36:27 | 显示全部楼层
1。看看你是否去掉了设备驱动里面的IDE或scsi里面的sata支持?
2。文件系统没有问题。
3。initrd 没有正确生成。(make-kpkg --initrd xxx; kpkg -i xxx)
4。更新你的grub,grub-install xxx; update-grub;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-11 19:03:24 | 显示全部楼层
scsi里面的sata支持我已经去掉了
因为我没有scsi设备
非常老的PII笔记本肯定不会有吧


IDE是肯定不会去掉的

这个偶知道
initrd 已经生成
没有任何问题

更新了grub

不过是手动修改menu.lst

而且我如果按照默认选项编译起来就能用

肯定是make menuconfig
时去掉了一个什么东西

但是又找不出来
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-11 21:40:56 | 显示全部楼层
VFS:Cannot open root device "hdb2" 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)

以下是由网友提供的一些解决方法,以供参考:

原因一:ext2文件格式支持没有编译进内核,不论你使用ext3或其它文件格式,ext2支持都必须直接编译进内核,不能以内核模块形式编译。

原因二:如果使用initrd.img启动系统,则cromfs必须编译进内核。(由西安交通大学的张成分享)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-10-11 22:02:56 | 显示全部楼层
VFS:Cannot open root device "hdb2" 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)

以下是由网友提供的一些解决方法,以供参考:

原因一:ext2文件格式支持没有编译进内核,不论你使用ext3或其它文件格式,ext2支持都必须直接编译进内核,不能以内核模块形式编译。

原因二:如果使用initrd.img启动系统,则cromfs必须编译进内核。(由西安交通大学的张成分享)
回复 支持 反对

使用道具 举报

发表于 2005-10-12 08:23:02 | 显示全部楼层
Post by skykingf

原因一:ext2文件格式支持没有编译进内核,不论你使用ext3或其它文件格式,ext2支持都必须直接编译进内核,不能以内核模块形式编译。

原因二:如果使用initrd.img启动系统,则cromfs必须编译进内核。(由西安交通大学的张成分享)


一,好象不是的,我的ext2/3都是模块,因为我的主硬盘都是reiserfs的,另一块硬盘上有ext3

二,好象在blog上看到过。不过认为自己编译没有必要用initrd.img
回复 支持 反对

使用道具 举报

发表于 2005-10-12 12:13:43 | 显示全部楼层
正好前段时间为了让我的IBM240Z笔记本上安装好的SARGE支持BOOT SPLASH IMAGE,重新编译内核,就碰到过这种问题,最后解决了,现在记录下我的经验:

1. 首先建议不要直接配置一个新内核,这点非常重要(当然你自认为很熟悉那些内核参数,那没问题),你可以用你安装好/boot目录下的 config-2.6.12-386(这是我机子上的文件名,你要换成你机子上的相应文件名) 这个文件来作为新的内核配置文件的基础 ,执行 cp /boot/config-2.6.12-386 /usr/src/linux-2.6.13.2/.config 然后执行 make menuconfig ,然后在此基础上进行内核的配置,注意不要轻易将原来的配置去掉,除非你非常清楚可行,我为了支持BOOTSPLASHIMAGE,将文件系统和硬盘的配置中原来为M的都配置成*了,最后才成功的, 在此之前自己配置新内核10多次,就没成功过,
2,出现
VFS:Cannot open root device "hdb2" 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)
的原因,我当时在网上查了很多资料,众口纷纭,害我照着配了编译了10多次核心,这种提示的根本原因就是因为文件系统和硬盘的东西没有配置到核心中去!!!还有 initrd.img 也不是必须的,你将文件系统和硬盘的东西配置到核心中去就不需要它了,因为BOOTSPLASHIMAGE需要的标准的生成标准initrd.img.splash而DEBIAN生成的INITRD。IMG是打过自己的补丁的,所以为了使用BOOTSPLASHIMAGE,就不能实用DEBIAN的INITRD。IMG,所以在 make-kpkg 时不能带上 --initrd 参数, 如果你在出现kernel panic-not syncing: VFS:Unable to mount root fs on unknow-block(0,0) 的核心配置基础上make-kpkg编译时加上 --initrd 就不会出现这个错误了,
但是此时你就不能使用BOOTSPLASHIMAGE了,呵,呵。。。(这段写得有点乱,有空再整理了
回复 支持 反对

使用道具 举报

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

本版积分规则

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