虚拟机linux忘记用户密码怎么办
虚拟机linux忘记用户密码怎么办详细介绍
如果在虚拟机中忘记了 Linux 用户密码,可以通过以下方法重置:
一、通过单用户模式重置密码
单用户模式允许以 root 权限直接修改密码,无需原密码验证。具体步骤因 Linux 发行版和虚拟机工具略有差异:
通用步骤(适用于大多数 Linux 系统)
- 重启虚拟机,在启动过程中按 E 键进入 GRUB 引导编辑模式。
- 修改内核参数:
- 找到以
linux或linux16开头的行,删除末尾的ro或quiet splash,添加以下参数之一:- 传统单用户模式:
rw single init=/bin/bash(适用于 CentOS 7、Ubuntu 20.04 及更早版本)。 - systemd 救援模式:
systemd.unit=rescue.target(适用于 Ubuntu 22.04、Fedora 等 systemd 系统)。
- 传统单用户模式:
- 例如,修改后的行可能为:
linux /vmlinuz-5.4.0-107-generic rw single init=/bin/bash。
- 找到以
- 启动单用户模式:按 Ctrl+X 或 F10 启动系统。
- 挂载根文件系统为可读写(部分系统可能已自动挂载):bash
remount,rw / - 修改密码:bash
用户名输入新密码并确认,提示成功后即完成重置。
- 修复 SELinux 上下文(仅限启用 SELinux 的系统,如 CentOS):bash
/.autorelabel - 重启系统:bash
/sbin/init
特定发行版调整
- Ubuntu 22.04:在 GRUB 编辑模式中,将
ro recovery nomodeset修改为rw single init=/bin/bash。 - CentOS 7:可添加
rd.break参数,进入后需执行chroot /sysroot切换根目录。 - 统信 UOS:1040d 及以上版本需通过 Live CD 重置,1040d 以下版本可进入单用户模式并修改密码。
- 银河麒麟:在 GRUB 中添加
init=/bin/bash console=tty0,进入后直接使用passwd命令。
二、通过救援模式或 Live CD 重置
若单用户模式无法进入(如文件系统损坏),可使用安装盘或 Live CD:
- 准备工具:
- 下载对应 Linux 发行版的安装 ISO 镜像(如 Ubuntu Live CD)。
- 在虚拟机设置中挂载该 ISO 并设置为第一启动项。
- 启动并进入救援模式:
- 选择 Try Ubuntu 或 Rescue Mode 进入临时系统。
- 挂载原系统分区:
bash/dev/sdaX /mnt若使用 LVM,需先激活逻辑卷:
bashvgchange 卷组名/dev/卷组名/root /mnt
- 切换到原系统环境:
bash/mnt - 修改密码:
bash用户名 - 退出并重启:
bash/mnt
三、虚拟机管理工具的特殊操作
VMware
- 重启虚拟机,在启动界面按 E 键进入编辑模式。
- 在
linux行末尾添加init=/bin/bash,按 Ctrl+X 启动。 - 后续步骤同单用户模式。
VirtualBox
- 重启虚拟机,在 GRUB 界面按 E 编辑启动项。
- 添加
init=/bin/bash,按 Ctrl+X 进入单用户模式。 - 执行
mount -o remount,rw /后修改密码。
四、注意事项
- GRUB 密码保护:若 GRUB 设置了密码,需输入密码才能编辑启动项。此时需通过 Live CD 绕过。
- 密码策略:新密码需符合系统要求(如长度、复杂度),否则可能重置失败。
- SELinux 处理:在 CentOS 等系统中,未执行
touch /.autorelabel可能导致重启后无法登录。 - 快照恢复:若虚拟机有快照,可直接回滚到密码已知的状态。
五、常见问题处理
- 文件系统只读:执行
mount -o remount,rw /重新挂载根目录。 - 无法进入 GRUB 菜单:部分系统默认隐藏 GRUB,需在启动时按 Shift 或 Esc 键显示。
- 多用户系统:若忘记普通用户密码,可在单用户模式下直接修改;若忘记 root 密码,需确保以 root 身份操作。
通过以上方法,可快速重置虚拟机 Linux 用户密码。建议定期备份重要数据,并设置强密码以避免类似问题。