Virtualbox уменьшить размер диска vdi

У виртуальных динамических дисков VDI , созданных в программе VirtualBox есть одна особенность, которая при определённых обстоятельствах может доставить пользователю некоторые неудобства. При копировании на них массивов данных динамические виртуальные диски имеют свойство расширяться, но если затем вы удалите с такого диска все файлы, его размер останется прежним. Таким образом виртуальная машина может раздуться до весьма значительных размеров, заняв на физическом носителе неоправданно много места.

Ключ resize, предназначенный для изменения размера виртуального диска VirtualBox в данном случае бесполезен, так как работает он только в одну сторону — в сторону расширения диска. Чтобы сжать виртуальный диск, необходимо использовать другой ключ — compact. Но перед тем как приступать к сжатию, нужно удалить с виртуального диска все ненужные файлы, а затем выполнить его зачистку с помощью утилиты Sdelete , созданной известным программистом Марком Руссиновичем и входящей в пакет средств администрирования Windows Sysinternals . Также необходимо удалить все снимки виртуальной машины, в противном случае вы можете получить ошибку.

Sdelete имеет маленький вес и не требует установки.

Поместите её внутри запущенной виртуальной машины в корень системного раздела, а затем, открыв от имени администратора командную строку, выполните такие команды:

cd C:
sdelete.exe -s -z C:

Аналогичным образом зачистите свободное пространство пользовательского раздела.

sdelete.exe -s -z D:

После этого завершите работу виртуальной машины, от имени администратора откройте в базовой системе командную строку и последовательно выполните две этих команды:

cd C:Program FilesOracleVirtualBox
VboxManage.exe modifyhd "D:Oracle VM VirtualBoxWindows 10 x86 Ent 1607.vdi" –compact

Первой командой мы переходим в расположение утилиты VboxManage.exe , а второй производим сжатие виртуального диска с помощью команды modifyhd и ключа compact. Путь к файлу VDI у вас будет свой, также не забывайте о прямых кавычках, если в пути или имени файла есть пробелы. Процедура сжатия занимает больше времени, чем расширение (на это нужно всего несколько секунд) , так как утилите приходится работать с реально занятым дисковым пространством.

Читайте также:  Проверить коммутируют ли матрицы

А теперь, наверное, самый интересный вопрос. Как и от каких виртуальных разделов будет отнято дисковое пространство?

От обеих, причём забрано будет всё виртуальное пространство, на котором нет файлов, — именно на столько будет сжат файл VDI . Однако визуально в самой виртуальной машине ничего не изменится. Разделы в ней по-прежнему будут иметь «свободное место», а сам размер дисков видимо останется таким же, каким он был до сжатия. Но это все, конечно, пустяки. Главное, что таким образом вы уменьшите размер файла VDI , высвободив тем самым место на физическом жёстком диске.

Записки обо всём.

Изменение размера виртуального диска в VirtualBox

Увеличение размера

Предположим, что нам стало не хватать дискового пространства на виртуальной машине. Можно, конечно, добавать ещё один виртуальный диск, но в Oracle VirtualBox, также, есть возможность увеличить уже имеющийся виртуальный диск.
Для увеличения размера виртуального диска, сначала удаляем все снимки состояния данной ВМ. Затем воспользуемся утилитой VBoxManage, идущей в комплекте с Virtualbox. Открываем командную строку и выполняем в ней команду, подобную этой:

"C:Program FilesOracleVirtualBoxVBoxManage.exe" modifyhd "E:VirtualBoxVMsDebianDebian_disk1.vdi" –resize 102400

  • C:Program FilesOracleVirtualBox – путь до каталога с установленной VirtualBox (у вас может отличаться);
  • E:VirtualBoxVMsDebianDebian_disk1.vdi – путь до образа виртуального диска, размер которого мы изменяем;
  • 102400 – размер в мегабайтах, до которого мы хотим увеличить наш виртуальный диск (в данном случае – 100ГБ).

После выполнения данной команды, запускаем виртуальную машину и можем видеть, что на виртуальном диске появилось нераспределённое пространство, на которое теперь можно растянуть нужные разделы, средствами гостевой ОС, либо загрузившись с LiveCD (например, можно воспользоваться diskmgmt.msc или Acronis Disk Director в Windows, GParted в Linux, и т.п. утилитами ).

