LinuxSir.cn,穿越时空的Linuxsir!

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

装在U盘上的linux启动问题(与initrd.gz文件有关)

[复制链接]
发表于 2009-2-25 16:45:49 | 显示全部楼层 |阅读模式
装了一个基于slackware的linux在U盘上,以下是我的分区结构:
sdb1(ntfs)    sdb2(ext2)    sdb3(swap)
现在启动的时候出现一下错误:
kernel panic not syncing:VFS:Unable to mount root fs on unknown-block(8,1)
的错误.
在网上查了好多资料说是可以用initrd文件解决.
我在slackware下用mkinitrd --preload=(各个需要加载的驱动模块)命令制作好initrd.gz文件,可是因为/分区是装在sdb2上面的,这样貌似在initrd switch_root的时候不能挂载上根文件系统.
请问各位高手有什么解决方法吗?
发表于 2009-2-25 22:01:33 | 显示全部楼层
kernel panic not syncing:VFS:Unable to mount root fs on unknown-block(8,1)
装在U盘上的LINUX引导不了,是因为内核那个时候还没找得到U盘,因为USB设备还没被Udev识别出来。
解决这个问题方法一:在内核参数后面参上 rootdelay=10 ,这里10表示等待10秒,然后再从指定的root设备加载系统。这个方法需要内核里带有USB设备驱动。
对于你说的用initrd来引导,问题也是如此。一般USB设备要迟一点才识别出来的。

像Ubuntu的initrd就可以这样,因为它的脚本会不断地mount目标分区,直到mount上为止。如果一定次数后都mount不上,当就认为这个分区不存在。然后就给一个shell.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-26 13:55:27 | 显示全部楼层
恩,那内核里面需要包含那些驱动呢?
能不能给个名字?(在内核的哪一项里面能找到)
回复 支持 反对

使用道具 举报

发表于 2009-5-26 09:53:11 | 显示全部楼层
digwtx正解。
我装slackware12.2时也碰到这个问题。在kernel /boot/vmlinuz 后加了rootdelay=10 root=/dev/sda1,终于可以看到darkstar了。
回复 支持 反对

使用道具 举报

发表于 2009-5-26 14:27:52 | 显示全部楼层
呵呵,收藏这个主题了~

如果是 xconfig 的话大概就在 Device Drivers > USB support 了~ 感觉上要把 EHCI,OHCI,UBS Mess Storage support 选进去,文件系统里的 ext2 也要选进去~(这样理论上就不用 initrd 了?……)
回复 支持 反对

使用道具 举报

发表于 2009-6-1 04:55:44 | 显示全部楼层
Post by grissiom;1991138
呵呵,收藏这个主题了~

如果是 xconfig 的话大概就在 Device Drivers > USB support 了~ 感觉上要把 EHCI,OHCI,UBS Mess Storage support 选进去,文件系统里的 ext2 也要选进去~(这样理论上就不用 initrd 了?……)
说的对

http://www.linuxsir.cn/bbs/thread236435.html
回复 支持 反对

使用道具 举报

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

本版积分规则

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