Как компактировать виртуальный диск VMware и освободить место на хосте
Быстрые ссылки
- Сначала убедитесь, что диск не предвыделён
- VMware Player
- VMware Fusion
- VMware Workstation

В VMware по умолчанию создаются «growable» (динамические) виртуальные диски — они увеличиваются по мере записи данных, но не уменьшаются автоматически при удалении файлов внутри гостевой системы. Чтобы реально освободить место на хосте, нужно очистить гостевую ОС и затем компактировать виртуальный диск.
Ниже описаны шаги для VMware Player, VMware Fusion и VMware Workstation. Перед началом рекомендуется внутри виртуальной машины освободить место: опорожнить корзину, удалить ненужные программы и временные файлы.
Сначала убедитесь, что диск не предвыделён
Эта инструкция работает только с динамическими (sparse, growable) дисками. Предвыделённый диск всегда занимает полную максимальную ёмкость и его нельзя сжать до меньшего размера без конвертации в динамический диск.
Примечание: VMware Player по умолчанию создаёт только динамические диски. VMware Fusion использует динамические диски, если вы не включили опцию выделения места при настройке виртуальной машины. VMware Workstation создаёт динамические диски, если при создании виртуальной машины вы не включили «Allocate all disk space now».
На VMware Workstation или VMware Player: правой кнопкой мыши кликните виртуальную машину → “Settings” (Настройки). В Summary посмотрите, есть ли рядом с размером диска пометка “Preallocated”.

В VMware Fusion: выберите виртуальную машину → Virtual Machine > Settings > Hard Disk > Advanced options. Проверьте, отмечена ли опция “Pre-allocate disk space”.

VMware Player
- Выключите виртуальную машину. Нельзя компактировать диск, если ВМ включена или приостановлена.
- В списке виртуальных машин выберите нужную и нажмите “Edit virtual machine settings” или правой кнопкой — “Settings”.

- Перейдите на вкладку Hardware → выберите “Hard Disk”.
- Сначала нажмите кнопку “Defragment” под разделом Disk utilities. Это дефрагментирует виртуальную файловую систему и подготовит её к компактированию.

- После завершения дефрагментации нажмите “Compact”. VMware уменьшит размер .vmdk-файла и освободит место на хосте.

Важно: VMware Player не поддерживает снимки (snapshots), поэтому вам не нужно дополнительно удалять snapshot-слои в этом продукте.
VMware Fusion
- Выключите виртуальную машину.
- В главном окне VMware Fusion выберите виртуальную машину и нажмите иконку “Refresh Disk Space” справа от индикатора использования диска — это обновит расчёт возможного к освобождению места.

Поле “Reclaimable” покажет объём пространства, который можно вернуть. Если доступно место, появится сообщение “Clean Up Recommended” — нажмите его.
В появившемся окне нажмите “Clean Up Virtual Machine”. Fusion автоматически выполнит очистку и освободит объём, указанный как “Reclaimable”.

Примечание: VMware Fusion поддерживает снимки. Если они занимают много места, откройте менеджер снимков (Snapshots) и удалите ненужные снимки. После удаления снимка вы потеряете возможность откатиться к этому состоянию ВМ.

VMware Workstation
- Выключите виртуальную машину.
- В главном окне выберите виртуальную машину → VM > Manage > Clean Up Disks.

- Инструмент проанализирует диск и покажет, сколько можно освободить. Нажмите “Clean up now”, чтобы начать процесс.
Если освобождать нечего, вы увидите сообщение “Cleanup is not necessary”.

Workstation также поддерживает снимки. Чтобы просмотреть их, выберите VM > Snapshot > Snapshot Manager.

Чтобы удалить снимок: в Snapshot Manager правой кнопкой мыши выберите снимок и нажмите “Delete”. Это освободит место, но удалит возможность отката к этому состоянию.

