服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-26 简米科技 3,409 字 8 分钟阅读

虚拟机的root密码忘了怎么办?如何重置虚拟机root权限?忘记密码快速找回方法

导读虚拟机root密码忘了不用重装系统:只要能进入虚拟机控制台,通过 GRUB 单用户模式或 rd.break 参数,通常三到五分钟就能重置,数据一条不丢,虚拟机root密码忘了怎么办:先判断你卡在哪一层很多人一上来就问命令,结果发现连虚拟机的开机画面都看不到,重置密码这件事,卡点往往不在 Linux 本身,而在虚……

虚拟机root密码忘了不用重装系统:只要能进入虚拟机控制台,通过 GRUB 单用户模式或 rd.break 参数,通常三到五分钟就能重置,数据一条不丢。

虚拟机root密码忘了怎么办:先判断你卡在哪一层

很多人一上来就问命令,结果发现连虚拟机的开机画面都看不到,重置密码这件事,卡点往往不在 Linux 本身,而在虚拟化平台。

先问自己三个问题:

  • 虚拟机开机时,屏幕上能不能看到 GRUB 菜单?
  • 键盘输入能不能送进虚拟机(还是被宿主机截走了)?
  • 虚拟磁盘有没有做全盘加密?

行业共识认为,绝大多数失败案例都不是命令敲错,而是控制台进不去或者GRUB 菜单一闪而过根本没机会按方向键,所以第一步永远是打开虚拟机控制台,确认你能看到内核启动日志。

VMware Workstation 与 ESXi:虚拟机root密码重置步骤

这两类平台的思路一致把虚拟机当成一台物理机来操作,只是"显示器"换成了控制台窗口。

  • Workstation / Player:直接点进虚拟机窗口,重启时鼠标点进去,GRUB 出现瞬间按上下方向键停住倒计时。
  • ESXi / vCenter:用 Web Console 或 Remote Console 打开虚拟机控制台,若 GRUB 倒计时太快,先在虚拟机选项里把 bios.bootDelay 设为 5000,重启后就有足够时间按键。
  • 键盘失灵:控制台里按 Ctrl+Alt+Del 走"发送键"菜单,别指望物理键盘的组合键能透传。

顺带区分一个常见误区:ESXi 宿主机自身的 root 密码遗忘,和虚拟机内部 root 密码遗忘是两件事,前者要用 DCUI 或主机配置文件恢复,后者才是本文讨论的单用户模式。

不同 Linux 发行版,进维护模式的方式不一样

发行版 中断启动方式 进入后的关键动作
CentOS / RHEL 7 及以上 内核行加 rd.break 重挂 /sysroot 后 chroot
CentOS / RHEL 6 内核行加 single 或 1 直接 passwd root
Ubuntu 恢复模式 → root shell 先 mount -o rw,remount /
Debian 内核行加 rw init=/bin/bash 改完密码 exec /sbin/init
openSUSE 内核行加 init=/bin/bash 重挂根分区为读写

CentOS 7虚拟机忘记root密码怎么重置:rd.break 六步走

这是被问得最多的场景,命令记牢,闭眼都能操作。

  1. 重启虚拟机,在 GRUB 菜单选中默认启动项,按 e 进入编辑。
  2. 找到以 linux16 开头的行(UEFI 启动是 linuxefi),在行尾空一格加上 rd.break,按 Ctrl+X 启动。
  3. 系统会停在 switch_root:/# 提示符,此时根文件系统是只读的,执行 mount -o remount,rw /sysroot。
  4. 执行 chroot /sysroot,把根切到真实系统。
  5. 执行 passwd root,输入两遍新密码,密码复杂度不够会被系统直接拒绝,别硬怪键盘。
  6. 执行 touch /.autorelabel,exit 两次,系统自动重启。

为什么第 6 步的 autorelabel 不能省

SELinux 处于 enforcing 状态时,/etc/shadow 的写入上下文会变,不触发一次全盘重打标签,重启后很可能表现为"密码明明改对了却登录不进去",甚至卡在登录循环,业内专家指出,EarlyBird 时代的不少"改密码失败"工单,根因都是漏了这一行。

