Proxmox 虚拟机忘记密码?用 GRUB 单用户模式 5 分钟重置密码(Ubuntu / Debian / CentOS 通用)

当你在 Proxmox 中运行的 Linux 虚拟机提示“密码错误”,无论是因为系统崩溃、有人改了密码、还是 /etc/shadow 损坏,都可以通过 GRUB 单用户模式 快速重置。

这是最常用、最可靠、无需 ISO、不修改磁盘的解决方案。


适用范围

  • Ubuntu / Debian 系列

  • CentOS / Rocky / AlmaLinux / RHEL 系列

  • 任意 KVM 虚拟机

  • Proxmox VE 控制台可访问

  • 不需要知道原密码


步骤 1:进入 GRUB 编辑界面

在 Proxmox Web 界面:

  1. 打开虚拟机 → Console

  2. 重启虚拟机

  3. 在看到 GRUB 菜单时,立即按键盘 e

  4. 实际是一直切换按shift/esc进入的

macOS 用户请注意:

  • Proxmox Console 是网页上的虚拟键盘环境

  • 直接按键盘 e 就可以

  • 不需要 Command 或 Option


步骤 2:修改内核启动参数

进入 GRUB 编辑界面后,找到以 linux 开头的那一行,类似:

 
linux /vmlinuz-6.8.0-87-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv ro

将其中的

 
ro

替换成:

rw init=/bin/bash

也就是最终变成:

linux /vmlinuz-6.8.0-87-generic root=/dev/mapper/ubuntu--vg-ubuntu--lv rw init=/bin/bash

步骤 3:使用 root shell 启动

按:

  • Ctrl + X

  • F10

系统将不验证密码,直接进入 root shell。

提示符看起来会像:

 
root@(none):/#

此时你已经是系统最高权限。


步骤 4:重置密码

重置 root 密码:

 
passwd root

或重置普通用户:

 
passwd ubuntu

输入两遍新密码后会看到:

 
password updated successfully

步骤 5:让更改持久化并继续启动

必须执行以下命令:

 
sync exec /sbin/init

sync 写入磁盘(肯能无返回,等几秒,回车)
exec /sbin/init 继续正常启动系统

系统恢复为正常 GRUB 配置(不会因为你刚刚的修改而改变)。


完成!现在可以用新密码登录了

虚拟机重启后,用你刚设置的新密码即可正常登录系统。


为什么这方法可靠?(核心原理)

  1. GRUB 的 init=/bin/bash 允许在 Linux 启动时直接进入 root shell

  2. 不需要密码,也不依赖 PAM

  3. 你在 GRUB 里按 e 的修改是“一次性的”,不会保存

  4. 对虚拟机磁盘没有破坏性操作

因此非常适合快速恢复系统访问。

posted @ 2025-11-24 13:46  若-飞  阅读(69)  评论(0)    收藏  举报