Способы оплаты Abuse

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

26.09.2021, 22:47

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

Решаем поставленную задачу

В VirtualBox можно использовать три основных формата - это VDI, VHD и VDMK. Изменить размер можно только для VDI и VHD. Для VDMK есть обходной путь.

Для увеличения объема нужно использовать команду в терминале или в командной строке, в графическом интерфейсе такой функции, к сожалению, нет. Также вам нужно знать полный путь к вашему диску. Допустим, наш диск находится по адресу ~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi в Linux. Посмотрим информацию о нем, чтобы знать текущий размер:

$ VBoxManage showhdinfo ~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi

Размер отмечен в поле capacity и в данном примере он составляет 22075 мегабайта. Важно знать объем в мегабайтах, так как именно его мы будем использовать для увеличения диска. Чтобы увеличить размер виртуального диска virtualbox используется та же команда, только с параметром modifyhd:

$ VBoxManage modifyhd ~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi --resize 32075

Мы увеличили объем на 10 ГБ. Важно чтобы объем, который вы указываете в параметре resize был не меньше текущего размера диска, иначе данные операционной системы могут быть повреждены и вся суть этой операции теряет смысл.

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

$ for x in ~/VirtualBox VMs/Ubuntu17.04/Snapshots/*.vdi ; do VBoxManage modifyhd $x --resize 32075 ; done

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

$ VBoxManage clonehd "~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdmk" "~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi" --format vdi

 

$ VBoxManage modifyhd "~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi " --resize 32075$ VBoxManage clonehd "~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi " "~/VirtualBox VMs/Ubuntu17.04/Ubuntu1610.vdi_resized.vmdk" --format vmdk

В ОС Windows команда будет выглядеть немного по-другому, а путь к файлу будет начинаться с диска C:. Чтобы выполнить команду VBoxManage сначала необходимо перейти в папку с исполняемыми файлами VirtualBox:

cd “C:Program FilesOracleVirtualBox”

Запустите команду чтобы увеличить размер virtualbox, как было описано раньше, путь к файлу замените на свой:

VBoxManage showhdinfoC:UsersAdminVirtualBox VMsWindows 7Windows 7.vdi

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

VBoxManage modifyhd "C:UsersAdminVirtualBox VMsWindows 7Windows 7.vdi" --resize 32075

Увеличение файловой системы

То, что вы увеличили доступный размер диска еще ничего не меняет, как ничего не поменяет и то, что вы добавите новый жесткий диск к системе. Дальше вам нужно загрузится в вашу виртуальную машину расширить диск virtualbox и увеличить пространство, занимаемое файловой системой, для этого можно использовать утилиту Gparted. В дистрибутивах Linux она поставляется по умолчанию, запустите утилиту:

Вы увидите отмеченное серым доступное пространство в конце диска. Теперь вы можете изменить размер для последнего раздела нажав на нем правой кнопкой и вызвав контекстное меню, затем выбрав "изменить размер/переместить":

Когда завершите, не забудьте нажать "Apply" чтобы применить все операции.

Мы рассмотрели как увеличить размер виртуального диска virtualbox с помощью командной строки и как предоставить полученное пространство вашей гостевой системе.