LinuxSir.cn,穿越时空的Linuxsir!

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

2.6.21 kernel 启动无输出

[复制链接]
发表于 2007-5-20 11:43:10 | 显示全部楼层 |阅读模式
我的硬件平台是: IBM T41 PM 处理器,IDE 硬盘。一直用 2.6.18 的 kernel 无问题。这两天想自己升级一下 kernel 。于是下载了最新的 linux_2.6.21.1 和 linux_2.6.22_rc2。结果这两个 kernel 引导后,屏幕上都没有任何输出,只是能看见硬盘灯一会儿闪一下。编译内核的时候,提示我 dnsdomainname: xxxx error。

不知道有没有兄弟碰上同样的问题?
发表于 2007-5-20 21:22:30 | 显示全部楼层
我的Dell的D620安装的SLK11.0,IDE SATA硬盘,自己重新编译2.6.21 kernel 的时候,刚开始有很多问题,不过现在的主要问题是启动到了
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block  block(3,7),不知道2.6.X的内核要求的启动参数不同,还是我内核编译的有问题,不过用同样的参数引导以前的2.4.33.3的内核是没有问题的,请大家给予指点,弄了1天多了,还没有搞定,谢谢大家

对了,我已经参考了论坛里的关于这类错误的各个问题解答,不过还是不可以
回复 支持 反对

使用道具 举报

发表于 2007-5-20 23:13:26 | 显示全部楼层
回楼上的朋友:你的引导参数是什么呢?
我记得不久前自己也编译了一个2.6.20的kernel,也出现过类似的问题Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block block(3,7),当时是我的启动参数写错了(跟2.4.33.3的引导参数不同,有initrd文件了),如果编译和安装过程都正确的话,或许你应该检查是参数写错了.
回复 支持 反对

使用道具 举报

发表于 2007-5-21 06:06:10 | 显示全部楼层
我没找到官方提供的initrd.img文件。我是用标准内核和smp内核都不能引导,文件系统没有编译进内核。
bash-3.1# cat config-generic-2.6.21.1 |grep REISERFS(XFS也是一样。)
CONFIG_REISERFS_FS=m   <------
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
CONFIG_REISERFS_FS_XATTR=y
CONFIG_REISERFS_FS_POSIX_ACL=y
CONFIG_REISERFS_FS_SECURITY=y
...
最后还是用huge的。
回复 支持 反对

使用道具 举报

发表于 2007-5-21 08:15:42 | 显示全部楼层
我用的grub for dos引导的,也没加initrd参数,昨天晚上阅读了/boot里面的README.initrd文件,发现应该加initrd,不过我也没找到initrd,里面说需要内核文件和内核模块文件,我想去slk11.0的dvd.iso里面找找看,不知道能不能找到,知道在哪的朋友希望给 指点一下,谢谢^_^
引导参数是:
root (hd0,6)
kernel /boot/vmlinuz ro vga=791

昨天晚上又重新开始编译内核2.6.21,不过现在启动后停在了 kernel panic: VFS :unable to mount root fs via NFS

刚才又试了一下,将slk11.0的dvd.iso挂载上,然后进入到extra文件夹中,installpkg smp2.6.17.13-smp的内核,模块,以及头文件,接着在/boot中
mkinitrd - c -k 2.6.17.13-smp -m reiserfs
启动后grub for dos 参数:
root (hd0,6)
kernel /boot/vmlinuz(vmlinuz符号链接到vmlinuz-2.6.17.13-smp ,这个在installpkg的时候已经自动完成) ro vga=791
initrd=/boot/initrd
期待着成功...
可惜又失败了,期待哪位再次指点一下

BTW:我用刚安装系统时候的2.4.33.3内核可以进入,因为自己编译2.6.21内核,进入到/lib/modules中发现,模块中竟然只有drivers这一个文件夹,感觉非常不正常,请明白的朋友给指点一下,谢谢 ^_^
回复 支持 反对

使用道具 举报

发表于 2007-5-21 13:41:41 | 显示全部楼层
把硬盘相关的,分区表,还有文件系统直接编译进内核.不要做成模块,引导进系统,应该问题不大.
回复 支持 反对

使用道具 举报

发表于 2007-5-21 14:13:16 | 显示全部楼层
spirit_cg,引导参数有问题.贴上我的menu.lst,仅供参考(尽管我是用LILO作引导的).
title Slackware Linux
  kernel (hd0,0)/boot/vmlinuz-generic-2.6.17.13 ro root=/dev/hda1
  initrd (hd0,0)/boot/initrd.gz
  boot

我的lilo.conf是这样的:
# Linux bootable partition config begins
image = /boot/vmlinuz-generic-2.6.17.13
  initrd = /boot/initrd.gz
  root = /dev/hda1
  label = Slackware
  read-only # Non-UMSDOS filesystems should be mounted read-only for checking
回复 支持 反对

使用道具 举报

发表于 2007-5-21 18:55:14 | 显示全部楼层
硬盘相关的等在内核中的配置已经查阅论坛里出问题的相关资料,均没使用模块方式编译,已经直接编译进内核了,谢谢r00to

感谢您提供的grub for dos引导参数,我有时间马上就去试验
回复 支持 反对

使用道具 举报

发表于 2007-5-23 10:17:24 | 显示全部楼层
昨天经过几次实验后还是不行,先说将SLK11.0-dvd.iso挂载上,安装extra文件夹中的2.6.17.13-smp内核,将/boot中的vmlinuz .System.map , config等作符号链接到2.6.17.13-smp的相关文件上,又使用mkinitrd制作对应我安装linux的分区上,我只用两个硬盘分区给linux,其中的一块是swap分区,另一块存放整个linux系统,文件系统为reiserfs,接着按照merlyn提供的menu.lst设置,修改了我在windows系统中grub for dos的menu.lst:
title Slackware Linux
root (hd0,6)
kernel (hd0,6)/boot/vmlinuz--2.6.17.13-smp ro root=/dev/hda7 vga=791
initrd (hd0,6)/boot/initrd.gz
boot

不过引导最终停在了VFS:mount root(ext2 file system)...这里,后面还有一句是让我正确的设置"root=",这里就不明白为什么不行了?是不是grub没有找到root分区,不过我在grub命令行下输入root (hd0,6),kernel (hd0,6)/boot/vmlinuz,都已经正确识别出分区和所用的文件系统了。请大家指教,谢谢

还有就是又编译了2.6.21内核,将ext2文件系统和reiserfs文件系统编译进了内核,不过由于没有办法生成initrd.gz文件,就从2.6.17.13-smp的kernel/fs/reiserfs中拷贝了个reiserfs.ko,对应在lib/modules/2.6.21中建立了对应的文件夹,回到/boot中又建立了initrd.gz(不知道这样的办法是否可行),不过引导之后出现的情况与2.6.17.13-smp几乎是一样的,都停在VFS:...这里

还有一个问题,进入到/etc/rc.modules中发现,2.4.33.3和2.6.17.13-smp都有对应的rc.modules,但是我自己编译的2.6.21内核却没有,为什么?谢谢大家帮助,不胜感激^_^
回复 支持 反对

使用道具 举报

发表于 2007-5-23 14:35:36 | 显示全部楼层
如果自己编译内核,除了文件系统要编译进内核外,还要把
Device Drivers->ATA/ATAPI/MFM/RLL support->Include IDE/ATA-2 DISK support
编入内核。这样就不需要initrd.gz文件。
回复 支持 反对

使用道具 举报

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

本版积分规则

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