系统卡死::::误删libc提示Kernel panic not syncing: Attempted to kill init解决办法
启动提示: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
无法远程登录,终端也无法登录,也无法单用户登录,如图:
远程登录:
终端登录:
单用户:
其实在执行误操作之后只要不断开远程连接还有挽回的余地,但远程异常断开连接之后很多人就没有辙了,准备抢救数据&文件,重装系统,其实这里咱们先不要着急重装系统,咱们来试试rescue !
一、首先准备好系统安装盘,使用安装盘启动:
二、选择语言和键盘(默认的就好):
三、稍等一会儿会出现要不要设置网络,一般来说网络没问题就不用设置了,我这里选择No:
四、这里就是rescue选项了:
-
选择Continue,则救援模式程序会自动查找系统中已有的文件系统,并把他们挂载到/mnt/sysimage目录下。
-
选择Read-Only,则会以只读的方式挂载已有的文件系统。
-
手动挂载则Skip。
-
Advanced ,高级选项就不作说明了。
咱们这儿选择Continue:
五、原系统挂载路径/mnt/sysimage,如果想获得原系统root环境,执行行命令:chroot /mnt/sysimage 即可。
六、这里可以执行fakd诊断,当然我们这里直接进入shell 命令行:
七、本次重头戏来了,因为/usr/lib64/libc-2.12.so & libc.so.6 -> libc-2.12.so 问题,执行chroot /mnt/sysinage会报错:
八、不要害怕,执行:
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 就正常了:
其实到这里我这次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’
这样的错误,是因为之前建立的httpd的软连接没有删除,这种错误经常出现在安装过其他HTTP服务但是卸载没有卸载干净的情况下。
只要 ”rm /etc/rc.d/init.d/httpd“,问题即可解决。












浙公网安备 33010602011771号