LinuxSir.cn,穿越时空的Linuxsir!

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

新编译的内核不能启动:Kernel panic - not syncing,请问有谁能帮我解决?

[复制链接]
发表于 2010-8-19 15:34:27 | 显示全部楼层 |阅读模式
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block (0,0)
Pid: 1, comm: swapper Not tainted 2.6.35.1test04 #1

用自己编译的内核启动系统时报错。

编译环境是ubuntu 10.04,内核是2.6.35.1。因为编译的目的是将内核精简下来,所以设置make menuconfig的时候没有选"Enable loadable module support"而是将所有东西都加到内核中。

一些资料上说第一行报错信息是由于找不到根文件系统。但是硬盘上使用的都是ubuntu 10.04默认的ext4格式,而我在"File systems"下已经将所有与ext4有关的项目都选上。后来还试过将所以涉及ext2-ext4的项目都选上,但还是出现同样的问题。

请问有谁知道如何解决这个问题?

机器的lspci信息如下:
00:00.0 Host bridge: VIA Technologies, Inc. VT8601 [Apollo ProMedia] (rev 05)
00:01.0 PCI bridge: VIA Technologies, Inc. VT8601 [Apollo ProMedia AGP]
00:06.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
00:07.0 ISA bridge: VIA Technologies, Inc. VT82C686 [Apollo Super South] (rev 40)
00:07.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
00:07.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
00:07.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1a)
00:07.4 Bridge: VIA Technologies, Inc. VT82C686 [Apollo Super ACPI] (rev 40)
00:07.5 Multimedia audio controller: VIA Technologies, Inc. VT82C686 AC97 Audio Controller (rev 50)
01:00.0 VGA compatible controller: Trident Microsystems CyberBlade/i1 (rev 6a)
如还需要提供别的参考信息请通知我。
发表于 2010-8-22 14:53:56 | 显示全部楼层
選上是指編譯進內核還是編譯成模塊?

如果是模塊,你必需使用 initrd、initramfs 之類來作二次引導,如不想使用,就應該將之直接編入內核,詳細解釋請看 Debian 區的置頂
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-8-24 15:04:30 | 显示全部楼层
Post by d00m3d;2109254
選上是指編譯進內核還是編譯成模塊?

如果是模塊,你必需使用 initrd、initramfs 之類來作二次引導,如不想使用,就應該將之直接編入內核,詳細解釋請看 Debian 區的置頂


我是将所有的东西都写进了内核,应该不是initrd的问题。

请问版主提到的文章是不是在www.howtoforge.com上发表的"How To Compile A Kernel"?里面的内部我已经知晓。以前曾用ubuntu 10.04上自带的".config"文件编译过一个能运行的内核,但因机器的性能限制,编译过程长达十多个小时,因此一直在想如何只将有用的部分编译进内核。在进行尝试的过程中,遇到了上面提出的问题。总的来说,我想问的其实是如何在make menuconfig中做出正确合理的选择。

在编译成功的内核中也有一个小问题,在这里也一并提出。就是虽然能够使用,且使用过程中也未发现什么异常的地方,但开机的时候总提示:

[    0.241517] ERROR: Unable to locate IOAPIC for GSI 8
[    0.241909] ERROR: Unable to locate IOAPIC for GSI 13
[    0.242723] ERROR: Unable to locate IOAPIC for GSI 6
[    0.244304] ERROR: Unable to locate IOAPIC for GSI 4
[    0.245916] ERROR: Unable to locate IOAPIC for GSI 3
[    0.247983] ERROR: Unable to locate IOAPIC for GSI 7
[    0.249092] ERROR: Unable to locate IOAPIC for GSI 1
[    0.250623] ERROR: Unable to locate IOAPIC for GSI 10
[    0.252815] ERROR: Unable to locate IOAPIC for GSI 9
[    0.255619] ERROR: Unable to locate IOAPIC for GSI 5

想知道为何出现这样的提示,是否已经对系统产生了还未察觉的影响?

祈盼高人给予指点。

谢谢!
回复 支持 反对

使用道具 举报

发表于 2010-8-24 19:32:44 | 显示全部楼层
我指的不是 howtoforge 的文章,而是我在該帖內關於不使用 initrd 的解說。

不記得是 2.6.30.x 還是 2.6.32.x 以後,內核加入 make localmodconfig 來定制 .config,它只會加入已加載(當前已使用的)模塊,這樣編譯時間可大幅縮短。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-8-25 21:38:19 | 显示全部楼层
Post by d00m3d;2109623
我指的不是 howtoforge 的文章,而是我在該帖內關於不使用 initrd 的解說。

不記得是 2.6.30.x 還是 2.6.32.x 以後,內核加入 make localmodconfig 來定制 .config,它只會加入已加載(當前已使用的)模塊,這樣編譯時間可大幅縮短。

make localmodconfig的确很好用,先谢谢了。

对不使用initrd的方法很感兴趣,不过我真没能找到版主提到的置顶贴,能否提供它的链接?
回复 支持 反对

使用道具 举报

发表于 2010-8-28 12:12:55 | 显示全部楼层
不好意思,忘記我已把置頂帖替換了

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

使用道具 举报

发表于 2010-11-25 10:58:52 | 显示全部楼层
最近我加了块sata硬盘,bios设置做了更改,重新编译内核不使用initrd出现类似错误。后发现把SCSI编译进内核就好了,之前只把SATA编进内核,SCSI编成模块。
回复 支持 反对

使用道具 举报

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

本版积分规则

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