LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: xwos

启动挂起:No init found

[复制链接]
发表于 2004-2-6 08:22:11 | 显示全部楼层
作为linux的管理员,
1. 一定要记下来你都对系统做了些啥
2. 一有机会就证实一下你的改动有没有影响到系统运行
3. 想到了再说 ...


等于没说。
发表于 2004-2-6 08:28:47 | 显示全部楼层
其实这个问题的确和发行版本的init脚本有关。
fedora就是一个很经典的例子。rc.d里的启动脚本都是针对其内核2.4+nptl的,也就是说,自己编译的新内核一定要匹配fedora的实际环境。
首先值得注意的一点是,initrd的相关支持要编译进内核,这样内核2.6会自动生成initrd-2.6.x.img;
然后就是文件系统,尤其涉及到initrd的文件系统,如ext2,ext3,ramfs就应该要编译进内核而不是模块;
还有一点,应该是rc.sysinit中挂载/proc的部分与新内核有冲突,所以系统不能识别fstab中的LABEL=/,而这却是新内核在其安装时照着fedora自动在grub.conf中生成的,应该要改成/dev/hdax;
另外,大多数发行版本除了slackware吧都使用了bootsplash,为防止黑屏,要把framebuffer编译进内核。
总之,新内核和原启动脚本不协调,如usb模块的名称变化。
(不知大家注意到没有,在fedora的自动升级中会警告你不应该手工安装新内核)


我个人认为不是这个问题。
编译内核后可以不用生成initrd文件,一样可以启动,我不止一次的这样做过,在安装新内核时由于原内核没有编译进loopdevice设备的支持,就会出现不能编译initrd文件的现象,但是只要手工安装内核,使用/sbin/new-kernel-install一样可以安装成功内核。也可以成功启动。

关于文件系统的模块化的说法也不对。你安装了fedora后,再查看内核选 项可以看到red hat公司出来的系统缺省就是将ext3编译为模块。

另外关于rc.sysinit中挂载/proc部分并不是由于和内核有冲突。而是由于在新安装时使用分区时给分区加了一个标签,就是你在win中的c盘的标签是system是一个道理,你可以在编译新内核后使用/sbin/devlabel  /sbin/e2label来为你的分区做上标签,一样可以启动。

另外由于2.6的内核的模块载入采用了新技术,所以如果要安装新内核的话,必须更新你的模块载入工具。这是常识。
发表于 2004-2-6 08:34:46 | 显示全部楼层
kernel panic: No init found,Try passing init= option kernel

出现这个情况的我唯一能理解就是一个文件丢失的问题。

应该是丢失init,这个可执行程序或者是是它的初化化文件inittab, 如果这两个文件丢失了就应该会出现这种情况。

从内核的启动过程来看,系统已经载入内核了,而且也已经经过了硬件检测,到了运行系统的第一个程序init时出错。这个可以参考linux系统启动过程的说明。

个人觉得唯解决的办法,只有将这块硬盘拿到其他系统上挂载,然后从其他的机器上复制这两个文件试试看了。
也可以使用knoppe或者是gentoo livecd来启动,然后挂载硬盘。
发表于 2004-2-6 11:32:34 | 显示全部楼层
最初由 黄叶 发表
kernel panic: No init found,Try passing init= option kernel

出现这个情况的我唯一能理解就是一个文件丢失的问题。

应该是丢失init,这个可执行程序或者是是它的初化化文件inittab, 如果这两个文件丢失了就应该会出现这种情况。

从内核的启动过程来看,系统已经载入内核了,而且也已经经过了硬件检测,到了运行系统的第一个程序init时出错。这个可以参考linux系统启动过程的说明。

个人觉得唯解决的办法,只有将这块硬盘拿到其他系统上挂载,然后从其他的机器上复制这两个文件试试看了。
也可以使用knoppe或者是gentoo livecd来启动,然后挂载硬盘。


为什么这两个文件会“丢失”呢?
换上内核2.4为什么又回来了呢?
发表于 2004-2-6 12:52:43 | 显示全部楼层
我的换回2.4也不行。
发表于 2004-2-6 12:54:55 | 显示全部楼层
我并不是由于重新编译内核而引起这个问题的。
是在一次突然断电后,我忘了在文件系统还挂载的情况下进行了fsck.ext3的整理,重启后就出现了这个问题。
发表于 2004-2-6 13:17:53 | 显示全部楼层
按理说内核加载后,就开始运行启动脚本,而楼主出现的信息正好是内核已经加载完毕,要启动运行等级脚本的时候.我没有出现过这个现象,所以只能猜测...;)
发表于 2004-2-6 13:22:55 | 显示全部楼层
Try passing init= option kernel

从这一句分析,你们的initrd会不会有问题?!
 楼主| 发表于 2004-2-6 13:48:05 | 显示全部楼层
我把正常系统下的整个/etc目录替代现有的/etc目录,然后修改了一下fstab
文件,/boot目录我就是用的正常系统的/boot当然我有把新内核放进去,里面
也包含了新内核的initrd,还是同样的问题!然后我用正常系统的内核替换现有
内核问题还是存在!
请大哥们帮忙分析看看!谢谢!
发表于 2004-2-6 13:59:52 | 显示全部楼层
最初由 home_king 发表
其实这个问题的确和发行版本的init脚本有关。
fedora就是一个很经典的例子。rc.d里的启动脚本都是针对其内核2.4+nptl的,也就是说,自己编译的新内核一定要匹配fedora的实际环境。
首先值得注意的一点是,initrd的相关支持要编译进内核,这样内核2.6会自动生成initrd-2.6.x.img;
然后就是文件系统,尤其涉及到initrd的文件系统,如ext2,ext3,ramfs就应该要编译进内核而不是模块;
还有一点,应该是rc.sysinit中挂载/proc的部分与新内核有冲突,所以系统不能识别fstab中的LABEL=/,而这却是新内核在其安装时照着fedora自动在grub.conf中生成的,应该要改成/dev/hdax;
另外,大多数发行版本除了slackware吧都使用了bootsplash,为防止黑屏,要把framebuffer编译进内核。
总之,新内核和原启动脚本不协调,如usb模块的名称变化。
(不知大家注意到没有,在fedora的自动升级中会警告你不应该手工安装新内核)




支持你的说法,感觉你说的可能性大点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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