Как конвертировать VMDK между growable и preallocated в VMware

Короткое объяснение
- Growable (растущий) диск: файл VMDK сначала маленький и увеличивается по мере записи данных. Экономит место на хосте, но в некоторых сценариях медленнее.
- Preallocated (предвыделённый) диск: сразу занимает весь объявленный объём на хосте. Обеспечивает стабильную производительность и предсказуемое распределение пространства.
Важно: VMware Player не включает инструменты для преобразования типов дисков — для этого нужен VMware Fusion или VMware Workstation.
Когда стоит менять тип диска
- Перейти на preallocated, если нужна максимальная производительность и вы готовы выделить место заранее.
- Перейти на growable, если место на хосте ограничено и вы хотите экономить дисковый объём.
- Нельзя менять диск, если виртуальная машина включена или находится в состоянии приостановки (suspended).
Внимание: если у виртуальной машины есть snapshot’ы, преобразование не будет работать — сначала удалите снимки или сделайте полную резервную копию.
VMware Fusion (macOS)
В VMware Fusion процесс самый простой — всё доступно в графическом интерфейсе.
- Полностью выключите виртуальную машину. Нельзя вносить изменения при включённом или приостановленном состоянии.
- В основном окне VMware Fusion выберите виртуальную машину и откройте Virtual Machine → Settings.

- В окне Settings выберите раздел «Hard Disk» в группе Removable Devices.

- Если появится сообщение о наличии snapshot’ов (снимков), удалите их через Virtual Machine → Snapshots → Snapshots перед продолжением.

- В окне Snapshots выберите каждый снимок и нажмите Delete в панели инструментов.

- В разделе Hard Disk раскройте Advanced options и поставьте или снимите флажок Pre-allocate disk space, чтобы конвертировать диск в preallocated или обратно в growable. Нажмите Apply для сохранения изменений.

Советы по Fusion:
- После преобразования запустите виртуальную машину и проверьте корректность загрузки и целостность данных.
- Если вы удалили snapshot’ы, вы утратите возможность откатиться к этим точкам восстановления.
VMware Workstation (Windows / Linux)
В VMware Workstation нет GUI-опции для конвертации типа диска — используйте утилиту vmware-vdiskmanager. На Windows она поставляется как vmware-vdiskmanager.exe.
Шаг 1 — Отключите виртуальную машину и удалите снимки
Полностью выключите виртуальную машину. В меню VM → Snapshot (или VM → Snapshot → Snapshot) правой кнопкой мыши по каждому снимку выберите Delete. После удаления снимков вы потеряете возможность отката.

Шаг 2 — Найдите утилиту vmware-vdiskmanager.exe
На Windows утилита обычно находится в одной из папок установки VMware Workstation:
C:\Program Files (x86)\VMware\VMware Workstationили
C:\Program Files\VMware\VMware Workstation
Откройте Командную строку (Command Prompt) и перейдите в каталог с vmware-vdiskmanager.exe, например:
cd "C:\Program Files (x86)\VMware\VMware Workstation"На Linux откройте терминал и выполните vmware-vdiskmanager как обычную команду.

Шаг 3 — Найдите основной .vmdk файл виртуальной машины
Откройте папку виртуальной машины. По умолчанию это:
C:\Users\ИМЯ\Documents\Virtual Machines\Найдите главный .vmdk (обычно он имеет имя виртуальной машины, например “Windows 7.vmdk”). Игнорируйте вторичные файлы, которые содержат в имени -s001, -s002 и т. п.

Если не уверены, путь к папке виртуальной машины показывается внизу окна VMware Workstation.

Шаг 4 — Создаём новый VMDK нужного типа
Утилита vmware-vdiskmanager создаёт новый VMDK на основе исходного. Команда для конвертации исходного файла в растущий (growable) диск, разбитый на 2 ГБ файлы, выглядит так:
vmware-vdiskmanager.exe -r "c:\path\to\source.vmdk" -t 1 "c:\path\to\target.vmdk"Пример:
vmware-vdiskmanager.exe -r "C:\Users\chris\Documents\Virtual Machines\Windows 7\Windows 7.vmdk" -t 1 "C:\Users\chris\Documents\Virtual Machines\Windows 7\Windows 7-growable.vmdk"Чтобы конвертировать в preallocated диск (предвыделённый) с разбивкой по 2 ГБ, используйте тип 3:
vmware-vdiskmanager.exe -r "c:\path\to\source.vmdk" -t 3 "c:\path\to\target.vmdk"Пример:
vmware-vdiskmanager.exe -r "C:\Users\chris\Documents\Virtual Machines\Windows 7\Windows 7.vmdk" -t 3 "C:\Users\chris\Documents\Virtual Machines\Windows 7\Windows 7-preallocated.vmdk"
Примечания:
- Ключ -r указывает создать новый диск на основе исходного.
- Параметр -t задаёт тип таргета: 1 — growable с разбивкой на 2 ГБ, 3 — preallocated с разбивкой на 2 ГБ.
Шаг 5 — Удалите или переместите оригинальные файлы .vmdk
Утилита создаёт новую копию диска, она не перезаписывает оригинал. В папке виртуальной машины вы увидите и старые, и новые файлы. Удалите старые файлы .vmdk (включая основной Windows 7.vmdk), либо переместите их в другую папку как резервную копию. Не удаляйте другие служебные файлы виртуальной машины.

