必须在Windows内先释放空间并禁用休眠,再关机后用Parallels“压缩”功能或prl_disk_tool resize命令收缩.hdd文件;同时删除旧快照、关闭动态分配以防止再次膨胀。

Mac上PD虚拟机里Windows系统磁盘占用过大,怎么压缩清理内部碎片
Parallels Desktop虚拟机中运行的Windows系统,长期使用后会产生大量零散文件、临时页文件、休眠文件和未释放的卷影副本,导致虚拟磁盘文件(.pvm包内*.hdd)持续膨胀,即使Windows内部已清空回收站或卸载软件,Mac侧看到的虚拟机文件大小也不下降——这并非真实“碎片”,而是Windows未主动释放空间给底层虚拟磁盘所致。必须在Windows内部触发空间回收,并配合PD工具强制收缩。
第一步:在Windows虚拟机内彻底释放可回收空间
先确保Windows自身把能交还的空间全部标记为“可丢弃”。这一步跳过会导致后续所有收缩操作无效。
以管理员身份运行Windows PowerShell(右键开始菜单→“Windows PowerShell(管理员)”),逐行执行:
diskpart → list volume → select volume X(X是系统盘号,通常是C)→ compact volume → exit
这会启用NTFS压缩并扫描可压缩文件,对文档类内容效果明显;但更关键的是下一步:
powercfg /h off
【必须执行】 关闭休眠功能,否则hiberfil.sys(常达数GB)将永久锁定无法释放。关闭后该文件会在下次重启时自动删除。
cleanmgr → 选择系统盘 → 勾选“系统还原和卷影副本”“临时Windows安装文件”“传递优化文件”→ 清理。注意不要勾选“下载”——那是你自己的文件。
第二步:关闭Windows并清空回收站与禁用页面文件
正常关机Windows虚拟机(不要挂起或休眠),回到Mac宿主系统。
打开访达,进入该虚拟机.pvm包所在目录,右键→“显示包内容”→ 进入“Snapshots”文件夹,**手动删除除最新快照外的所有子文件夹**。旧快照不删,PD就始终保留历史变更块,磁盘文件无法缩小。
再进入.pvm包内的“Virtual Hard Disks”文件夹,找到扩展名为.hdd的磁盘文件,右键→“显示简介”,确认“锁定”未勾选。
直播话术巡检系统(Windows版) — 实时语音转写、关键词检测、场景自动切换、告警推送、大屏可视化。支持 Windows VB-Cable 虚拟声卡音频采集,阿里云 ASR 实时识别。一键启动脚本,自动安装环境。
打开Parallels Desktop → 顶部菜单栏点击“虚拟机”→“配置”→“硬件”→“硬盘”→ 点击右侧齿轮图标→“优化”→ 勾选“在关机时自动优化磁盘”→ 关闭窗口。
第三步:用PD内置工具收缩虚拟硬盘
方法一:图形化一键收缩(推荐新手)
确保虚拟机已完全关机(不是暂停)。在Parallels Desktop主界面选中该虚拟机 → 顶部菜单“虚拟机”→“管理”→“压缩”→ 等待进度条走完。此操作会扫描Windows内已释放但未归还的空白区域,并将.hdd文件物理尺寸缩小。
方法二:终端强制重写(适用于图形化失败时)
打开Mac终端,cd到该虚拟机.pvm包所在父目录,执行:
prl_disk_tool resize --no-grow --size 60G --hdd “MyWin11.pvm/Virtual Hard Disks/Windows 11.hdd”
把60G替换成你希望的目标大小(必须≥当前实际已用空间,可用Windows磁盘属性查看“已用空间”值),【输错数值将导致虚拟机无法启动】。执行后PD会重建稀疏磁盘映射,丢弃所有未分配块。
第四步:验证并防止再次膨胀
启动Windows虚拟机,立即打开“磁盘管理”,右键系统卷→“属性”→“工具”→“优化”→ 对C盘运行“优化”(即碎片整理)。NTFS在SSD上实际不整理物理碎片,但会触发TRIM通知,帮助PD识别哪些逻辑块真正空闲。
返回Mac,在Parallels Desktop配置中关闭“动态分配”(如果开启):虚拟机→配置→硬件→硬盘→取消勾选“动态分配磁盘空间”。改用固定大小可杜绝后续无序增长,但需预估足够容量。
最后,打开访达,定位该.pvm包,右键→“显示简介”,对比“大小”与“占用空间”两项数值——若二者接近(差值<500MB),说明收缩成功。

















