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

OSBoy notes.

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

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

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

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

«C:\Program Files\Oracle\VirtualBox\VBoxManage.exe» modifyhd «E:\VirtualBox\VMs\Debian\Debian_disk1.vdi» —resize 102400

  • C:\Program Files\Oracle\VirtualBox\ — путь до каталога с установленной VirtualBox (у вас может отличаться);
  • E:\VirtualBox\VMs\Debian\Debian_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 Files\Oracle\VirtualBox\VBoxManage.exe» modifyhd «E:\VirtualBox\VMs\Debian\Debian_disk1.vdi» —compact

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

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

Читайте также:  Как собрать стол аврора для швейных машин

Уменьшаем размер динамичиских виртуальных дисков VirtualBox

В своей работе постоянно использую VirtualBox в котором живет Debian и выполняет роль веб-сервера. Располагается Debian на динамическом виртуальном диски .vdi, который ограничен размеров в 8 ГБ, но такой размер установлен на всякий случай, а так ОС и файлы занимает 3ГБ. Со временем файлы динамических виртуальных дисков разрастаются и съедают свой лимит. Если мы будем удалять данные в гостевой ОС, то это не уменьшает размер динамического диска. Я сильно ограничен в свободном пространстве из-за SSD на 128ГБ, поэтому держать виртуальные диски по 8ГБ нет возможности.

Удобного и автоматического способа уменьшения размера нет, но всегда есть запасной план. Можно удалить пустые блоки на виртуальном диске которые заполнены нулями. Удаляя файлы в гостевой ОС, блоки на диске обрастают «мусором», поэтому все это нужно заполнить нулями.

Для гостевых машин с Windows данную проблему не решал, но есть утилита https://technet.microsoft.com/ru-ru/sysinternals/bb897443.aspx

Для гостевых Linux машин все проще. Создаем в гостевой машине файл размером в пустое пространство, а потом удаляем его:

Теперь выключаем вирутальну машину и открываем консоль на хосте, где переходим в папку с нужным виртуальным диском и выполняем команду:

Важно:

  • Делайте резервную копию виртуальной машины перед данными действиями.
  • Убедитесь, что у вас достаточно свободного места на физическом диске для максимального увеличения размера виртуального диска.

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

Понадобилось мне сегодня для одного из виртуальных серверов, с которыми я работаю для тестирования серверного ПО, несколько увеличить размер основного жесткого диска. Иногда так бывает — сначала ты планируешь реализовать одно, а потом, уже во время работы, тебя посещает идея о том, что это можно сделать лучше и интереснее, только вот жесткий диск-то уже создан и его прежний размер уже не соответствует новым реалиям. Так случилось и сегодня. У меня есть шаблон веб-сервера на Gentoo, но поскольку там все по-минимуму, то и размер основного системного диска минимален.

Раньше я уже многократно сталкивался с этой задачей, но запамятовал четкий порядок действий. Решил поискать его в Интернете и пожалел. Чего только не советуют на форумах и в блогах, я просто был в шоке. Я приведу парочку советов здесь чисто юмора ради.

Нужно установить gparted, с помощью которого стрелочкой растянуть нужный раздел на свободное пространство и задача будет решена. Если нет графического окружения, то нужно установить базовое.

Потребуется создать новый виртуальный жесткий диск с фиксированным размером, привязать его к той же виртуальной машине, что и основной, после чего запустить машину и все с основного диска переписать plain-способом на новый при помощи dd.

Достаточно будет подключить к компьютеру флешку и пробросить ее на виртуальную машину, после чего перенести на флешку в виде архива (stage4) содержимое основного диска. Перезагрузить виртуальную машину, загрузиться с установочного ISO-образа, отформатировать раздел с нужным размером, потом скопировать архив с флешки обратно на отформатированный раздел.

Я, честно признаться, не понимаю прикола в том, чтобы переносить или копировать куда-либо данные с жесткого диска. Быть может, мой виртуальный диск имеет объем в 2Тб. Весело будет такой архив гонять по сети, за флешки я вообще молчу, тут уже надо брать выше — съемный HDD. Непременно твердотельный, ибо иначе увеличение размера виртуального жесткого диска может занять неделю, а то и больше (особенно, с использованием USB 2.0).

Читайте также:  Устройство дорог с применением дорожно строительных машин

А если быть немножко серьезнее, то меня немного расстраивает нежелание современных системных администраторов изучать какие-то там справки к системным утилитам. Давайте рассмотрим процесс увеличения объема виртуального жесткого диска по порядку, чтобы всем сразу стало понятно, насколько это просто.

Непосредственно предельный размер виртуального жесткого диска увеличивается в «Менеджере виртуальных носителей» VirtualBox. Для того, чтобы изменить этот параметр, даже не потребуется отключать виртуальную машину — можно все делать прямо при включенной.