Шаг 6 — Переименуйте новый главный .vmdk в имя оригинала
Переименуйте созданный основной .vmdk (например, Windows 7-growable.vmdk) в имя оригинального файла (Windows 7.vmdk). Оставшиеся -s00x файлы не обязательно переименовывать — главный .vmdk указывает на них.

После этого запустите виртуальную машину — она будет использовать новый диск автоматически.
Проверка и отладка
- При загрузке проверяйте логи VMware и целостность данных ОС гостя.
- Если виртуальная машина не загружается, восстановите оригинальные .vmdk из резервной копии и повторите процесс.
Решение типичных проблем
- Ошибка: “Cannot perform operation while snapshot exists” — удалите все snapshot’ы.
- Ошибка доступа/прав: запустите командную строку или терминал от администратора/с sudo.
- Мало места на хосте при конвертации в preallocated — убедитесь, что на диске хоста достаточно свободного пространства для всего объёма.
Решения и альтернативы
- Если не хотите возиться с vmware-vdiskmanager, можно создать новую виртуальную машину нужного типа диска и перенести данные через образ/клонирование внутри гостевой ОС.
- Для массовой автоматизации используйте скрипты PowerShell/Bash, вызывающие vmware-vdiskmanager для набора VM.
Шаблон проверки (Role-based checklist)
Администратор перед началом:
- Убедился в наличии резервной копии папки виртуальной машины.
- Выключил виртуальную машину (не suspend).
- Удалил все snapshot’ы или экспортировал их отдельно.
- Проверил свободное место на хосте (для preallocated достаточно места).
- Запустил конвертацию и сохранил лог выполнения.
Пользователь после конвертации:
- Запустил гостевую ОС и проверил служебные приложения.
- Проверил доступность данных и запуска приложений.
- Убедился в отсутствии ошибок в логах VMware.
Минимальная методология безопасности и отката
- Сделать полную копию папки виртуальной машины (быстрый бэкап).
- Удалить snapshot’ы и зафиксировать изменения в журнале.
- Выполнить конвертацию в тестовой среде при возможности.
- Переименовать и запустить VM, проверить загрузку.
- При ошибках вернуть исходные файлы из бэкапа.
Риск-матрица и меры смягчения
- Риск: Потеря снимков → Мера: Сделать резервную копию перед удалением.
- Риск: Нехватка места при создании preallocated → Мера: Проверить диск хоста и освободить/увеличить пространство.
- Риск: Неправильный выбор файла .vmdk → Мера: Всегда работайте с основным (.vmdk без -s00x) и сохраняйте резервные копии.
Краткий словарь терминов
- VMDK: формат виртуального диска VMware.
- Snapshot (снимок): состояние виртуальной машины в конкретный момент времени.
- Preallocated: диск, которому заранее выделено всё пространство.
- Growable: диск, который увеличивает свой размер по мере записи данных.
Когда этот способ не подойдёт
- Вы используете VMware Player — там нет vmware-vdiskmanager для конвертации.
- У вас ограничены права на хосте и нет доступа для запуска команд от администратора.
- У вас критичные snapshot’ы, которые нельзя удалять — тогда нужно клонировать VM вместо конвертации.
Итог
Преобразование VMDK между growable и preallocated в VMware безопасно и обычно предсказуемо, если следовать инструкции: выключить VM, удалить снимки, создать новый диск через GUI (Fusion) или vmware-vdiskmanager (Workstation), затем заменить старые файлы и проверить загрузку. Всегда имейте резервную копию перед операцией.
Важно: выбирайте preallocated, если нужна стабильная производительность, и growable, если важна экономия места на хосте.
Сводка действий:
- Остановите VM → Удалите snapshot’ы → Сделайте бэкап → Конвертируйте через GUI или vmware-vdiskmanager → Удалите/переместите старые .vmdk → Переименуйте новый файл в имя оригинала → Запустите VM и проверьте.
Похожие материалы
Подключение Spotify к Discord — пошагово
Как изменить или сбросить пароль Spotify
Управление умным домом через Quick Settings на Samsung
Исправить Event ID 10010: ошибка DCOM
Отключить автопроигрывание в Spotify