起因

自己在公司一台主机上安装了几个centos7的虚拟机用来给同事练手/测试,前段时间停电的缘故导致机器关机,重启后发现其中一台虚拟机无法启动,进度条很慢,并且进度条满了之后就一直卡在这个界面不能进入系统,今天刚好需要用到就搜了下解决办法。

主要参考了下面文章:

  1. Linux基础——centos 跳过管理员密码进行登录(单用户模式、救援模式)
  2. Linux无法登录,显示module is unknown,一闪而过
  3. 解决“Linux无法登录,显示module is unknown”问题
  4. Centos 7.2 failed to load SELinux policy freezing

 

解决

 开始各种尝试的步骤就不列出来了,下面是最终解决的过程:

首先重启机器,当出现下图这个界面的时候按任意键(除了回车)停留在当前界面,选中需要启动的项,如图:

centos 卡在 last login centos一直卡在进度条_centos

 

在这个界面按“e”进行编辑,如下:

centos 卡在 last login centos一直卡在进度条_centos_02

接着将光标移动到如图所示位置,即当前段落的最后,添加init=/bin/sh(后面没有下划线,截图的时候是光标闪烁):

centos 卡在 last login centos一直卡在进度条_vim_03

添加完成后使用ctrl+x启动,成功后会出现sh-4.2#,如下:

centos 卡在 last login centos一直卡在进度条_无法登录_04

因为要修改文件,因此输入mount -o remount,rw /赋予读写权限(此时可以直接使用passwd命令修改root用户密码,本次不是忘记密码的问题,因此再描述):

centos 卡在 last login centos一直卡在进度条_vim_05

因为在之前尝试修改的时候(类似前面修改init的方式,先后尝试了添加enforcing=0和selinux=0),按修改的顺序遇到了:

  • 启动时出现[!!!]failed to load SELinux policy,freezing错误;期间出现登录提示:Login timed out after 60 seconds
  • 登录时出现module is unknown错误;

两个问题,下面将分别对两个问题进行描述

首先是第一个,这个错误参考了Centos 7.2 failed to load SELinux policy freezing,这篇博客。

编辑/etc/selinux/config文件(也可以使用vi命令):vim /etc/selinux/config

发现果然是将”SELINUXTYPE“参数错误配置为disabled,按照博客中的参数重新配置并保存,下面截图为正确配置:

修改配置文件时候请务必细心,防止出现类似粗心的错误

centos 卡在 last login centos一直卡在进度条_无法登录_06

修改完成后保存退出。

 

然后是第二个错误,参考了解决“Linux无法登录,显示module is unknown”问题、Linux无法登录,显示module is unknown,一闪而过,如下:

查看系统日志:vim /var/log/secure

 在日志最下面发现类似问题,

centos 卡在 last login centos一直卡在进度条_无法登录_07

然后查看配置文件:vim /etc/pam.d/login

centos 卡在 last login centos一直卡在进度条_无法登录_08

因为安装的虚拟机系统为64位,因此此位置也可能不正确,因此直接注释掉”session required /lib/security/pam_limits.so“这一行。保存退出。

完成后重启系统,输入 exec /sbin/int 或者 exec /sbin/reboot重启,但是我在使用这两个命令的时候会卡住,因此直接在vmware中选择电源-重新启动客户机,

成功!


END