最近客户给了一个服务器,给我在上面安装环境测试的。

128G的内存,也够用的

64核的CPU
为了安全,我还是整了个虚拟机
[root@YX-TEST-SERVER dev-vm-test]# virsh list
Id Name State
-------------------------------
38 dev-test-100 running
问题是,我忘记密码了
以下就由我的AI小助手给大家总结一下这个问题如何解决吧
KVM/virsh 虚拟机密码重置记录(virt-rescue 排障全过程)
在 KVM/libvirt 虚拟化环境中,通过 virsh 管理虚拟机时,遗忘了 Linux 虚拟机 root 密码,需要通过宿主机进行离线密码重置。
本次操作环境:
在宿主机执行:
virt-rescue -d dev-test-100
提示:
domain is a live virtual machine
Use --ro for read-only access
说明虚拟机正在运行,无法直接写入磁盘。
初始尝试:
chroot /sysroot
报错:
chroot: failed to run command '/bin/sh': No such file or directory
原因:未正确挂载 root 分区。
通过:
lsblk -f
识别到:
mount /dev/sda4 /sysroot
确认:
ls /sysroot
输出正常 Linux 目录结构:
etc bin usr var home root boot
✔ 确认为正确 root 文件系统
mount --bind /dev /sysroot/dev
mount --bind /proc /sysroot/proc
mount --bind /sys /sysroot/sys
chroot /sysroot /bin/bash
passwd root
错误提示:
BAD PASSWORD: The password contains less than 3 character classes
BAD PASSWORD: dictionary check failed
原因:
错误:
Authentication token manipulation error
原因分析:
本次问题本质不是密码问题,而是:
❌ root 文件系统未完全进入可写 chroot 环境
本次完整恢复流程如下:
virt-rescue -d <vm>
lsblk -f
mount /dev/sda4 /sysroot
mount --bind /dev /sysroot/dev
mount --bind /proc /sysroot/proc
mount --bind /sys /sysroot/sys
chroot /sysroot /bin/bash
passwd root
reboot -f
# 进入虚拟机
virsh console dev-test-100
# 输入root
# 输入密码
就可以登录的了



