Гид по технологиям

Как уменьшить размер виртуальной машины VirtualBox и вернуть место на хосте

• 6 min read • Виртуализация • Обновлено 24 Nov 2025
Уменьшить VirtualBox VM и вернуть место
Уменьшить VirtualBox VM и вернуть место

Экран VirtualBox с виртуальной машиной

VirtualBox — популярный инструмент для разработки и тестирования, который позволяет запускать гостевые операционные системы поверх вашей основной Windows 10. Но со временем виртуальные диски могут расти: файлы удаляются внутри гостя, но не освобождают пространство на хосте автоматически. В этой инструкции — пошаговое руководство по уменьшению виртуального диска и возврату места хосту.

Важно: если вы при создании ВМ выбрали фиксированный размер диска (Fixed Size), диск нельзя уменьшить ниже заданного размера. Для динамических дисков (Dynamically allocated) описанные шаги применимы.

Основные понятия

  • Гостевая ОС: операционная система, запущенная внутри VirtualBox.
  • Хост: ваша основная Windows 10 система, в которой установлен VirtualBox.
  • Динамический диск: виртуальный диск, который растёт по мере заполнения, но может быть компактирован при корректной подготовке.
  • Zeroing / заполнение нулями: операция записи нулей в свободные блоки, чтобы инструмент компактирования мог идентифицировать и вернуть их хосту.

Когда этот метод работает и когда — нет

  • Работает: динамические VDI/VHD/VHDX и другие форматы, если вы правильно подготовите гостя (заполнили свободное пространство нулями).
  • Не работает: фиксированные виртуальные диски (Fixed Size) не уменьшатся ниже исходного размера. Также некоторые сторонние форматы и шифрованные диски могут требовать специфичных инструментов.

1. Подготовьте гостевую ОС: удалите файлы и заполните свободное пространство нулями

Цель этапа — максимально уменьшить фактическое использованное пространство внутри гостя и затем заменить все свободные блоки нулями. Это позволит инструментам хоста эффективно удалить «пустые» блоки.

Для Windows в госте

  1. Удалите ненужные файлы и очистите Корзину: снимите все временные файлы, логи, старые бэкапы (например, Windows.old), и удалите ненужные точки восстановления.

  2. Дефрагментируйте диск (рекомендуется для NTFS): откройте «Оптимизировать диски» и выберите нужный том, затем нажмите «Оптимизировать».

Опция «Оптимизировать диски» в Windows 10

Окно оптимизации и дефрагментации дисков в Windows 10

  1. Скачайте утилиту SDelete от Microsoft Sysinternals и распакуйте её в папку, например на Рабочий стол. В папке будут файлы Eula, sdelete и sdelete64.

Папка SDelete на рабочем столе Windows

  1. Откройте командную строку от имени администратора, перейдите в каталог SDelete и выполните:
cd Desktop\SDelete
sdelete64.exe -z C:

(Параметр -z заполняет свободное пространство нулями.)

Запуск sdelete.exe в командной строке Windows

  1. После окончания процедуры корректно завершите работу гостя (shutdown) и закройте VirtualBox.

Важно: sdelete записывает нули поверх свободного пространства — этот шаг критичен для успешного компактирования на хосте.

Для Linux в госте (пример — Ubuntu)

  1. Запустите гостя и при старте удерживайте Esc, чтобы попасть в меню загрузчика GRUB.

GRUB: меню загрузки Ubuntu в VirtualBox

  1. Выберите “Advanced options for Ubuntu”.

Опции восстановления Ubuntu в GRUB

  1. Затем выберите «Recovery Mode» и пункт с root-доступом, загрузитесь в режим обслуживания.

Режим восстановления Ubuntu: выбор корневой файловой системы

  1. В консоли проверьте доступные диски:
df -h

Вывод df в Ubuntu: список разделов и использования

  1. Установите zerofree, если он отсутствует (в режиме восстановления возможно ограниченное окружение):
apt-get update
apt-get install zerofree
  1. Убедитесь, что целевой раздел отмонтирован или смонтирован в режиме только для чтения. Затем выполните (пример для /dev/sda1):
zerofree -v /dev/sda1
  1. После завершения выполните:
shutdown -h now

и завершите работу VirtualBox.

Примечание: zerofree работает только с файловыми системами ext2/ext3/ext4 и требует, чтобы раздел был размонтирован или смонтирован как read-only.

2. Компактирование виртуального диска на хосте (Windows 10)

После подготовки гостя освобождённое пространство можно вернуть хост-системе. Ниже — несколько подходов, выбирайте по формату виртуального диска.

Вариант A — DiskPart (для VHD/VHDX и некоторых VDI, если они видятся как vdisk)

  1. Откройте Командную строку от имени администратора и запустите:
diskpart

Окно DISKPART в командной строке Windows

  1. Утвердите запрос UAC, если появится.

Запрос контроля учётных записей на запуск DISKPART

  1. Укажите путь к файлу виртуального диска (VDI/VHD):
select vdisk file="V:\path-to-your-vdisk-file.vhdx"
  1. Подключите виртуальный диск только для чтения:
attach vdisk readonly
  1. Запустите компактирование:
compact vdisk

Процесс compact vdisk в DISKPART

  1. По окончании выполните:
detach vdisk
exit

