Linux操作系统启动故障排错之"/sbin/init"文件被删除恢复案例
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.删除"/sbin/init"文件模拟故障
[root@yinzhengjie ~]# which init
/sbin/init
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# file /sbin/init
/sbin/init: ELF -bit LSB shared object, x86-, version (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6., stripped
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# rpm -qf /sbin/init
upstart-0.6.-.el6.x86_64
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# ll /sbin/init
-rwxr-xr-x. root root Jun /sbin/init
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# ll -h /sbin/init
-rwxr-xr-x. root root 147K Jun /sbin/init
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# mv /sbin/init /root/ #我们将"/sbin/init"文件移动到"/root"目录,以模拟删除了"/sbin/init"文件
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# ll
total
-rwxr-xr-x. root root Jun init
[root@yinzhengjie ~]#
[root@yinzhengjie ~]# reboot #重启操作系统后发现无法正常启动了,一直卡在如下所示的图形界面。 Broadcast message from root@yinzhengjie
(/dev/pts/) at : ... The system is going down for reboot NOW!
[root@yinzhengjie ~]#
二.故障恢复实战
1>.如下图所示,根据提示按字母"a"修改内核参数
2>.指定系统内核启动时指定启动进程为"/bin/bash",默认使用"/sbin/init"来启动内核
3>.可以基于http协议将网络备份好的"/sbin/init"文件下载到本地(若系统环境是只读的化需要使用mount命令重新挂载一下)
4>.上图中别忘记输入"sync"命令同步一下,然后直接断电重启操作系统即可(上图中无法使用"init 6"或者"reboot"命令)