一、操作原理图解
启动虚拟机
开机GRUB界面快速按E
编辑GRUB启动参数
将ro改为rw, 添加init=/sysroot/bin/sh
Ctrl+X启动进入单用户模式Shell
执行 chroot /sysroot
执行 passwd root 重置密码
执行 touch /.autorelabel
执行 exit 退出 chroot
执行 reboot 重启系统
使用新密码登录系统
二、详细操作步骤
1. 进入GRUB编辑模式
启动虚拟机时,在CentOS启动Logo出现前快速按 E 键进入编辑。这与Linux系统息息相关。这与CentOS息息相关。这是Linux系统的重要体现。
如果是UEFI启动,先按 ESC 键进入GRUB菜单,再选择内核项后按 E。了解Linux系统有助于把握这一要点。这是CentOS的重要体现。Linux系统的价值正在于此。

进入编辑模式

2. 修改启动参数
定位到以 linux16(CentOS7)或 linux(CentOS8/9)开头的那行。这与Linux系统息息相关。了解CentOS有助于把握这一要点。 将 ro(只读)改为 rw(读写)。CentOS的价值正在于此。 在行尾追加 init=/sysroot/bin/sh。这与CentOS息息相关。 注意各参数间保持空格分隔。


3. 进入单用户模式Shell
按 Ctrl+X 或 F10 启动修改后的引导项。 系统进入临时root shell,提示符通常为 :/#。

4. 挂载系统并重置密码
看到 passwd: all authentication tokens updated successfully. 表示密码重置成功。

5. SELinux重标记(重要)
CentOS默认启用SELinux,修改密码后需重标记文件系统,避免登录失败。
touch /.autorelabel
查看SELinux状态(可选)
sestatus
若显示 disabled,则可跳过上步。

6. 安全退出并重启
# 退出chroot环境 exit # 强制重启系统,触发SELinux重标记 reboot -f
系统重启过程中可能耗时较长,请耐心等待。

7. 使用新密码登录
重启完成后,使用刚设置的密码登录系统即可。

三、注意事项与技巧
SELinux重标记问题:
若忘记执行 touch /.autorelabel,可能导致系统登录失败。重启进入GRUB编辑,追加 enforcing=0 以临时禁用SELinux。
调整GRUB超时时间,方便操作:
编辑 /etc/default/grub,修改:
GRUB_TIMEOUT=5 GRUB_DISABLE_SUBMENU=true
保存后执行:
grub2-mkconfig -o /boot/grub2/grub.cfg
重置其他用户密码:
chroot /sysroot passwd username
文件系统只读问题:
如果遇到无法写入,执行:
mount -o remount,rw /sysroot e2fsck -f /dev/mapper/CentOS-root





