При работе с популярной системой виртуализации Oracle VM VirtualBox пользователи иногда стакиваются с таким тривиальным, но весьма малоприятным явлением как нехватка места на диске. Причина такой нехватки полагаем, понятна всем.
Либо пользователь изначально не рассчитал и создал виртуальный диск меньшего размера, либо в процессе работы возникли обстоятельства, вынудившие его использовать дисковое пространство по максимуму. Очевидных решений тут может быть три. Во-первых, можно удалить с диска часть данных, что далеко не всегда представляется возможным, во-вторых, можно создать новую виртуальную машину, что кажется еще менее удобным и наконец, создать в менеджере VirtualBox дополнительный диск и подключить его к основному VDI-файлу.
Последний способ наиболее удобен и прост. Созданный таким образом диск можно использовать и для хранения разных данных и для установки программ. Но есть и еще один способ, заключается он в расширении базового файла VDI. По умолчанию VirtualBox не поддерживает расширение созданного виртуального диска, однако существуют методы позволяющие выполнить эту операцию в обход, с помощью командной строки Windows.
Любопытно, что при этом некоторые пользователи сталкиваются с досадной ошибкой “Операция изменения размера жесткого диска для этого формата пока не реализована”, у других же проходит все гладко и без ошибок.
Оказывается, ошибка эта появляется в том случае, когда пользователь работает в старой версии (ниже 4.0) VirtualBox или использует фиксированный виртуальный диск. И если в первом случае проблему еще можно решить путем обновления до последней версии, то во втором помочь беде можно только применив следующий “хак”.
Метод этот прост, но требует внимания. Как и в случае с динамическими дисками мы будем использовать командную строку Windows. Перед выполнением операции настоятельно советуем удалить созданные снапшоты и на всякий создать резервную копию виртуальной системы. Итак, откройте командную строку и перейдите в каталог программы VirtualBox.
Все манипуляции будем выполнять из этого каталога. По умолчанию он располагается по адресу C:Program FilesOracleVirtualBox. Команда перехода будет выглядеть следующим образом:
Затем необходимо создать клон виртуального диска, который и будем расширять. Для этого в консоли выполните следующую команду:
Путь к файлам виртуальной машины будет у каждого свой. В нашем случае он выглядит так:
На выполнение этой операции может уйти некоторое время. В нашем случае клонирование диска размером 25 Гб заняло около 20 минут. Если в именах папок и файлов вы используете пробелы, не забудьте заключить путь в кавычки. А теперь расширим созданный клон, применив следующую команду:
В данном случае мы увеличиваем размер виртуального жесткого диска до 30 Гб. Для того чтобы все заработало, осталось подключить новосозданный диск к виртуальной машине. Для этого в менеджере Virtual Box перейдите в настройки машины, откройте раздел “Носители”, а затем, выбрав Контроллер SATA, щелкните по плюсику внизу и прикрепите диск клона. Старый носитель можете смело удалять, больше он нам не понадобиться.
При этом обратите внимание, что тип созданного и расширенного нами клона не фиксированный, а динамический. То есть, расширить диск таким образом, чтобы он по-прежнему остался фиксированным не представляется возможным. Казалось, на этом можно и остановиться. Однако если вы сейчас запустите виртуальную машину, то увидите что несмотря на все выполненные действия размер диска не изменился. Почему так произошло? Дело в том, что добавленное нами пространство пока еще не распределено. Для того чтобы “включить” его перейдите в раздел управления дисками. Кликните правой клавишей по значку Компьютер, в контекстном меню выберите “Управление”, а затем в открывшемся окне “Управление дисками”.
Далее выделяем системный раздел и в контекстном меню выбираем “Расширить том”. При этом будет запущен мастер расширения тома. Следуя его указаниям, добавьте нераспределенное пространство к основному диску.
Вот теперь дело можно считать сделанным. И как видите, с 24,6 Гб диск был вполне успешно расширен до 28,9 Гб и это без учета пространства, зарезервированного операционной системой под свои нужды.