Найти в Дзене
Драневич Анастасия

Как увеличить виртуальный жесткий диск? VBoxmanage, GParted и другие полезные инструменты для работы с дисками

Оглавление

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

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

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

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

1. Настройки Virtual Box

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

Оперативная ("Основная") память меня в данном случае не очень интересует, в то время как наибольший интерес представляет непосредственно жесткий диск (Настройки>Носители>...) - однако, максимум, что вы сможете извлечь из вышеобозначенной процедуры, так это узнать имя виртуального носителя. В данном случае, имя моего виртуального жесткого диска такое же, как и у самой машины, т.е. ubuntu-vm.vdi.

Поэтому, переходим в меню управления непосредственно виртуальными носителями. Для этого, жмем Файл>Инструменты>Менеджер виртуальных носителей:

-2

И здесь нашему взору предстает такой вот симпатичный GUI с ползунком, в теории предоставляющим возможность изменять размеры носителя. Однако, как оно водится, есть пара нюансов: во-первых, в силу тех или иных причин эти настройки могут оказаться заблокированы, а, во-вторых, речь идет об изменении лишь виртуального, но не фактического размера vdi - то есть, от изменения параметров этого меню ваша ВМ не заметит никакой разницы.

-3

2. Утилита vboxmanage

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

Для ее запуска, открываем Командную строку с правами Администратора (Пуск>Программы>ПКМ по "Командной строке">Запуск от имени Администратора):

-4

Затем, при помощи команды

CD C:\Program Files\Oracle\VirtualBox

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

А теперь внимательно. В контексте нашей задачи синтаксис vboxmanage имеет вид

vboxmanage modifyhd "[полный-путь-к-диску]" --resize [новый-размер]

Какие тут могут быть тонкости? Во-первых, необходимо корректно прописать полное имя (путь) к диску: по умолчанию, он будет находиться по адресу C:\Users\[Имя-Пользователя]\VirtualBox VMs\[Имя-ВМ]\[Имя-диска].vdi. Путь обязательно берем в кавычки, иначе cmd ничего не разберет. Во-вторых, значение нового объема виртуального носителя указывается в мегабайтах без уточнения единиц измерения, то есть, коль скоро я хочу выделить ВМ 25 ГБ памяти, то указываю параметр --resize 25600. Наконец, в момент осуществления операции интересующая нас ВМ должна быть отключена - думаю, по вполне понятным причинам.

В случае успеха вы увидите примерно следующее:

-5

Можно закрывать командную строку, перезапускать виртуальную машину и... удостовериться в том, что пока что там по-прежнему ровным счетом ничего не поменялось.

3. Утилита gparted

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

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

Так что теперь наша задача состоит в том, чтобы обновить данные о существующих разделах уже в самой ОС виртуальной машины. Для этого нам потребуется установить программу GParted (хочется верить, что хотя бы для нее осталось достаточно места!)

Процесс установки стандартный - просто вбиваем в консоль

sudo apt update

и

sudo apt install gparted

после чего переходим к списку установленных приложений и открываем свежеустановленную программу... Да, это редкий случай, когда нам придется иметь дело с графическим интерфейсом в контексте дистрибутивов Linux.

Далее, жмем ПКМ по интересующему нас разделу (в данном случае - /dev/sda2), выбираем Resize/Move и перетягиваем ползунок на сколько нужно вправо.

-6

Обратите внимание, что в начале работы исходный объем диска составлял чуть более 13 Гб, после чего объем был увеличен до 25 Гб, что вполне согласуется с приведенным на скриншоте соотношением реально задействованного разделом и "ничейного" пространства на диске.

-7

Самое главное: жмем галочку свергу, иначе изменения не будут применены. Перезагружаем систему.

-8

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

-9

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

Оставайтесь на связи.