hyper-v检查点默认与虚拟机配置同存于系统盘,修改其路径需迁移虚拟机根存储位置:关机后通过“移动…”向导或powershell的move-vm命令将整机(含检查点)迁至非系统盘指定路径,新检查点将自动生成于目标目录的checkpoints子文件夹中。
hyper-v 的检查点(checkpoint)默认会和虚拟机配置文件存放在同一路径下,但这个位置通常在系统盘(如 c:\programdata\microsoft\windows\hyper-v\...),容易造成空间紧张或 io 冲突。修改检查点默认保存路径的核心思路是:**更改虚拟机本身的存储根目录,而非单独设置“检查点路径”——因为 hyper-v 不提供独立的检查点路径配置项,检查点文件始终跟随虚拟机配置存放。**
修改虚拟机根存储路径(影响检查点位置)
这是最直接有效的方式。只要把虚拟机整体迁移到新位置,后续新建的检查点自然也会落在该目录下。
- 关闭目标虚拟机(必须关机,不能仅暂停或保存状态)
- 打开 Hyper-V 管理器 → 右键虚拟机 → 选择“移动…” → 勾选“虚拟机及其所有快照(检查点)”
- 指定目标文件夹(如 D:\Hyper-V-VMs\MyUbuntu),向导会自动迁移 .vhdx、.xml、检查点 AVHD/X 文件等全部内容
- 迁移完成后,所有新增检查点都会生成在该目录的 Checkpoints 子文件夹中
创建新虚拟机时指定非默认路径
对尚未创建的虚拟机,从源头规避 C 盘问题:
- 新建虚拟机向导中,在“指定名称和位置”步骤,手动输入或浏览选择非系统盘路径(如 D:\Hyper-V-VMs\NewVM)
- 该路径将成为虚拟机配置、硬盘及后续所有检查点的默认根目录
- 注意:路径需有写入权限,且建议使用本地 NTFS 卷(不推荐直接选网络共享)
通过 PowerShell 批量调整已有虚拟机位置
适合管理多台虚拟机的场景:
- 先停止虚拟机:
Stop-VM -Name "VMName" -Force - 执行移动命令:
Move-VM -Name "VMName" -DestinationStoragePath "D:\Hyper-V-VMs\VMName" - 该命令会一并迁移虚拟硬盘、配置文件和全部现有检查点
- 完成后启动:
Start-VM -Name "VMName"
不推荐的手动修改注册表或配置文件方式
Hyper-V 的虚拟机元数据由 vmms 服务管理,其存储路径硬编码在 .vmcx 配置文件和系统数据库中。直接编辑这些文件极易导致虚拟机无法识别或检查点损坏,官方也不支持。若已迁移文件但路径未更新,请务必使用 Move-VM 或图形化“移动…”向导来同步元数据,而不是手动改路径。











