Kernel panic – not syncing: Attempted to kill init!故障修复

1. 环境
Redhat6.5
2. 故障
接到业务侧报障,主机无法远程连接,随即登录控制台查看。一看,了不得,Kernel panic,– not syncing: Attempted to kill init!这是要重装的节奏啊。马上电话联系业务侧,各种说系统有多重要,吧啦吧啦一大堆。好吧,试着帮你修复下吧。

3. 处理思路

  • 控制台重启
  • 单用户模式排查
  • 救援模式排查

4. 处理步骤
Step1. 控制台重启,报错依旧Kernel panic,– not syncing: Attempted to kill init!
在这里插入图片描述
Step2. 单用户模式排查
控制台重启,按任意健(个人习惯按上下健)。按e,按上下箭头,选第2个,再按e,末尾空格输入1,按Enter,按b,系统会自动进入但用户模式。单用户模式进入方法,此处不详述。
在这里插入图片描述
结果:单用户无法进入,报错依旧。

Step3. 救援模式排查
挂载镜像,从光盘启动,按上下健,选择救援模式启动。救援模式的进入方法请自行百度查阅。进入救援模式后,执行chroot命令切换到根目录环境下。

[root@ansible ~]# chroot /mnt/sysimage

执行命令报错,开心,Troubleshouting过程中,最喜欢的就是报错
在这里插入图片描述
Step4. 解决libc.so.6文件缺失的问题
先找一台正常的主机,查找libc.so.6文件所处的目录及文件类型。
在这里插入图片描述
Step5. 登录故障主机控制台查看libc.so.6文件是否存在
此处解释下,因为chroot失败,所以原操作系统文件都在/mnt/sysiamge目录下,此时的/mnt/sysimage等同于操作系统的/目录,所以后续操作都在该目录下进行。

[root@ansible /mnt/sysimage]#cd /mnt/sysimage
[root@ansible /mnt/sysimage]#cd lib64
#查看文件是否存在,结果不存在。
[root@ansible /mnt/sysimage/lib64]#ls  -l libc.so.6   
#创建软链接
[root@ansible /mnt/sysimage/lib64]#ln -s libc-2.12.so libc.so.6
#再次查看文件是否存在,文件已存在。
[root@ansible /mnt/sysimage/lib64]#ls  -l libc.so.6   
#重新执行chroot命令,切换到系统根目录成功
[root@ansible /mnt/sysimage/lib64]#chroot /mnt/sysimage   
#exit退出当前shell模式
[root@ansible ~]#exit
#重启主机
bash-4.1#reboot

熟悉的页面又回来了,不容易。此刻享受着业务侧投来仰慕的目光,自恋1分钟。

  1. 总结

实际Kernel panic并不可怕,静下心来,逐一排除故障,问题终将迎刃而解。

猜你喜欢

转载自blog.csdn.net/weixin_43770382/article/details/107686813