linux内核升级出现错误:vfs cannot open root device sda2 or unknown-block 0 0

laokongzhaung 2012-01-12 02:49:06
环境:window xp下虚拟机中redhatlinux 9.0,原始内核2.4.20-8,想升级到2.6.18
内核编译成功,就是在启动的时候总是出现问题:
VFS:mounted root (ext2 filesystem)
red hat nash version 3.4.42 starting
Mounting /proc filesystem
Creating block devices
Input:AT translated set 2 keyboard as /class/input/input0
vfs cannot open root device sda2 or unknown-block 0 0
Please append a correct "root=" boot option
Kernel panic -not syncing: VFS:Unable to mount root fs on unknown-block(0,0)


我的grub.conf 中的内容是:


# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/sda2
# initrd /initrd-version.img
#boot=/dev/sda
default=2
timeout=10
splashimage=(hd0,0)/grub/splash.xpm.gz
title Red Hat Linux (2.6.18)
root (hd0,0)
kernel /vmlinuz-2.6.18 ro root=LABEL=/
initrd /initrd-2.6.18.img


我把
kernel /vmlinuz-2.6.18 ro root=LABEL=/中的root=LABEL=/改成root=/dev/sda2就出现了上述错误,
如果不改就会有错误:
VFS: Cannot open root device "LABEL" or unknown-block(0,0)

我df的结果是:
[root@localhost grub]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 18524524 8714756 8868764 50% /
/dev/sda1 101089 17376 78494 19% /boot
none 515444 0 515444 0% /dev/shm
.host:/ 204804620 106086284 98718336 52% /mnt/hgfs

这显示根文件系统/就是在/dev/sda2分区上的啊 ,那为何还会加载不上文件系统fs呢?

查了很多资料,试了不少方法也没解决,如
http://www.lslnet.com/linux/dosc1/60/linux-394706.htm
http://topic.csdn.net/u/20080715/14/81d32494-655d-4b0e-9480-fd5ebdc2e05e.html

希望共同探讨,能搞出一个解决方法来
...全文
1156 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackyjkchen 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 laokongzhaung 的回复:]

引用 3 楼 jackyjkchen 的回复:

引用 2 楼 deep_pro 的回复:
又见red hat 9这个老妖怪 多少年前的东西啊,你的两个内核版本差异太大,不是那么好解决的

以我做LFS的经验,这么大跨度应该是能用的,而且网上也有移植2.6到RH9的教程

你的问题是没有用initrd,或者编译的时候把Buslogic和Intel PXII等几个磁盘驱动选成内建
……
[/Quote]
那就自己make menuconfig调编译选项吧,2.4的initrd能不能支持2.6的就说不好了

laokongzhaung 2012-01-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jackyjkchen 的回复:]

引用 2 楼 deep_pro 的回复:
又见red hat 9这个老妖怪 多少年前的东西啊,你的两个内核版本差异太大,不是那么好解决的

以我做LFS的经验,这么大跨度应该是能用的,而且网上也有移植2.6到RH9的教程

你的问题是没有用initrd,或者编译的时候把Buslogic和Intel PXII等几个磁盘驱动选成内建

继续努力折腾吧,这一关过了能力会上一个台阶

……
[/Quote]
我是用了initrd的啊,grub文件中是有用到的
jackyjkchen 2012-01-12
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 deep_pro 的回复:]
又见red hat 9这个老妖怪 多少年前的东西啊,你的两个内核版本差异太大,不是那么好解决的
[/Quote]
以我做LFS的经验,这么大跨度应该是能用的,而且网上也有移植2.6到RH9的教程

你的问题是没有用initrd,或者编译的时候把Buslogic和Intel PXII等几个磁盘驱动选成内建

继续努力折腾吧,这一关过了能力会上一个台阶

我做过一个2.6.16向下移植2.4的LFS。请注意是向下移植,难度比升级更高,所以你这个理论上肯定可以
deep_pro 2012-01-12
  • 打赏
  • 举报
回复
又见red hat 9这个老妖怪 多少年前的东西啊,你的两个内核版本差异太大,不是那么好解决的
laokongzhaung 2012-01-12
  • 打赏
  • 举报
回复
我fstab文件内容是:

[root@localhost grub]# cat /etc/fstab
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
none /dev/pts devpts gid=5,mode=620 0 0
none /proc proc defaults 0 0
none /dev/shm tmpfs defaults 0 0
none /sys sysfs defaults 0 0
/dev/sda3 swap swap defaults 0 0
/dev/cdrom /mnt/cdrom udf,iso9660 noauto,owner,kudzu,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner,kudzu 0 0

根据上面显示,都是ext3文件系统,但是我看启动的时候挂载的貌似是ext2:
VFS:mounted root (ext2 filesystem)
是不是这有问题?

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