Читайте также:  Исправить ошибки в тексте по русскому языку

Однако, опция –resize работает только для увеличения размера диска. Для уменьшения – алгоритм будет другой.

Уменьшение размера

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

Чтобы cжать образ этого диска до минимальных размеров, для начала нужно очистить его неразмеченные области (от остатков удалённых файлов). Для этого, в гостевой ОС нужно воспользоваться специальной утилитой, обнуляющей свободные секторы.

В Windows – можно использовать утилиту Sdelete. Утилита не требует установки, ее достаточно распаковать и запустить из командной строки команду:

В Linux – есть утилита zerofree.

В моём примере на ВМ установлен Debian. Устанавливаем zerofree через систему управления пакетами (если ещё не установлена):

# apt install zerofree

Для очистки раздела, его нужно отмонтировать, либо перемонтировать в режиме read-only (только чтение), иначе zerofree выдаст ошибку. Если требуется перемонтировать коренной раздел, то сначала нужно перейти в однопользовательский режим:

В данном случае будем чистить раздел /dev/sda3 , который у меня смонтирован в /home – на нём хранятся все пользовательские файлы:

# mount -o remount,ro -t ext4 /dev/sda3

Запускаем zerofree для очистки нужного раздела:

# zerofree -v /dev/sda3

Для выхода из однопользовательского режима выключаем ВМ:

После очистки диска и выключения ВМ, удаляем все снимки состояния данной ВМ, запускаем консоль и выполняем команду:

"C:Program FilesOracleVirtualBoxVBoxManage.exe" modifyhd "E:VirtualBoxVMsDebianDebian_disk1.vdi" –compact

Эта команда сожмёт образ виртуального диска до минимального размера.

Следует отметить, что в интернете есть информация, что можно увеличить размер только ДИНАМИЧЕСКИХ виртуальных дисков форматов VDI или VHD, уменьшить – только VDI. Лично я использую динамические диски в формате VDI (родной формат VirtualBox), с которым всё вышеописанное точно работает. С другими форматами не эксперементировал.

Читайте также:  Как настроить экран ноутбука асус

Ordnung muß sein. Ordnung über alles (18+)

Инструменты пользователя

Инструменты сайта

Боковая панель

Навигация

Линкшэринг

Добавить новую страницу

Вы не можете добавлять страницы

Содержание

Рано или поздно пользователи VirtualBox сталкиваются с тем, что диск (динамический) гостевой системы стал занимать много места на хост системе.

Диск в гостевой системе 25 ГБ. Занято в Windows только 13 ГБ, но на хост системе диск занимает почти 19 ГБ.

Вывод команды VBoxManage

Для ещё большей наглядности скриншот

Диск в менеджере носителей

Как увеличить/уменьшить размер диска

Для изменения размера диска нужно запустить vboxmanage с опцией modifymedium . В прошлых релизах VirtualBox опция называлась modifyhd или modifyvdi .

For compatibility with earlier versions of VirtualBox, the "modifyvdi" and "modifyhd" commands are also supported and mapped internally to the "modifymedium" command.

Для хост системы Mac/Linux

Для хост системы Windows

Увеличим диск с 25 ГБ до 30 ГБ. Размер указывается в МБ. 30 ГБ = 30*1024 = 30720.

Далее остаётся только расширить диск внутри гостевой ОС

Как сжать VDI диск

Шаг 1. Выполняем дефрагментацию диска (зачем?!) в гостевой системе (только для Windows).

Шаг 2. Заполняем диск нулями

Для гостевой системы Windows

Для Windows есть специальная утилита SDelete.

Для гостевой системы Linux

Для Linux вариантов несколько:

Или через утилиту zerofree

Или через утилиту sfill (входит в состав пакета secure-delete ; только для Debian)

Шаг 3. Выключаем гостевую машину.

Шаг 4. Запускаем modifymedium с опцией compact .

Для хост системы с Mac

Для хост системы с Linux

Для хост системы с Windows

Оцените статью
ПК Знаток
Добавить комментарий

Adblock
detector