代价是首次重启会重新打标签,机器越慢耗时越长,几分钟到十几分钟都有可能,属于正常现象,若确认 SELinux 已关闭(getenforce 返回 Disabled),这一步可以跳过。

常见报错与踩坑

  • passwd: Authentication token manipulation error:根分区还是只读,回退检查 mount -o remount,rw /sysroot 是否执行成功。
  • GRUB 需要密码:RHEL 9、Rocky Linux 9 之后默认鼓励用 grub2-setpassword 加锁,此时按 e 会先要 GRUB 用户名密码,忘了 GRUB 密码,就得改用安装介质进救援模式挂载磁盘处理。
  • /boot 在 LUKS 加密盘上:启动早期就要输解密口令,没有口令这条路走不通,只能从备份或快照恢复。

KVM虚拟机单用户模式修改root密码,和物理机差在哪

命令一模一样,差别全在"入口"。

KVM 客户机默认不一定把 console=ttyS0 写进内核参数,virsh console 虚拟机名 可能一片黑屏,更稳的做法是:

  • 用 virsh vncdisplay 虚拟机名 拿到 VNC 端口,再用 VNC 客户端连图形控制台;
  • 或者直接用 virt-manager 打开虚拟机窗口,操作体验等同本地机器。

Proxmox VE 里点虚拟机的"控制台"也是同一逻辑,进到 GRUB 之后,加 rd.break 或 single 的流程与物理服务器完全一致,区别在于重启动作建议从宿主机侧发起,virsh reboot,避免在只读文件系统状态下执行 reboot 卡死。

重置虚拟机root密码要花多少钱:四条路的成本对比

有人担心"改密码是不是得买服务",先把账算清楚。

方案 时间成本 数据风险 适用场景
GRUB 单用户 / rd.break 数分钟 无,数据完整保留 有控制台访问权限
快照回滚 数分钟 回滚点之后的数据丢失 改密码前刚打过快照
挂载虚拟磁盘到另一台机器改 shadow 十几分钟 低,但操作繁琐 控制台彻底进不去
重装系统 + 重部署业务 数小时到数天 未备份数据全丢 密码已不是主要问题

商业支持方面,据近年来的公开报价,一次远程协助或上门处理通常按工时计费,企业级支持合同内的场景多数免费,真正贵的从来不是重置密码这个动作,而是业务停机那段时间,相当一部分中小企业选择自己动手,原因也在这里。

快照与模板:让"忘密码"变成小事的日常习惯

重置只是补救,治本靠流程。

  • 部署完虚拟机先打一个干净快照,命名带日期和用途,别用"快照1"这种名字。
  • 用虚拟机模板批量发机器时,把 root 密码纳入口令管理工具,而不是记在某个人脑子里。
  • 生产环境开启 grub2-setpassword 保护 GRUB,但要把 GRUB 密码和 root 密码分开存管,否则等于把两把钥匙串在一根绳上。
  • 开启 SELinux 的机器,改完密码别忘了 /.autorelabel 这回事,写进运维手册。

Q&A:关于虚拟机root密码重置的三个高频问题

虚拟机root密码忘了怎么办,不改密码直接重装可以吗?

技术上可行,但代价完全不对等,重装意味着重新装包、重新配服务、重新导数据,而单用户模式重置只动一个文件里的一个字段,除非系统本身已经损坏到无法进入维护模式,否则没必要走重装这条路。

云服务器上的虚拟机root密码重置,和本地机房操作一样吗?

不完全一样,云主机通常不给你 GRUB 界面,而是提供控制台 VNC 或"重置实例密码"功能,部分厂商要求先关机再重置,重置后还需重启才生效,本地机房或自建 ESXi 环境则按上文单用户模式操作,自由度高但风险也由自己承担。

重置虚拟机root密码后,原来的密码还能登录吗?

不能。passwd 会原地覆盖 /etc/shadow 中该账户的哈希值,旧密码立即失效,也没有历史记录可查,如果有其他账户拥有 sudo 权限,也可以用那个账户执行 sudo passwd root 完成重置,流程比单用户模式更简单,但前提是那个账户的密码你还记得。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