序
这篇文章是在昨天忘记自己本地root密码时出现的,以前长期依赖于云产品对于这些功能的认知不足导致自己意外频发。。。才有了这篇文章。
该篇主要是作为自我记录,为以后发生类似意外可以快速解决而写。
该文章参考于https://yq.aliyun.com/articles/702048,感谢这位大佬为我们做的实践。
步骤
一.系统环境
Center OS 7.6 完整版
下载链接:http://mirrors.aliyun.com/centos/7.6.1810/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso
二.开机进入单用户模式
可以看到 最下面的说明 按 e 进入单用户模式,何为单用户模式可以参考下面的链接: https://zhidao.baidu.com/question/276464473.html
三.修改引导
删除第16这一行最后的 rhgb和 quiet参数(在UEFI系统中是linuxefi),删除rhgb和quiet这两个参数是为了显示系统信息
(GRUB是GRand Unified Bootloader的缩写,它是一个多重操作系统启动管理器
quiet表示在启动过程中只有重要信息显示,类似硬件自检的消息不回显示)
添加rd.break enforcing=0
对于rd.break的介绍我在百度中查到的大部分文章都是对linux密码的破解,并没有找到正统的介绍。所以直接引用原文章的解释:
rd.break 的意思是在启动过程中,当initramfs要将控制权交到systemd的时候中断启动过程 这段解释来自http://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密码
输入passwd命令,输入你的密码两次相同(这里不知道为什么我的提示是小方块,系统语言是英文的)
八、更新password文件会导致SELinux安全上下文文件错误。键入以下命令在下次系统引导前重新标记所有文件:
touch /.autorelabel (为了selinux生效)
九、重新挂载系统为只读:
mount -o remount,ro /
十、键入exit命令退出chroot环境:
再次键入exit命令完成初始化,完成系统引导
进入到用户登录界面输入我们换好的新的root密码,就可以登陆成功