一、故障现象

负责虚拟化的一个兄弟反馈,现网的一台主机重启后出现kernel panic – not syncing: Attempted to kill init 无法启动的情况。在使用光盘引导进入修复模式后,执行chroot /mnt/sysimage 操作时,提示:chroot failed to run /bin/bash。重启后就出现了该问题。现象如下:

kernel-panic
kernel-panic

二、故障处理

使用光盘引导进行修复模式,使用chroot提示操作时,出现了kernel panic – not syncing: Attempted to kill init 。查看主机的/usr /etc / /boot等都不存在问题,而且权限也正常。进行/mnt/sysimage原主机系统下的可执行命令执行时,有些命令执行异常,提示lib库文件找不到。重新问该兄弟主机重启前是否有其他操作时,反馈有客户有进行glibc升级的操作,可能因出现问题,将原glic的rpm包给删除了。当时还做了截图,如下:

glibc
glibc

即然有删除相关包的操作,就将原删除的包装好即可。虽然chroot有问题,不过还可以指定全路径安装,如下:

1# rpm -ivh /dev/cdrom/Packages/glibc-2.12-1.107.e16x86_64.rpm root=/mnt/sysimage/ --force

操作完成后,检查还有selinux开启,根目录下有.autolable等隐藏文件,通过mv将其备份到其他目录。再执行重启操作后,主机正常启动了。

三、总结

系统层面的一些包,尤其是lib库文件,不能轻易删除或升级,因为会存在很多可执行文件的依赖,如果非要升级可以考虑使用官方源或官方提供的rpm包update或Uvh升级(升级rpm包可以加–test参数行测试是否有错),一旦不行,还可以回退到之前的老版本。回退老版本的命令如下:

1rpm -Uvh --oldpackage 旧的包名称

一旦有重要包被删除也不要乱 ,记住操作的包名称,在光盘rescue模式下都可以重新安装的。