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分钟。

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