LinuxSir.cn,穿越时空的Linuxsir!

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

(已解决!!)试了好多次了,崩溃了快,,内核编译完后,从新内核启动卡在了waiting for root file

[复制链接]
发表于 2008-11-27 12:37:37 | 显示全部楼层 |阅读模式
重新把问题详细的列一下,各位帮我看看问题可能出在哪,谢谢了:  /bow

先说说的的步骤:
1   在/usr/src下把2.6.27.6的源码包解压后,cd linux-2.6.27.6
2   make clean && make mrproper 然后cp /boot/config-2.6.18.6-686 ./.config
3   make menuconfig 在这里试过了没改动过的原config,也试过把SATA的驱动全选上,试过把ATA/IDE硬盘的驱动选上,试过把crmtfs文件系统选上,(注在我load原内核config文件时,显示config:3157  warning:symbol value 'm'invalid for RTC-INTF-..)
4     make-kpkg clean
5     fakeroot make-kpkg --initrd --append-to-version=-new kernel_image kernel_headers
6     cd /usr/src   
7    dpkg -i ***kernel-image-**deb   
      dpkg -i ***kernel-headers-**.deb
8 reboot  
系统卡在了waiting for root file system ,过10多分钟吧,显示如下信息:
Warning bootdevice maybe renamed   TRY root=/dev/had11
Gave up waiting for root device.   Common problems:
-boot args(cat /proc/cmdline)
-check rootdelay=(did the system wait long enough)
- check root=(did the system wait for the right device)
-Missing modules (cat /proc/modules;ls /dev)

Alert  /dev/sda11 doesn't exist Dropping to a shell
/bin/sh :can't access tty, job control turned off


附上我的menu.lst:
title    Debian Gun/linux  kernel 2.6.27.6-new    ##新内核
root     (hd0.8)
kernel   /vmlinuz-2.6.27.6-new   root=/dev/sda11  ro
intrd     /intrd/img-2.6.27.6-new
save defalut

title    Debian Gun/Linux  kernel 2.6.18-6-686
root     (hd0,8)
kernel   /vimlinuz-2.6.18-6-686     root=/dev/sda11 ro
initrd   /initrd.img-2.6.18-6-686
save default

/etc/fstab内容:
filesystem    mount point    type         options                    dump      pass
proc             /  proc             proc                   default                     0         0
/dev/sda11    /                 ext3   default,errors=remount-ro   0         0
/dev/sda9    /boot           ext3          default                           0        2
/dev/sda10   none            swap          sw                                 0         0
发表于 2008-11-27 12:39:07 | 显示全部楼层
SATA硬盘驱动?
回复 支持 反对

使用道具 举报

发表于 2008-11-27 12:40:00 | 显示全部楼层
用原來的可用的內核的 config編譯。
回复 支持 反对

使用道具 举报

发表于 2008-11-27 13:08:20 | 显示全部楼层
make-kpkg 的 --initrd 生成的 initrd 是 Debian 自己的 cramfs 格式,官方的内核默认没有打开对 cramfs 的支持(据说早些版本的内核里根本没有它)。可能是这个原因吧。

  │   Location:
  │     -> File systems
  │       -> Miscellaneous filesystems
  │          -> Compressed ROM file system support (cramfs)

另外生成的 initrd 不认 ext4(虽说 ext4 是向后兼容的,不过一旦开启了 extents,ext4 分区就不能再被当作 ext3 mount了)
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-27 13:28:07 | 显示全部楼层
我记得在make menuconfig的时候我没有把ex4选上啊,
回复 支持 反对

使用道具 举报

发表于 2008-11-27 23:00:22 | 显示全部楼层
把启动参数里面的quiet去掉,加上verbose。也可以尝试在initrd中加入显示/调试命令。

另:我在gentoo里生成的initramfs是可以支持ext4的,不知道在debian里面发生了什么,会不支持了。
回复 支持 反对

使用道具 举报

发表于 2008-11-28 08:42:58 | 显示全部楼层
就像删除一般软件包一样删除

看你的情况好像比较简单

文件系统支持没有选上

配置的时候一定确认自己选上看

我第一次编译就是这样的
Post by xp2linux;1914788
把root=/dev/sda11 改成root=/dev/hda11问题还是一样,,
重新编译了好几次了,make menuconfig里都改了好几个地方了,还是不行。
我的编译步骤是:
1。 cd /usr/src 然后wget 2.6.27.6的内核源码包 再tar之,然后建一个符号链接linux(前几次弄符号链接,直接在解压出来的目录下编译的)
2。 cp原内核的config文件到linux下,make menuconfig  再make-kpkg clean
3.    fakeroot make-kpkg --initrd --append-version=-new kernel_image kernel_headers
4.    完了之后分别dpkg -i  **image.deb和**headers.deb**
5    reboot
选择新内核的系统,就卡在了waiting for root file system

其中我把sata下的全部选入编译项了,
用原有内核的.config为基础。在虚拟机上新内核能进入系统,可是在硬盘上编译的新内核就出现这个问题了,
看了下menu.lst里的新旧内核的ROOT=的内容都是一样的。。。


还有想问个问题:我已经这样编译过好几次内核了,再重编译的时候menu.lst里的新内核启动项是不是要删掉,然后module里的对应的是不是也要删掉,安装过的自编译内核怎么给删掉啊。。
回复 支持 反对

使用道具 举报

发表于 2008-11-28 10:28:25 | 显示全部楼层
Post by tjpm;1915307
就像删除一般软件包一样删除

看你的情况好像比较简单

文件系统支持没有选上

配置的时候一定确认自己选上看

我第一次编译就是这样的


lz的内核都是自编译安装的,手动删除就行了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-11-28 12:06:39 | 显示全部楼层
手动删除,又重编译了很多次了,试了很多还是不行。。。
回复 支持 反对

使用道具 举报

发表于 2008-11-28 13:58:58 | 显示全部楼层
没有特殊需求的话,去掉 --initrd 参数
回复 支持 反对

使用道具 举报

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

本版积分规则

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