问题描述:

centos7在开机的时候一直停留在“starting switch Root...........”,不能正常开机。

报错信息显示“failed to execute /bin/sh,give up :no such file or dictionary”和“/bin/sh: /usr/sbin/sulogin:no such file or dictionary"

原因分析:

进入u盘启动选择救援模式,发现其中的/lib64 被修改过。

解决方法:

进入u盘救援模式:

将centos系统u盘插上机器开机,并选择u盘启动,进入系统安装初始界面,选择最后由一项Troubleshooting

后选择第二项Rescue a CentOS system进入系统救援模式,期间分别按键“1→enter

执行chroot /mnt/sysimage进行根切换,发现chroot命令不生效。

先查看/lib64的软连接是否存在问题,再检查/usr/lib64里面的文件是否存在。

本次两个服务器均是lib64的问题(一个是链接错误,一个是查/usr/lib64里面的文件丢失)

分别修改软连接(注意:lib64的链接一定得是usr/lib64,不能是/usr/lib64)和从u盘里拷贝完整的lib64内的文件到系统里,然后退出救援模式重启系统

后续问题1

其中一个在修复后仍然存在开机故障,还是卡在开机界面,报错信息里面有selinux的相关信息。初步推断是selinux没有关导致开机存在问题。

解决方法:

再次进入u盘救援模式,修改系统下的/etc/selinux/config文件内容,将其中的    SELINUX=enforcing    改为    SELINUX=disabled   。再推出并重启系统。

后续问题2:

再启动系统时,继续卡在开机界面。最后一行停留在“starting update UTMP about system runlevel changes"   

解决方法:

进入recovery模式,执行命令“sudo systemctl set-default muti-user.target”(这一步是将系统改为命令行界面模式)

然后重启系统

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