CentOS 7 忘记root密码的解决方法
这是自己忘记密码root密码第二次了,可以再一再二但是不能再三。因此在此记录在网上找的
如何更换root密码的方法。
(这篇文章是参考https://blog.csdn.net/q290994/article/details/78825667,但整个过程自己亲测有效)
一、系统环境
CentOS 7.5 最小安装版
二、开机进入单用户模式(图片因为自己没有截图故使用这篇文章的原图以作说明)
可以看到 最下面的说明 按 e 进入单用户模式(那为什么要进入单用户模式更换root 密码,大家可以
参考下面来自百度知道的回答)
0:关机
1:单用户模式
2:无网络支持的多用户模式
3:有网络支持的多用户模式
4:保留,未使用
5:有网络支持有X-Window支持的多用户模式
6:重新引导系统,即重启
Linux 系统处于正常状态时,服务器主机开机(或重新启动)后,能够由系统引导器程序自动
引导 Linux 系统启动到多用户模式,并提供正常的网络服务。如果系统管理员需要进行系统维护
或系统出现启动异常时,就需要进入单用户模式或修复模式对系统进行管理了。使用单用户模式有
一个前提,就是您的系统引导器(grub)能正常工作,否则要进行系统维护就要使用修复模式。
特注:进入单用户模式,没有开启网络服务,不支持远程连接
Linux 系统中不同的运行级别(Run Level)代表了系统的不同运行状态,例如 Linux 服务器正常运
行时处于运行级别3,是能够提供网络服务的多用户模式;而运行级别 1 只允许管理员通过服务器主
机的单一控制台进行操作,即“单用户模式”。
三、修改引导
删除第16这一行最后的 rhgb和 quiet参数(在UEFI系统中是linuxefi),删除rhgb和quiet这两个参数
是为了显示系统信息
(GRUB是GRand Unified Bootloader的缩写,它是一个多重操作系统启动管理器
quiet表示在启动过程中只有重要信息显示,类似硬件自检的消息不回显示)
添加rd.break enforcing=0 (rd.break 的意思是在启动过程中,当initramfs要将控制权交到systemd的
时候中断启动过程 这段解释来自unix.net bbs网友的回答)
四、按CTRL+X用改变的参数引导系统
五、在/sysroot/文件系统被挂载为只读时,你不能改变密码,因为文件系统为不可写入。重
新挂载文件系统为可写入。
mount -o remount,rw /sysroot
remount后面为什么要用逗号? 因为你指定了多个选项
进去后输入命令mount,发现根为/sysroot/,并且不能写,只有ro=readonly权限;
mount -o remount,rw /sysroot/,重新挂载,之后mount,发现有了r,w权限
六、文件系统被重新挂载为可写,像下面这样改变文件系统的root
chroot /sysroot
七、输入passwd命令,接下来命令行提示改变root密码
八、更新password文件会导致SELinux安全上下文文件错误。键入以下命令在下次系统引导前重新标记所有文件:
touch /.autorelabel (为了selinux生效)
九、重新挂载系统为只读:
mount -o remount,ro /
十、键入exit命令退出chroot环境:
exit
再次键入exit命令完成初始化,完成系统引导。
exit
十一、执行最一次exit 系统会重启并进入引导(这个过程相对有点长)
进入到用户登录界面输入我们换好的新的root密码,就可以登陆成功(整个过程如上图,并且自己
都一一验证过并成功登陆到root)
但是感觉centos 7系统开机相对于以前有些变慢了,不知道是错觉还是上面的改动影响到了开机速度
(记录下来,待以后研究了)