===问题描述

昨天的时候为了测试一些功能,执行了一个程序,导致CentOS系统内存暴涨,紧接着Xshell就断开连接了,当时端口还是可以访问到的,就是连接不上,free -m内存几乎被占用完了,过了一会儿系统将内存释放了,但是ssh还是连接不到,于是将其进行了重启

但是发现进入系统的时间好长,一直卡在如下界面

CentOS无法正常启动,提示invalid user:root:root_无法


按ESC键查看系统启动状态,看样子报错了,第一眼看到的是invalid user:root:root,无效的用户?

CentOS无法正常启动,提示invalid user:root:root_正常启动_02


===解决方法

尝试进入单用户模式,情况和正常启动一样,无法进入


于是在CD中放入系统光盘,开机的时候启动光盘,选择系统修复模式

CentOS无法正常启动,提示invalid user:root:root_无法_03

语言和键盘格式这些默认即可


选择CD的位置,我本地挂在选择local CD

CentOS无法正常启动,提示invalid user:root:root_正常启动_04


配置网卡,这个可选



选择是否让系统查找硬盘上的RHEL系统(怀疑报错可能是passwd文件损坏了,所以要挂载磁盘到修复模式下),选择继续,图中已经提示系统被挂在到了/mnt/sysp_w_picpath,也就是说如果我们要找系统上的/etc/passwd文件的话,就需要输入/mnt/sysp_w_picpath/etc/passwd对文件进行操作

CentOS无法正常启动,提示invalid user:root:root_正常启动_05


启动shell

CentOS无法正常启动,提示invalid user:root:root_无法_06


这时候etc下的passwd后面多了一个-,将passwd-替换为passwd,最后命令行输入reboot重启,系统正常启动

命令:cp /mnt/sysp_w_picpath/etc/passwd- /mnt/sysp_w_picpath/etc/passwd