在使用 CentOS/RHEL 7/8 时,如果你忘记了 root 密码,可以通过以下几种方法在重启过程中进行干预以重置密码。本文将以centos7.9为例,详细介绍每种方法的步骤和注意事项。
方法1:添加rd.break
mount -o remount,rw /sysroot
chroot /sysroot
passwd root ##当显示updated successfully表明密码已修改完成
touch /.autorelabel
reboot -f ##或exit 退出再执行reboot
方法2 使用init=/bin/bash替换rghb quiet
1.重启系统,等待进入GRUB启动界面,按e进入编辑模式
2.在linux16所在行将替换rghb quiet替换为init=/bin/bash(或init=/bin/sh,/bin/sh通常为/bin/bash软连接),按ctrl +x来进入shell
3.重新挂载系统为读写模式
当前系统挂载为真实根目录/,且已进入bash shell,因此只需要重新挂载为读写模式
mount -o remount,rw /
4.重置密码(命令略)
5.创建autorelabel(命令略)
6.重启系统
注意,在bash shell中,需要使用exec /sbin/init 6来重启系统,因为reboot -f可能不生效,而exit命令可能会卡死。
方法3 结合rw和init=/bin/bash重置密码
1.重启系统进入GRUB界面,按e进入编辑模式
2.使用rw替换ro,在linux16所在行末尾添加init=/bin/bash
3.重置root密码
由于系统已经以读写模式挂载,并且已经直接进入了bash shell,可以直接执行passwd root
命令来重置密码。
4.创建autorelabel(命令略)
5.使用exec /sbin/init 6来重启系统。
方法4 使用rw init=/sysroot/bin/bash 来替换ro参数
1.重启系统进入GRUB界面,按e进入编辑模式
2.在linux16所在行使用rw init=/sysroot/bin/bash 来替换ro参数
3.进入紧急模式,由于已经以可读写模式挂载了 sysroot 目录,所以只需要 chroot 切换根目录
chroot /sysroot
4.重置密码(命令略)
5.创建autorelabel(命令略)
避坑指南
1.将 rw init=sysroot/bin/bash 改为 rw init=/bin/bash 执行,重启后会卡死在 Assuming drive cache: write through 界面。
2.若用 rw init=sysroot/bin/bash 替换 rhgb quiet,则只需 chroot /sysroot ,其余步骤相同。
-
https://linux.cn/article-12181-1.html
原文始发于微信公众号(网络个人修炼):建议收藏!CentOS忘记密码常见重置方法
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论