SuperAPI AI 工具集

proxmox-vm-recovery

部署与运维

查看项目

更新于 10-16 06:15

技能介绍

用途:用于排查和恢复 Proxmox VE 上无法启动或卡在引导加载阶段的虚拟机,尤其针对 Windows 11 等 UEFI 客户机的启动循环或冻结。

主要能力:先通过 qm status <vmid>、qm config <vmid> 收集虚拟机与宿主机上下文;用 pvesh 向 QEMU Monitor 发送 screendump 抓取控制台截图(pvesh create /nodes/{node_name}/qemu/{vmid}/monitor --command "screendump /root/screenshot.ppm"),再用 Python PIL 转成 PNG,以便判断卡在 BIOS/UEFI 启动菜单、引导日志、蓝屏还是黑屏。

恢复方法:方法 A 针对 Windows 11/UEFI,当卡在 bootmgfw.efi 或 Start boot option 时,认为 efidisk0 的 EFI 变量存储/安全启动密钥可能损坏,先 qm stop <vmid>,备份并移走旧 EFI 磁盘文件,qm set <vmid> --delete efidisk0 删除配置,再用 qm set <vmid> --efidisk0 local:0,efitype=4m,pre-enrolled-keys=1 重建干净 EFI 磁盘并启动验证(存储名 local 需按实际调整)。方法 B 针对混合架构 CPU(如 Intel 12/13/14 代 P/E 核)导致内核早期挂起或崩溃,改用标准 QEMU CPU 类型,例如 qm set <vmid> --cpu x86-64-v3。方法 C 怀疑引导文件缺失或损坏时,通过 modprobe nbd max_part=8、qemu-nbd --connect=/dev/nbd0 <磁盘路径> 挂载虚拟磁盘,用 fdisk -l /dev/nbd0 查看分区,只读挂载 EFI 系统分区(通常为 FAT32 分区 1)检查引导文件,最后 umount 并 qemu-nbd --disconnect /dev/nbd0。

限制:任何虚拟磁盘操作、挂载或编辑前必须先 qm stop <vmid>;删除或替换磁盘文件(尤其是 efidisk0 与配置文件)前必须备份;禁止在 VM 运行时对其磁盘执行写操作,以免数据损坏;不要直接挂载 BitLocker 加密分区,只修复未加密的 EFI 引导分区或配置设置。具体命令中的节点名、存储名和磁盘路径需按实际环境替换。