系统卡死::::误删libc提示Kernel panic not syncing: Attempted to kill init解决办法

 

系统类型:CentOS 6.5(x64) 
启动提示:Kernel panic - not syncing: Attempted to kill init 
背景:因为误删了 libc.so.6 -> libc-2.12.so的软连接(图1),没想到很多命令不能用了。 原来linux 很多shell命令都离不开 libc.so.6 

接下来重启系统进去之后就一直报Kernel panic - not syncing: Attempted to kill init的错(↓图)

方法1:
之前看网上有很多方法是编辑grub菜单,选择“kernel /vmlinuz-XXXXro root=/dev/vogroup00/logvol00 rhgb quiet” 一栏,按‘e’键进入编辑,在末尾增加enforcing=0后重启,但是这种方法不适用于本次情况。

方法2: 
重启虚机并进入急救模式:在重启后看到VMWARE的界面时按ESC,选择CD-rom启动,也可以直接更改bios,选择以CD-ROM启动,只要进入救援模式,找到相关的文件夹,剩下来到就和先前一样了,有仇的报仇,有冤的报冤


语言默认选择English 

键盘默认选择US 

3。选择是否配置网卡 
一般系统到了要rescue了,网络也就不需要了,所以可以选择否跳过网卡配置,当然你如果需要也可以选择是,具体设置过程和安装时一样。 

选择继续(Conyinue) 

硬盘上的系统已经被找到并挂载在/mnt/sysimage 下 

三种选项: 
 1.shell 进入命令行模式; 
 2.fakd是诊断模式; 
 3.reboot重启电脑; 
我们这里选择shell进入命令行模式 

由于刚进去的时候所有的文件都是只读:READ-ONLY,所以必须使用命令给予读写权限:   

mount -o remount rw / 和 mount -o remount rw /mnt/sysimage
 

   无法远程登录,终端也无法登录,也无法单用户登录,如图:

远程登录:

wKiom1bQFCeA8SsFAAAemVJRLBY130.png

终端登录:

wKiom1bQFCjT2neQAAAZdjq8ZzE758.png

单用户:

wKioL1bQFJnTxP12AAAr0ulXcao377.png

    其实在执行误操作之后只要不断开远程连接还有挽回的余地,但远程异常断开连接之后很多人就没有辙了,准备抢救数据&文件,重装系统,其实这里咱们先不要着急重装系统,咱们来试试rescue !

 

一、首先准备好系统安装盘,使用安装盘启动:

wKioL1bQFyiiyx9pAAGi8wcejWs890.png :

 

二、选择语言和键盘(默认的就好):

wKiom1bQFpnQUkFGAABXeZieUXc445.png

三、稍等一会儿会出现要不要设置网络,一般来说网络没问题就不用设置了,我这里选择No:

wKiom1bQFy6SBsq-AAA1PQGe3yE741.png

四、这里就是rescue选项了:

  1. 选择Continue,则救援模式程序会自动查找系统中已有的文件系统,并把他们挂载到/mnt/sysimage目录下。

  2. 选择Read-Only,则会以只读的方式挂载已有的文件系统。

  3. 手动挂载则Skip。

  4. Advanced ,高级选项就不作说明了。

咱们这儿选择Continue:

wKioL1bQGCDDcHoqAACDKFkw2gE957.png

五、原系统挂载路径/mnt/sysimage,如果想获得原系统root环境,执行行命令:chroot /mnt/sysimage 即可。

wKioL1bQGdThFUjbAABWTp9lqv0392.png

六、这里可以执行fakd诊断,当然我们这里直接进入shell 命令行:

wKiom1bQGqeT8qgyAAA-3a6VVso643.png

七、本次重头戏来了,因为/usr/lib64/libc-2.12.so & libc.so.6 -> libc-2.12.so 问题,执行chroot /mnt/sysinage会报错:

wKiom1bQGzmhzNfRAABQaSlSqbQ574.png

八、不要害怕,执行:

1 cp /lib64/libc-2.12.so /mnt/sysimage/lib64/libc-2.12.so
2 cp /lib64/libc.so.6 /mnt/sysimage/lib64/libc.so.6

将光盘文件拷贝到系统文件去,再执行chroot /mnt/sysinage 就正常了:

wKiom1bQHe7TjnaLAABX_O5j2MU011.png

其实到这里我这次rescue 已经完成了,因为系统缺少/usr/lib64/libc-2.12.so文件和 libc.so.6 -> libc-2.12.so软连接 ,复制过去就好了 。

九、退出shell & reboot  

 

如果在执行”cp apachectl /etc/rc.d/init.d/httpd“命令时,出现

cp: not writing through dangling symlink ‘/etc/rc.d/init.d/httpd’

image

这样的错误,是因为之前建立的httpd的软连接没有删除,这种错误经常出现在安装过其他HTTP服务但是卸载没有卸载干净的情况下。

只要 ”rm /etc/rc.d/init.d/httpd“,问题即可解决。

 

 

 

 

posted on 2018-09-11 09:26  Areon  阅读(2170)  评论(0)    收藏  举报

导航