一、问题描述
客户重启CTyunOS系统以后进入了紧急模式,输入了正确的密码以后为什么进不去系统?
二、验证问题
验证的时候分为几步:
1.验证root密码进行登陆
在机器正常模式下,修改root密码,同时把/etc/fstab下的uuid随便增加一个字符进行问题浮现:
输入修改过后的root密码,显示进不去系统,多次登陆均不能正常登陆。
2.验证进入单用户修改root密码再次进行登陆
再第一步的情况下,系统进不去,这个时候重启进入单用户,修改root密码试下:
进入单用户修改了root密码还是进不去系统。
这是为什么呢?
让我们分析下背后的逻辑
三、过程分析
紧急模式下输入的密码即为系统安装时设置的 root账户密码,其实际存储在根文件系统的 /etc/shadow
文件中。而客户后期一般是更改过root密码的,这个时候initramfs文件中的/etc/shadow并没有更新。所以导致输入root密码总是进不去。这个时候输入的密码应该是生成initramfs时候的密码。
那这里有个问题就显得很重要,紧急模式的root账户和密码是存在于/boot目录下的initramfs的/etc/shadow中的,而我们修改的root密码是在根目录的/etc/shadow文件下。
用一张图解释下就比较清楚,如下图所示:
四、处理方法
那针对这种情况我们有2种处理方法:
1.记录下最初的root密码
2.进入单用户以后使用命令dracut -f 重新生成initramfs就可以了。