Перезагрузку на следующем шаге я выполнил, но, скажу честно, забыл посмотреть, можно ли без нее, поэтому рекомендую попробовать. Для этого после того, как в VirtualBox был изменен размер виртуального носителя, выполните на гостевой машине следующую команду:

Она возвратит реальные объемы блочных устройств. Если вы по-прежнему видите старый объем — стоит отправить гостевую машину в перезагрузку. Как только вы увидите новый размер, переходим ко второму шагу — распределению свободного пространства между разделами.

Тут стоит отметить один момент: добавленное пространство будет в конце диска. Как правило, в конце диска у меня swap-раздел, а вот основной — достаточно редко. Так вот прежде, чем вы сможете при таком раскладе увеличить размер основного раздела, вам придется удалить swap.

Итак, запускаем cfdisk. Если без аргументов — он покажет первый виртуальный жесткий диск. Если у вас их несколько, нужно передать аргументом путь к тому диску, который нужно править. Например:

В таблице сразу видим свободное пространство и те разделы, которые стоят между тем, что нам потребуется увеличить, и свободным местом. Как я уже говорил, у меня между ними оказался swap, который я успешно удалил, после чего изменил размер нужного мне раздела, оставив свободное место под swap, который после этого снова создал в прежнем размере. Когда все будет готово, не забудьте выбрать write и ответить ему «yes» на заданный вопрос.

Все, теперь неразмеченного пространства у нас нет, все перешло под существующие разделы. Но есть одно «но». Помните, что происходит после разметки дисков при установке Gentoo, к примеру? Да, создание файловых систем. В данный момент, файловая система увеличенного нами раздела еще не подозревает о том, что произошли какие-то пертурбации. На форуме ради ее уведомления советовали собрать графическую среду и установить gparted, но мы сделаем это проще:

Где «/dev/sdb3» — раздел, который мы увеличивали. Теперь, сразу после этой операции, вы сможете выполнить df -h и увидеть новый размер раздела.

RTFM.WIKI

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

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

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

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

Навигация

Линкшэринг

socialite Display:icon facebook twitter

ALARM!

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

Реклама

Содержание

VirtualBox: изменение размера диска

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

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

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

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

Читайте также:  Не набирает обороты двигатель газ 405

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

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

Для изменения размера диска нужно запустить 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

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

На тот случай, если при создании виртуальной машины вы не угадали с размером, в Oracle VirtualBox есть штатная возможность изменить размер виртуального диска. Правда из графической оснастки изменить размер диска не получиться, для этого придется воспользоваться консольной утилитой VboxManage.exe, входящей в состав VirtualBox.

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

Открываем командную строку и переходим в директорию C:\Program Files\Oracle\Virtual Box (директория установки VirtualBox по умолчанию). Выведем информацию о виртуальном диске WKS2.vdi командой:

VboxManage.exe showhdinfo C:\VM\WKS2.vdi

В строке Logical size указан максимальный размер диска — 25600 Мб (25 Гб). Увеличим его до 30 Гб (30720 Мб) следующей командой:

VboxManage.exe modifyhd C:\VM\WKS2.vdi −−resize 30720

И затем еще раз посмотрим данные о диске.

После увеличения размера виртуального диска надо зайти в гостевую систему и увеличить размер логического диска. Cделать это можно из оснастки управления дисками (discmgmt.msc), выбрав в контекстном меню пункт «Расширить том». Эта возможность есть во всех ОС Windows, начиная с Vista\Server 2008. В других операционных системах придется воспользоваться сторонними программами, например Acronis Disk Director.

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

Возможна и обратная ситуация, когда необходимо уменьшить размер дискового пространства, занимаемого виртуальной машиной. В этом случае алгоритм действий другой.

Сначала заходим в гостевую систему и удаляем все лишнее. Затем произведем очистку свободных секторов диска с помощью утилиты Sdelete от Sysinternals. Утилита не требует установки, ее достаточно распаковать и запустить из командной строки команду Sdelete.exe -s -z .

Примечание. В Linux для очистки диска можно воспользоваться утилитой ZeroFree.

После очистки выключаем виртуалку, открываем командную строку на хостовой машине и выполняем команду:

VboxManage.exe modifyhd C:\VM\WKS2.vdi −−compact

Эта команда сжимает образ виртуального диска, уменьшая место, занимаемое им на диске. При этом логический размер диска останется без изменения. Уменьшить размер диска с помощью ключа resize не получится, этот способ работает только в сторону увеличения.

В заключение скажу, что увеличение размера возможно только для динамических дисков формата VDI или VHD, а сжатие — только для VDI-дисков. Все остальные варианты не поддерживаются, по крайней мере на данный момент. И еще, перед изменением размера диска не поленитесь сделать его резервную копию, на всякий случай 🙂

Оцените статью