+ -
当前位置:首页 → 问答吧 → debian下成功编译安装v2.6.13内核,但无法启动,请帮忙看看

debian下成功编译安装v2.6.13内核,但无法启动,请帮忙看看

时间:2005-09-12

来源:互联网

我的debain版本:Linux debian 2.4.27-2-386 #1 Mon May 16 16:47:51 JST 2005 i686 GNU/Linux
我有两块硬盘,debian安装在第二块硬盘上,根目录在hdc1上。
我下载了最新的内核llinux-2.6.13。
下载地址:http://www.kernel.org/pub/linux/kernel/v2.6/
并成功编译生成了一个deb安装包,但是安装重启后却无法进入系统。提示如下错误,请指教。
VFS:Cannot open root device "hdc1" or unknown-block(0,0)
please append a correct "root=" boot option
kernel panic not syncing:VFS:unable to mount root fs on nuknown-block(0,0)

我的内核编译操作是按照http://debian.cn99.com/kernel-2.6/Readme.txt 进行的。
#make oldconfig(基本上都是默认设置,直接敲回车)
#make-kpkg kernel-image
生成的内核名字:kernel-image-2.6.13_10.00.Custom_i386.deb
编译过程并没有出现什么错误,一直到底的。
我也检查了/boot/menu.lst,发现新老内核的设置基本相同,为什么新内核却无法识别hdc1呢。

附我的menu.lst(部分)
title Debian GNU/Linux, kernel 2.6.13
root (hd1,0)
kernel /boot/vmlinuz-2.6.13 root=/dev/hdc1 ro
savedefault
boot

title Debian GNU/Linux, kernel 2.6.13 (recovery mode)
root (hd1,0)
kernel /boot/vmlinuz-2.6.13 root=/dev/hdc1 ro single
savedefault
boot

title Debian GNU/Linux, kernel 2.4.27-2-386
root (hd1,0)
kernel /boot/vmlinuz-2.4.27-2-386 root=/dev/hdc1 ro
initrd /boot/initrd.img-2.4.27-2-386
savedefault
boot

title Debian GNU/Linux, kernel 2.4.27-2-386 (recovery mode)
root (hd1,0)
kernel /boot/vmlinuz-2.4.27-2-386 root=/dev/hdc1 ro single
initrd /boot/initrd.img-2.4.27-2-386
savedefault
boot

作者: gamephp   发布时间: 2005-09-12

老问题了,又是编译时不加intrd参数惹的祸,仔细搜索论坛里的帖子。

作者: favoyun   发布时间: 2005-09-12

楼上如果知道,能否直接答复,听你的话很累的。
网上找了一些资料,说
原因一:ext2文件格式支持没有编译进内核,不论你使用ext3或其它文件格式,ext2支持都必须直接编译进内核,不能以内核模块形式编译。

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

作者: gamephp   发布时间: 2005-09-13

如果你想使用initrd的话,生成deb的命令为make-kpkg kernel-image --initrd

作者: zlbruce   发布时间: 2005-09-13

就是grub设置没写对,在kernel=***后面那个root=***,要写对自己根分区的路径,/dev/hd**。
应该不是intrd的问题。

作者: Freesnake   发布时间: 2005-09-13

如果不想编译initrd.gz
得把ide硬盘里的一些选项选上
这是最常见的问题
因为你的内核根本没有找到硬盘的驱动所以当然也就像你下面说的找不到hdc1了
VFS:Cannot open root device "hdc1" or unknown-block(0,0)

个人见解
仅供参考
我都是针对我的机器把所有有用的东东编译进内核或编译模块
虽然用debian
但我不习惯按debian的做法来编译内核
:)

作者: linuxcpp   发布时间: 2005-09-13

如果用debian原来的配置文件的话要用initrd文件把一些ide设备的驱动加在里面。或者把分区格式和block的支持编译进内核就可以了。加在initrd文件里的模块写在/etc/mkinitrd/modules文件里。用make-kpkg编译时加上--initrd选项。

作者: starboys   发布时间: 2005-09-13

谢谢各位的提示,我试试看,难道要重新编译。

作者: gamephp   发布时间: 2005-09-13

给你一个简单的办法
首先,make defconfig
然后,make menuconfig 选上你需要的东西,比如声卡,显卡,网卡驱动,语言等,或者其他的东西,这样只需要选择很少的东西
然后呢????
就跟你上面的步骤一样了,不过,启动的时候根本就不需要initrd.img的参数了
这样可以直接启动、
省事把,我一直都是这么做的,很方便,配置起来也很简单、

作者: tpc586   发布时间: 2005-09-17

我觉得像是主板的芯片组的驱动没有编译进内核,也没有做initrd

作者: blue_stone   发布时间: 2005-09-17

参照各位的意见,还有Debian参考手册,重新编译,加上 --initrd 参数,成功进入系统。再次感谢热心的朋友的帮助。

作者: gamephp   发布时间: 2005-09-18

好贴,回去就试试
这个问题和我的情况也差不多

作者: opaquefog   发布时间: 2005-10-24

这个问题我也遇到过
好像不是initrd的问题

我把IDE/ATA的一些选项多选了几个就好了

作者: skykingf   发布时间: 2005-10-24

热门下载

更多