应该是文件系统损坏了.
这种情况最经常是文件系统没有加载上,最好用安装光碟的救援模式启动,或者用另一个LINUX启动,然后用FSCK扫描一下文件系统.
如果没有救援CD,而只有本机系统可启动,那就比较麻烦,需要知道你的引导装载程序是那一种:
(1)如果是LILO:
可试试用紧急模式,
即系统启动时进入启动菜单(图文模式下按[Ctrl]+[X]),然后在LILO提示符下输入:
linux
emergency
在紧急模式下,您可能将被引导进入最小化的环境,根文件系统将会以只读状态挂入,几乎所有东西都不会启用.
相对于单用户模式,紧急模式的主要好处是您的init文件不会被加载.
所以如果
init
崩溃了或者不可运行,
您依然还能挂入文件系统,
以便恢复重启时丢失的数据.
或者传递init参数给Linux,以避免它启动INIT,可直接在LILO提示符下输入:
linux
init=/bin/sh
或者,如果你的系统没有/bin/sh,可试试/bin/bash:
linux
init=/bin/bash
(2)
如果是使用GRUB:
可用如下步骤进入单用户模式:
(a)
如果您的GRUB配置了密码,
敲入
p
键盤然后再输入密码;
(b)
选择要进入的内核版本然后敲入
e
键盤进入编辑,
将会看到配置文件中的相应项目;
(c)
选择启动内核项目的那行,然后敲入
e
键盤编辑此行;
(d)
在此行的最后面,输入一个空格和
single
字符,
然后按
[Enter]
键结束编辑模式;
(e)
回到
GRUB
界面,
敲入
b
键盤,
将会启动并引导进入单用户模式;
一般情况下,
init
应该都是在/sbin/init路径下,如果是误删除,可找相同版本的LINIX的init文档替代它.
不过init出问题的机会比较小,它只是一个二进制文件,通常是它调用到的其他文档,如/etc/inittab出问题的机会更大.应检查一下/etc/inittab的内容是否正常.
如果您是重新编译内核後遇到这种问题,那应该看看是不是编译选项缺少了,例如忘记选择EXT2/3或者错把它用模块加载方式了.
看看这里的参考案例:
http://72.14.235.104/search?q=ca
...
&cd=2&gl=tw