【Linux】忘记root密码怎么办?——从启动加载器重置root密码


hello大家好😊

解决方法分析 ❗

我们可以让从initramfs 运行的脚本在某些点暂停,提供root shell,然后在该shell 存在的情况下继续。这主要是为了进行调试,但也可以使用该方法来重置丢失的 root 密码。

initramfs 在系统启动过程中的作用是为了提供一个临时的根文件系统,其中包含了启动所需的基本工具和驱动程序。它帮助系统进行硬件检测、加载必要的模块,并准备好实际的根文件系统。此外,它还可以提供救援功能,用于排除启动问题和执行维护任务

要访问 root shell ,按照以下步骤操作:

  1. 重新启动系统
  2. 按任意键 (Enter 除外) 中断启动加载器倒计时
  3. 将光标移至要启动的内核条目
  4. 按 e编辑选定的条目
  5. 将光标移到内核命令行 (以linux 开头的行)
  6. 附加 rd.break。利用该选项,就在系统从 initramfs 向实际系统移交控制权前,系统将会中断。
  7. 按 ctrl+x使用这些更改进行启动。

示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

此时,系统会显示 root shell,且磁盘上的实际根文件系统会在 /sysroot 中以只读方式挂载。由于进行故障排除经常要求修改根文件系统,因此我们需要将根文件系统更改为读/写。

在 switch_root 提示符中,使用命令mount -o remount,rw /sysroot以读/写形式重新挂载 /sysroot 文件系统,然后使用 chroot /sysroot命令进入 /sysroot 中的 chroot 存放位置。
示例:
在这里插入图片描述

然后使用passwd root命令更改root密码
示例:
在这里插入图片描述

使用touch /.autorelabel命令将系统配置为在启动后自动执行完整 SELinux 重新标记。由于 passwd 命令重新创建了不带SELinux上下文的 /etc/shadow 文件,因此这很有必要
示例:
在这里插入图片描述

最后键入exit 两次,以继续正常启动系统。系统将会运行 SELinux 重新标记,然后再次自行进行重新启动。系统启动后,我们在控制台以新密码登录root用户以验证
示例:
在这里插入图片描述

总结 💯

以上就是如何从boot loader(启动加载器)重置root密码的过程。大家可以自己试一下,注意不要写错命令🎈

感谢 💖

好啦,这次的分享就到这里,感谢大家看到这里🤞

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不怕娜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值