Виртуальные машины повсеместно используются в наше время для тестирования различных операционных систем и выполнения других задач. Популярная и свободная программа для запуска виртуальных машин - 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" чтобы применить все операции.