В интернетах находятся тонны однотипных инструкций по изменению размеров жесткого диска, используемого в виртуальной машине. Большинство сводится к тому, что рекомендует ввести в командной строке VBoxManage modifyhd «<path-to-vdi>» —resize <newsize-in-MB> и всё. При этом мало где (на русском я так и не нашел адекватных мануалов) упоминается, что при наличии снимков системы (snaphot) решение не такое тривиальное и должно начинаться смерживанием всех снапшотов в единый файл. О том, как правильно увеличить диск, читайте ниже.
Дано: виртуальная машина с Linux Ubuntu в качестве гостевой и Windows 7 в качестве хоста. Гостевая система содержит энное количество снапшотов.
Требуется: увеличить размер образа для гостевой системы.
Решение: Первым делом надо склеить снимки, делается это либо через командную строку последовательным удалением и просмотром оставшихся снимков по примерному сценарию VBoxManage snapshot list | VBoxManage snapshot delete, либо через GUI VitrualBox:
Если этого не сделать, а сразу перейти к расширению диска, то при последующих операциях со снапшотами будет возникать ошибка “virtualbox could not merge the medium VERR_INVALID_PARAMETER”. Более того, размер диска вряд ли изменится внутри гостевой машины.
При большом количестве снапшотов или появлении ошибок при склеивании идеальным выходом будет просто скопировать текущую виртуальную машину и выбрать в опциях клонирования режим «Полная копия». Тогда все снапшоты склеятся автоматически и вы избежите рутинных ручных операций и всевозможных ошибок.
Единственная ошибка, которая может возникнуть после такого подхода при работе с машиной в консоли, — это повторяющийся UUID гостевой машины. Его можно изменить с помощью команды VBoxManage internalcommands sethduuid «path-to-the-new-disk».
Только после проделанных операций можно ввести команду VBoxManage modifyhd «<path-to-vdi>» —resize <newsize-in-MB>.
Последний штрих — указание новых размеров в гостевой машине. Для этого запуститесь с LiveCD любого Linux дистрибутива (та же Ubuntu подойдет) и с помощью Gparted укажите новые размеры раздела.
Небольшой нюанс: если в гостевой машине помимо раздела с системой имеются еще какие-то, например swap, то может получиться так, что требующий увеличения раздел окажется отделен от неразмеченной области, выделенной нами ранее. В случае со swap’ом его проще просто удалить и создать заново в конце диска, в случае с дополнительным разделами можно создать раздел в неразмеченной области и примонтировать его к требующему увеличения.
Ссылки: