Hyper‑V: VHDX раздувается и кончился диск — как сжать и навести порядок (2025)
Динамический VHDX внезапно занял весь диск? Покажу, как безопасно освободить место: очистка гостевой ОС, TRIM/обнуление свободного, Optimize-VHD/Compact, слияние AVHDX после снимков и что делать с переполненным SSD.
Коротко: как вернуть гигабайты
- Очистите место внутри гостевой ОС и обнулите свободное пространство (TRIM/zero-fill).
- Выключите ВМ. На хосте выполните
Optimize-VHD(или «Редактировать диск → Сжать»). - Удалите/слейте снимки (AVHDX), если есть — они занимают львиную долю.
1) Чистим гостевую систему
Удалите временные файлы, очистите корзину, деинсталлируйте лишнее. Важно подготовить свободное пространство для эффективного сжатия.
Внутри гостя, PowerShell (Администратор) — выполнять по одной:
cleanmgr /sageset:1 & cleanmgr /sagerun:1
Optimize-Volume -DriveLetter C -ReTrim
defrag C: /L /O
Максимальный эффект даст зануление свободного места. Официальная утилита Sysinternals SDelete: страница Microsoft.
Внутри гостя, CMD (Администратор) — выполняется долго:
sdelete64.exe -z C:
2) Сжимаем VHDX на хосте
Выключите виртуальную машину. Выполните сжатие.
На хосте, PowerShell (Администратор) — выполнять по одной:
Get-VMHardDiskDrive -VMName "VM-Name" | Select-Object Path
Optimize-VHD -Path "D:\VMs\VM-Name\Virtual Hard Disks\disk.vhdx" -Mode Full
Альтернатива — Hyper‑V Manager: «Действия → Редактировать диск → Указать VHDX → Сжать».
3) Снимки (Checkpoint): объединяем AVHDX
Каждый снимок создаёт AVHDX и растёт сам, а базовый диск не уменьшается. Удаление снимка «сливает» изменения в базовый VHDX.
На хосте, PowerShell — выполнять по одной:
Get-VMSnapshot -VMName "VM-Name"
Remove-VMSnapshot -VMName "VM-Name" -Name "CheckpointName"
Не удаляйте AVHDX вручную в Проводнике — рискуете потерять данные. Используйте только инструменты Hyper‑V.
4) Конвертация и исправление цепочек
Если цепочка дисков повреждена или требуется «уплотнить» в новый файл — конвертируйте:
На хосте, PowerShell — выполнять по одной:
Convert-VHD -Path "D:\VMs\VM-Name\disk.vhdx" -DestinationPath "D:\VMs\VM-Name\disk_compact.vhdx" -VHDType Dynamic
После проверки можно заменить старый диск на новый в настройках ВМ.
5) Полезные советы
- Храните ВМ на диске с запасом 20–30%. При нулевом запасе рискуете повредить VHDX.
- На гостевых Linux используйте
fstrim -avперед выключением ВМ — это ускоряет Compact. - Для ReFS-пулов проверьте состояние и запустите обслуживание тома по расписанию.
FAQ
Можно ли сжать подключённый диск «на горячую»?
Нет. Для Full Compact ВМ должна быть выключена и диск отсоединён от процессов.
Почему после Compact размер почти не изменился?
Свободное место внутри гостя не было обнулено (нет TRIM/zero-fill) или есть активные снимки AVHDX.