Альтернативный способ: vmware-vdiskmanager (командная строка)
Если графические средства не помогли или вы предпочитаете командную строку, используйте утилиту vmware-vdiskmanager, которая идёт с некоторыми продуктами VMware.
Пример команды для компактирования диска:
vmware-vdiskmanager -k "путь/к/вашему/диску.vmdk"Ключ -k выполняет преобразование sparse-диска и освобождение неиспользуемого места. Для конвертации предвыделённого диска в динамический используйте:
vmware-vdiskmanager -r "путь/к/исходному.vmdk" -t 0 "путь/к/новому.vmdk"Где -r указывает источник, а -t 0 создаёт динамический диск (growable). После успешной конвертации можно удалить старый файл и переименовать новый.
Важно: перед командной работой сделайте резервную копию .vmdk-файлов.
Когда компактирование не сработает
- Диск предвыделён (Preallocated). Нужно сначала конвертировать в динамический диск.
- Есть активные снимки. Пока есть snaphot-цепочка, команде может не хватить места для полного сжатия. Удалите ненужные снимки.
- В гостевой ОС есть скрытые/заблокированные файлы. Остановите индексацию, антивирус, и убедитесь, что файлы удалены.
- Файловая система гостя повреждена — выполните проверку диска (chkdsk для Windows, fsck для Linux) перед компактированием.
Пошаговая методология для администратора (короткий план)
- Очистка внутри гостя: корзина, временные файлы, логи.
- Выполнить дефрагментацию (Windows) или аналогичную оптимизацию (Linux: zerofree или заполнение нулями и удаление временно созданного файла).
- Выключить виртуальную машину.
- Убедиться, что диск — динамический (не preallocated).
- Выполнить компактирование через GUI или vmware-vdiskmanager.
- Проверить размер .vmdk и доступное место на хосте.
- При необходимости удалить старые снимки.
Ментальные модели и эвристики
- Если «Reclaimable» > 1–2 ГБ — чистка обычно оправдана.
- Никогда не компактируйте активно используемую ВМ.
- Всегда делайте резервную копию перед операциями с дисками или удалением снимков.
Чек-лист (роль: системный администратор)
- Сообщить пользователям об окне обслуживания
- Резервная копия VM или .vmdk
- Освободить место внутри гостя
- Выполнить дефрагментацию или zerofree
- Выключить виртуальную машину
- Проверить тип диска (динамический vs предвыделённый)
- Выполнить компактирование (GUI или vmware-vdiskmanager)
- Проверить результат и восстановить сервис
Примеры, когда лучше выбрать альтернативный подход
- Если вы используете предвыделённый диск и хотите сохранить производительность, оставьте его как есть — предвыделённый диск даёт меньше фрагментации при интенсивной записи.
- Если место критично и графические инструменты не помогают, используйте vmware-vdiskmanager и плановое временное отключение ВМ.
Критерии приёмки
- Размер .vmdk уменьшился по сравнению с исходным (если ожидалось).
- На хосте освободилось указанное количество ГБ или более.
- ВМ успешно запускается после операции, без ошибок файловой системы.
Короткий глоссарий
- Динамический (growable, sparse) — виртуальный диск растёт по мере записи данных.
- Предвыделённый (preallocated) — виртуальный диск сразу занимает весь заявленный размер.
- Snapshot — снимок состояния виртуальной машины в определённый момент.
Заключение
Компактирование виртуального диска VMware — безопасная операция при соблюдении последовательности шагов: сначала очистка гостя, затем дефрагментация и само компактирование. Если графический интерфейс не помогает, используйте vmware-vdiskmanager. Всегда делайте резервную копию и следите за снимками, поскольку они блокируют освобождение места.
Важно: перед любыми изменениями блокировок дисков и конвертацией выполните резервную копию.
Краткие выводы:
- Убедитесь, что диск динамический.
- Очистите гостя и дефрагментируйте.
- Выключите ВМ и выполните компактирование через GUI или CLI.