Этот метод удобен для VHD/VHDX и в некоторых случаях для VDI, представленных ОС как виртуальный диск.

Вариант B — VBoxManage (рекомендуется для VDI)

VirtualBox включает утилиту VBoxManage, которая умеет компактировать VDI напрямую.

Пример для Windows (в командной строке с правами администратора):

"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" modifymedium disk "C:\path\to\disk.vdi" --compact

Если формат VDI поддерживает компактирование, этот способ часто быстрее и надежнее.

Альтернативы: если у вас VMDK, VDI или другой формат, можно сначала сделать клон в VDI, а затем компактировать клон:

VBoxManage clonehd "original.vdi" "clone.vdi" --format VDI
VBoxManage modifymedium disk "clone.vdi" --compact

3. Проверка и критерии приёмки

Критерии приёмки:

  • Фактическое свободное место на хосте увеличилось на ожидаемую величину (приблизительно равную объёму удалённых данных).
  • Виртуальная машина успешно стартует и файлы внутри гостя доступны.
  • Нет ошибок в логах VirtualBox при запуске ВМ.

Тесты приёмки:

  • Запустите гостя и проверьте целостность ключевых приложений/данных.
  • Сравните размеры дискового файла до и после операции.
  • Если доступно, выполните контрольный бэкап перед изменениями и пробный откат.

Контрольные списки: роль администратора и роль пользователя

Администратор (операции на хосте):

  • Создать резервную копию файла виртуального диска.
  • Остановить виртуальную машину и убедиться, что она выключена.
  • Выполнить compact через DiskPart или VBoxManage.
  • Проверить логи и сравнить размеры файлов.

Пользователь (в госте):

  • Удалить ненужные файлы и очистить корзину.
  • Дефрагментация (Windows) или подготовка zerofree (Linux).
  • Вызвать sdelete/zerofree и корректно завершить работу.

Частые ошибки и как их избежать

  • Ошибка: компактирование не уменьшило размер диска — проверьте, действительно ли вы заполнили свободное пространство нулями в госте. SDelete/zerofree обязателен.
  • Ошибка: раздел смонтирован и zerofree не смог выполнить запись — перезагрузитесь в recovery/однопользовательский режим и выполните команду для размонтированного раздела.
  • Ошибка: используете Fixed Size диск — его нельзя уменьшить; только можно создать новый диск меньшего размера и склонировать систему на него.

Альтернативные подходы

  • Клонирование на новый диск меньшего размера: создайте новый VDI нужного размера, загрузитесь с live-ISO, выполните копирование разделов и корректную настройку загрузчика.
  • Использовать сторонние утилиты для сжатия/клонирования дисков (Clonezilla, GParted) — полезно при смене формата диска.
  • Перевести образ в формат, удобный для компактирования (например, VDI), затем выполнить compact.

Риски и mitigations

  • Риск: повреждение данных при ошибке — mitigation: создать резервную копию полного виртуального диска до операции.
  • Риск: недостаток места на хосте во время создания копий — mitigation: временно перенести файл на внешний диск или сетевой ресурс.
  • Риск: несовместимость форматов — mitigation: протестировать на копии диска и изучить документацию по формату (VDI/VHD/VMDK).

Быстрый чек-лист перед началом

  1. Сделать резервную копию виртуального диска.
  2. Освободить место в госте (удалить файлы, очистить корзину).
  3. Заполнить свободное пространство нулями (sdelete или zerofree).
  4. Выключить гостя и VirtualBox.
  5. На хосте выполнить compact через VBoxManage или DiskPart.
  6. Запустить ВМ и проверить работоспособность.

Decision flow (упрощённая схема выбора метода)

flowchart TD
  A[Начало: виртуальный диск растёт] --> B{Тип диска}
  B -->|VDI| C[Использовать VBoxManage --compact]
  B -->|VHD/VHDX| D[Использовать DiskPart select/attach/compact]
  B -->|VMDK или другое| E[Клонировать в VDI или использовать сторонние инструменты]
  C --> F{Гость подготовлен?}
  D --> F
  E --> F
  F -->|Да| G[Выполнить compact и проверить]
  F -->|Нет| H[Подготовить гостя: удалить файлы, sdelete/zerofree]
  H --> F

Короткая методология (mini SOP)

  1. Резервное копирование исходного .vdi/.vhdx.
  2. Очистка гостя и zeroing.
  3. Компактирование на хосте соответствующим утилитом.
  4. Верификация: запуск гостя и проверка свободного места.

Сводка и рекомендации

  • Всегда делайте бэкап перед изменением виртуальных дисков.
  • SDelete (Windows) и zerofree (Linux) — ключевые инструменты для подготовки гостя.
  • Для VDI предпочтительнее VBoxManage; для VHD/VHDX — DiskPart.
  • Если требуется постоянный контроль размера, планируйте регулярную уборку и архивирование внутри гостя.

Ключевая мысль: уменьшить виртуальный диск можно, но только при корректной подготовке гостя (заполнении свободных блоков нулями) и использовании подходящего инструмента на хосте.

Summary:

  • Подготовьте гостя: удалите файлы и запишите нули в свободное пространство.
  • На хосте выполните compact через DiskPart или VBoxManage в зависимости от формата.
  • Проверьте работу машины и убедитесь, что место действительно освобождено.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро