如何解决VMware忘记登录密码
问题描述
当忘记 CentOS 7 虚拟机 root 用户登录密码时,无法正常登录系统。本教程将详细介绍如何通过单用户模式重置 root 密码。
- 错误现象:输入密码后提示 Login incorrect
- 适用场景:忘记 root 密码,但可以物理/控制台访问虚拟机
- 所需时间:5-10 分钟
- 操作风险:低(不会丢失数据)
就像忘记了家门钥匙,但是可以通过窗户爬进去重新配一把钥匙
一、密码重置步骤详解
步骤 1:进入 GRUB 编辑模式
1. 重启 CentOS 7 虚拟机
2. 在系统启动界面(GRUB 菜单)出现时,按下键盘上的 e 键
3. 进入内核启动参数编辑界面
步骤 2:修改内核启动参数
1. 在编辑界面中,找到以 linux16 开头的内核行
2. 使用方向键将光标移动到该行末尾(LANG=en_US.UTF-8 后面)
3. 添加一个空格,然后输入:init=/bin/bash
修改后的行尾示例:... rhgb quiet LANG=en_US.UTF-8 init=/bin/bash
步骤 3:启动进入单用户模式
1. 按 Ctrl + X 组合键启动系统
2. 系统将直接进入 bash shell 命令行界面,不需要输入密码
3. 出现 bash-4.2# 提示符表示成功进入单用户模式
步骤 4:重新挂载根分区为可读写
1. 执行命令:mount -o remount,rw /
2. 这一步非常重要!默认情况下根分区是只读挂载,无法修改密码
命令执行成功不会有任何输出(没有报错就是成功)
步骤 5:重置 root 密码
1. 执行命令:passwd root
2. 输入新密码(输入时屏幕不会显示任何字符,这是正常的安全机制)
3. 按回车键确认
4. 再次输入相同的新密码
5. 按回车键确认
成功提示:passwd: all authentication tokens updated successfully
▲ 常见错误:两次输入密码不一致
▲ 密码重置成功界面
步骤 6:更新 SELinux 上下文
1. 执行命令:touch /.autorelabel
2. 这个命令会在系统重启时自动重新标记所有文件的 SELinux 上下文
⚠️ 这一步非常重要!不执行的话重启后可能无法正常登录系统
命令执行成功不会有任何输出
步骤 7:重启系统
1. 执行命令:exec /sbin/init
2. 系统将继续正常启动流程
3. 首次启动时会自动进行 SELinux 重新标记,屏幕上会显示进度信息
4. 重新标记完成后系统会自动进入登录界面
自动重启后点击Not listed
账号为root
输入密码
▲ SELinux 重新标记启动界面
