硬盘不够时借用其他盘合并 VMDK 快照链
2026/7/25...大约 2 分钟
硬盘不够时借用其他盘合并 VMDK 快照链
VMware Workstation 虚拟机若长期依赖快照,磁盘会变成「基础盘 + 多层增量盘」:
dev.vmdk
dev-000001.vmdk
dev-000002.vmdk ← 当前 .vmx 指向这里本盘空间不足以 Consolidate / 删除快照时,可在有足够空间的其他盘上,用 vmware-vdiskmanager 把整条快照链克隆成一张独立磁盘,验证通过后改 .vmx 指向新盘、删旧链,再视需要把新盘搬回虚拟机目录。
前提条件
- 虚拟机已完全关机,不要处于挂起状态。
- 借用盘可用空间 ≥ 合并后预估体积,并留余量。
- 操作前尽量备份整个虚拟机目录,或至少确认能回退到旧快照链。
一、确认当前磁盘
查看目录中的 VMDK,并确认 .vmx 挂载的是最新一层(通常是 *-00000x.vmdk):
Get-ChildItem -File -Filter "*.vmdk" | Select-Object Name, Length, LastWriteTimescsi0:0.fileName = "dev-000002.vmdk"二、在借用盘上克隆为独立磁盘
对当前正在使用的那一层做克隆(工具一般在 C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe):
mkdir C:\VMwareMerge-dev
& "C:\Program Files\VMware\VMware Workstation\vmware-vdiskmanager.exe" `
-r "Z:\Virtual Machines\dev\dev-000002.vmdk" `
-t 0 `
"C:\VMwareMerge-dev\dev-merged.vmdk"-r 会沿 parent 链合并;-t 0 输出单文件可增长磁盘。克隆只读源链,不改写原 VMDK。不要只克隆基础盘,否则会丢掉快照里的改动。
三、切换虚拟机到新盘并验证
编辑 .vmx:
scsi0:0.fileName = "C:\VMwareMerge-dev\dev-merged.vmdk"启动虚拟机确认正常。确认无误前不要删除旧盘。
四、删除旧快照链
关机后删除旧链及快照元数据:
dev.vmdk
dev-000001.vmdk
dev-000002.vmdk
dev.vmsd五、把新盘搬回虚拟机目录
Move-Item -LiteralPath "C:\VMwareMerge-dev\dev-merged.vmdk" `
-Destination "Z:\Virtual Machines\dev\dev-merged.vmdk".vmx 改为相对路径,方便以后整体搬迁目录:
scsi0:0.fileName = "dev-merged.vmdk"跨盘移动实际是「复制再删除」,期间不要启动虚拟机;完成后可删掉空目录 C:\VMwareMerge-dev。
更新日志
2026/7/25 23:28
查看所有更新日志
a97e3-于