l
白菜一颗
发布于 2025-03-24 / 0 阅读
0
0

CentOS 7/8 系统密码重置

CentOS 7/8 系统密码重置(root 密码恢复)

如果你忘记了 CentOS 7 或 CentOS 8root 密码,无法登录系统,可以使用 单用户模式(rescue mode)Live CD 进行密码重置。


方法 1:使用 GRUB 进入单用户模式(推荐)

适用于 本机访问,无法通过 SSH 登录,但可以物理访问服务器

1. 重启系统,在 GRUB 菜单界面按 e 进入编辑模式

  • 重启 CentOS,在 启动引导(GRUB)界面,当看到 内核启动选项 时,按下 e 进入编辑模式。

2. 修改 GRUB 启动参数

找到以 linux16linux(CentOS 8) 开头的那一行:

arduino

复制编辑

linux16 /vmlinuz-xxx root=UUID=xxxxx ro crashkernel=auto rhgb quiet

ro(只读)改为 rw(读写),并在行尾添加:

ini

复制编辑

init=/bin/bash

最终修改后类似:

bash

复制编辑

linux16 /vmlinuz-xxx root=UUID=xxxxx rw init=/bin/bash

Ctrl + X 启动系统。

3. 重置 root 密码

系统进入 单用户模式 后,输入以下命令修改密码:

bash

复制编辑

passwd root

输入新的 root 密码(两次确认)。

4. 重新创建 SELinux 密码标签

bash

复制编辑

touch /.autorelabel

说明

  • CentOS 7/8 默认启用 SELinux,如果不执行 touch /.autorelabel,重启后仍然无法登录。

5. 重启系统

bash

复制编辑

exec /sbin/init

或者使用

bash

复制编辑

reboot -f

重启后,即可使用新密码登录系统!


方法 2:使用 Live CD 进行密码重置

如果服务器 无法正常启动,可以使用 CentOS Live CD(U 盘)进入救援模式修改密码。

1. 启动 Live CD

  • 使用 CentOS 7/8 的 ISO 镜像 制作 U 盘启动盘(如 Rufus)。

  • 启动系统时,选择 “Troubleshooting” > “Rescue a CentOS System”

2. 进入救援模式

  • 选择 “Continue” 进入救援模式。

  • 运行以下命令,挂载系统:

bash

复制编辑

chroot /mnt/sysimage

3. 修改 root 密码

bash

复制编辑

passwd root

输入新的 root 密码。

4. 重新创建 SELinux 标签

bash

复制编辑

touch /.autorelabel

5. 退出并重启

bash

复制编辑

exit reboot


总结

方法

适用场景

是否影响数据

GRUB 单用户模式(推荐)

可以进入 GRUB 界面,但忘记密码

不会影响数据

Live CD 救援模式

GRUB 破损、无法进入系统

不会影响数据

🚀 推荐使用 GRUB 单用户模式,最快速恢复 root 密码!

4o


评论