长时间不用的CentOS机器再次开机的时候忽然忘记了密码,总不能重装系统吧,还有好多服务在机器上,于是决定重置root的密码。
如果是已经开启的机器,需要进行关闭,重新启动。
在启动选择内核版本的时候按上下键,令画面停住。
CentOS7每次会有两个版本的内核供选择,简单的来说就是一个主内核版本,一个副内核版本,如果以后内核升级失败无法使用新内核重启时,可以通过这个界面选择旧内核重启进行修复。
言归正传,选择好了内核之后,按下e键,进入编辑界面。
找到以linux16开头的那一行,在行尾加上如下几句话:
1、如果是物理机,添加:rd.break
2、如果是虚拟机,添加:rd.break console=tty0
这里我用的是虚拟机,所以添加rd.break console=tty0,如下图所示:
然后按Ctrl+x进行启动
进入shell环境之后,进行如下操作:
1、将根目录重新挂载,模式可写
switch_root:/# mount -o rw,remount/sysroot
2、变更目录至根目录下
switch_root:/# chroot /sysroot
3、更改密码
sh-4.2# passwd
4、如果安装的是中文系统,此时会出现乱码,可以根据经验直接输入,也可输入以下命令,当次变更语言为英语
sh-4.2# LANG=en_US
5、如果SELinux开启需要更新SELinux上下文,只要创建下面的文件即可 sh-4.2# touch /.autorelabel
6.退出重启 sh-4.2# exit
switch_root:/# exit
详细方法如下:
如果需要更新SELinux上下文,则重启的时间会比较长,有时系统没有提示,不要慌张,系统并没有崩溃。
重启之后即可用新密码进行登录了。