当你在 Proxmox 中运行的 Linux 虚拟机提示“密码错误”,无论是因为系统崩溃、有人改了密码、还是 /etc/shadow 损坏,都可以通过 GRUB 单用户模式 快速重置。
这是最常用、最可靠、无需 ISO、不修改磁盘的解决方案。
适用范围
-
Ubuntu / Debian 系列
-
CentOS / Rocky / AlmaLinux / RHEL 系列
-
任意 KVM 虚拟机
-
Proxmox VE 控制台可访问
-
不需要知道原密码
步骤 1:进入 GRUB 编辑界面
在 Proxmox Web 界面:
-
打开虚拟机 → Console
-
重启虚拟机
-
在看到 GRUB 菜单时,立即按键盘 e
- 实际是一直切换按shift/esc进入的
macOS 用户请注意:
Proxmox Console 是网页上的虚拟键盘环境
直接按键盘
e就可以不需要 Command 或 Option
步骤 2:修改内核启动参数
进入 GRUB 编辑界面后,找到以 linux 开头的那一行,类似:
将其中的
替换成:
也就是最终变成:
步骤 3:使用 root shell 启动
按:
-
Ctrl + X
或 -
F10
系统将不验证密码,直接进入 root shell。
提示符看起来会像:
此时你已经是系统最高权限。
步骤 4:重置密码
重置 root 密码:
或重置普通用户:
输入两遍新密码后会看到:
步骤 5:让更改持久化并继续启动
必须执行以下命令:
sync 写入磁盘(肯能无返回,等几秒,回车)exec /sbin/init 继续正常启动系统
系统恢复为正常 GRUB 配置(不会因为你刚刚的修改而改变)。
完成!现在可以用新密码登录了
虚拟机重启后,用你刚设置的新密码即可正常登录系统。
为什么这方法可靠?(核心原理)
-
GRUB 的
init=/bin/bash允许在 Linux 启动时直接进入 root shell -
不需要密码,也不依赖 PAM
-
你在 GRUB 里按
e的修改是“一次性的”,不会保存 -
对虚拟机磁盘没有破坏性操作
因此非常适合快速恢复系统访问。