LinuxSir.cn,穿越时空的Linuxsir!

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

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

[复制链接]
发表于 2005-9-12 18:10:32 | 显示全部楼层 |阅读模式
我的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
发表于 2005-9-12 19:57:34 | 显示全部楼层
老问题了,又是编译时不加intrd参数惹的祸,仔细搜索论坛里的帖子。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-12 20:27:36 | 显示全部楼层
楼上如果知道,能否直接答复,听你的话很累的。
网上找了一些资料,说
原因一:ext2文件格式支持没有编译进内核,不论你使用ext3或其它文件格式,ext2支持都必须直接编译进内核,不能以内核模块形式编译。

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

使用道具 举报

发表于 2005-9-12 21:03:28 | 显示全部楼层
如果你想使用initrd的话,生成deb的命令为make-kpkg kernel-image --initrd
回复 支持 反对

使用道具 举报

发表于 2005-9-12 21:17:31 | 显示全部楼层
就是grub设置没写对,在kernel=***后面那个root=***,要写对自己根分区的路径,/dev/hd**。
应该不是intrd的问题。
回复 支持 反对

使用道具 举报

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

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

使用道具 举报

发表于 2005-9-13 09:12:12 | 显示全部楼层
如果用debian原来的配置文件的话要用initrd文件把一些ide设备的驱动加在里面。或者把分区格式和block的支持编译进内核就可以了。加在initrd文件里的模块写在/etc/mkinitrd/modules文件里。用make-kpkg编译时加上--initrd选项。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-9-13 19:28:58 | 显示全部楼层
谢谢各位的提示,我试试看,难道要重新编译。
回复 支持 反对

使用道具 举报

发表于 2005-9-16 23:50:09 | 显示全部楼层
给你一个简单的办法
首先,make defconfig
然后,make menuconfig 选上你需要的东西,比如声卡,显卡,网卡驱动,语言等,或者其他的东西,这样只需要选择很少的东西
然后呢????
就跟你上面的步骤一样了,不过,启动的时候根本就不需要initrd.img的参数了
这样可以直接启动、
省事把,我一直都是这么做的,很方便,配置起来也很简单、
回复 支持 反对

使用道具 举报

发表于 2005-9-17 00:23:18 | 显示全部楼层
我觉得像是主板的芯片组的驱动没有编译进内核,也没有做initrd
回复 支持 反对

使用道具 举报

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

本版积分规则

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