借助initramfs文件系统 访问到我们操作系统真正的/ 然后进行root密码的恢复
一:开机时内核引导项按e进入编辑模式
二:找到linux开头的那行 后面添加rd.break(微型的文件系统initramfs)
此处为rhel8.3系统
此处为CentOS7.9系统
三:ctrl+x保存进入initramfs文件系统
当前/为initramfs文件系统的/
/ sysroot才是实际操作系统的/
四:以读写的方式重新挂载一下/sysroot
五:将当前initramfs系统/换为/sysroot
现在使用 passwd 命令操作的还是initramfs文件系统中的/etc/shadow文件
所以要将当前/换为/sysroot
六:更改root密码
通过passwd root命令 对root密码重置
或者通过接收标准输入方式更改root密码
七:创建/.autorelabel隐藏文件(selinux关闭时不用做)
在重启时系统检测到/目录下有.开头的autorelabel的隐藏文件时
会重打系统selinux标签以及selinux的安全上下文
防止非原有/的用户对这个文件更改造成权限不一致的问题
selinux开启时不进行这步 root密码修改会失败