获取验证码
本教程适用于 Proxmox VE 虚拟化平台,针对原虚拟机系统崩溃、无法启动,但磁盘内留存重要业务 / 个人文件的救援场景。平台网页端不支持直接导入 local-lvm 类型逻辑卷,本文提供无复制、零额外存储开销的命令行挂载方案。完整覆盖磁盘挂载、VirtIO 驱动离线部署、磁盘安全联机分配盘符全流程,详细梳理命令报错、系统不识别硬盘、误格式化清空数据等高频故障的规避与解决方法,无网络环境也可完整操作,适合运维与个人用户快速导出损坏虚拟机数据。
1.1 适用场景
原有虚拟机因系统文件损坏、引导故障等问题无法正常开机,磁盘逻辑卷完好,内部存在文档、照片、业务资料等需要留存的数据。
平台限制:Proxmox VE 网页端「添加硬盘 - 导入磁盘」功能仅兼容文件存储(qcow2 镜像),无法识别 local-lvm 逻辑卷,可视化面板不能直接跨虚拟机挂载已有 LVM 磁盘,必须通过节点 Shell 执行qm set命令完成绑定。
1.2 硬性安全规范(操作前必须遵守,避免数据损毁)
存放源磁盘的故障虚拟机全程保持完全关机停止状态,禁止开机;同一 LVM 逻辑卷不允许两台虚拟机同时挂载读写,会直接造成分区文件损坏。
Windows 系统识别到空白磁盘弹出「初始化磁盘」窗口时,禁止点击确定,初始化会重建分区表,全盘清除原有所有数据。
全流程仅执行读取操作,不执行格式化、分区删除、磁盘覆盖类操作。
操作完成后,需执行命令解绑磁盘,再恢复操作故障虚拟机。
2.1 前置准备
将故障源虚拟机、临时备份虚拟机全部关机,确认两台主机状态为「已停止」;
进入 PVE 集群对应节点,打开左侧菜单栏「Shell」终端,手动输入命令(不建议直接复制粘贴,会带入终端隐藏控制字符导致命令报错)。
2.2 标准挂载命令模板
qm set 【目标虚拟机ID】 --virtio【设备序号】 存储池:磁盘卷名,cache=writeback,discard=on
实操示例(通用参考)
故障虚拟机 ID:100,磁盘卷:vm-100-disk-1;临时备份虚拟机 ID:102
qm set 102 --virtio1 local-lvm:vm-100-disk-1,cache=writeback,discard=on
参数详解
qm set:PVE 虚拟机配置修改核心命令;
102:临时用于读取数据的目标虚拟机 ID;
--virtio1:指定 virtio 总线第二块磁盘设备,virtio0 为虚拟机自带系统盘;
local-lvm:vm-100-disk-1:故障虚拟机磁盘完整路径,格式为「存储池:逻辑卷名称」;
cache=writeback:回写缓存,兼顾读写性能;discard=on:开启 TRIM,适配 SSD 介质;
避坑说明:新版 PVE 磁盘附加参数不再支持ssd=1,写入该参数会触发 400 参数校验失败,命令中必须删除。
2.3 挂载成功校验
终端输出update VM 【虚拟机ID】: --virtioxxx xxxx即代表配置写入完成。
刷新目标虚拟机硬件页面,硬件列表会新增一条 virtio 类型硬盘,容量与故障机原磁盘一致,代表底层硬件绑定生效。
3.1 故障根因
硬件面板已识别磁盘,但 Windows 磁盘管理无对应大容量磁盘,原因为系统缺少 VirtIO Block 块设备驱动,无法识别 virtio 总线挂载的磁盘设备。
3.2 离线驱动安装(无需网络)
确认虚拟机已挂载virtio-win驱动 ISO 镜像,系统内会生成 CD/DVD 光驱盘符;
进入驱动目录路径:光驱盘符:\amd64\w10\viostor,该文件夹为 Win10/Win11 专用 VirtIO 磁盘驱动;
右键 Windows 开始菜单,打开「设备管理器」,点击顶部菜单栏【操作】-【扫描检测硬件改动】;
设备列表会出现带黄色感叹号的未知存储控制器,右键设备选择「更新驱动程序」;
选择「浏览我的计算机以查找驱动程序」,路径指定上述viostor文件夹,系统自动匹配安装磁盘驱动;
驱动安装完成后,完整关闭虚拟机并等待 30 秒再开机,仅执行系统重启无法重新枚举硬件设备。
虚拟机开机后,打开「磁盘管理」工具,系统检测到未初始化磁盘会弹出初始化窗口,直接点击【取消】;
在磁盘管理窗口下方左侧栏,找到大容量未联机磁盘,右键磁盘标识栏,选择【联机】;
联机完成后,磁盘原有 NTFS 分区会自动加载,右键分区卷选择「更改驱动器号和路径」;
点击「添加」,分配空闲盘符(如 F 盘),确认后关闭窗口;
打开「此电脑」,即可访问分配盘符,完整复制故障磁盘内全部文件、文件夹。
全部文件拷贝备份完毕后,关闭目标临时虚拟机,等待状态变为已停止;
回到节点 Shell,执行磁盘解绑命令,从虚拟机硬件列表移除故障磁盘:
qm set 【目标虚拟机ID】 --delete virtio【设备序号】
示例:
qm set 102 --delete virtio1
解绑成功后,可正常开机、修改原故障虚拟机,磁盘恢复仅归属原虚拟机使用。
粘贴命令提示 command not found
复制文本会带入^[[200~等终端不可见转义字符,破坏命令结构,解决方式为手动逐字输入完整挂载命令。
执行命令提示 400 参数校验失败
磁盘参数后缀携带ssd=1,新版 PVE schema 不支持该磁盘属性,删除该字段即可正常执行。
挂载硬件可见,系统重启仍看不到磁盘
Windows 硬件枚举仅在完整断电开机时执行,系统软重启不会重新识别 virtio 硬件,必须关机等待后重启。
误点击磁盘初始化,数据全部丢失
初始化会清空分区表与全部文件,弹窗出现优先取消,使用「联机」功能读取原有分区,不会改动磁盘任何数据。
虚拟机断网,能否正常识别磁盘?
完全不受网络状态影响,VirtIO 驱动存储在本地 ISO 光驱内,离线环境可完整安装、识别磁盘。
网页端无法找到导入 LVM 磁盘入口
local-lvm 逻辑卷为块存储,网页导入功能仅适配文件存储 qcow2 镜像,仅能通过qm set命令跨机挂载。
两台虚拟机同时挂载同一块磁盘会怎样?
双机同时读写同一逻辑卷会造成分区文件系统损坏,严重时磁盘全部数据无法恢复,操作全程故障机必须关机。