Я являюсь одним из поклонников такой полезной программы, как VirtualBox. Поэтому знаю что при создании новой виртуальной машины, которой ранее не было, обязательно запускается мастер создания виртуальных носителей, где вас просят выбрать тип виртуального носителя и его размер. Очень часто я выбирал значение размера жесткого диска по-умолчанию (20 ГБ), но со временем использования виртуальной ОС оказывалось что этого размера не всегда достаточно. Поэтому рассмотрим как можно увеличить размер виртуального жесткого без переустановки виртуальной ОС.
Для начала необходимо запустить терминал, если у вас Linux или командную строку, если Windows и ввести в нее следующую команду:
VBoxManage modifyhd /путь/к/vdi-файлу --resize x
Где в самом конце команды параметр «х» это размер в мегабайтах, к которому вы хотите увеличить ваш виртуальный жесткий. К примеру, если вы хотите увеличить размер виртуального жесткого для Windows 8 с 20 до 30 ГБ, то эта команда будет выглядеть так:
VBoxManage modifyhd
/путь/к/
Windows_8.vdi --resize 30000
Далее жмем клавишу Enter и вы должны увидеть процесс выполнения команды. После ее завершения (100%) размер виртуального жесткого увеличиться до заданного значения.
Со стороны вашей основной системы все. Теперь необходимо загрузиться в гостевую операционную систему и добавить появившейся размер в ее использование.
Для гостевых ОС Windows
К примеру, добавить новое дисковое пространство для Windows XP, Vista, Seven можно с помощью правой кнопки на ярлычке «Мой компьютер» на рабочем столе. Затем через меню Управление -> Управление дисками. Новое пространство появится там как неразмеченная область. Рассмотрим на примере относительно новой Windows 8. Для этого наберите в поиске (Search) слово «partition» щелкнув перед этим мышкой по опции «Настройки» (Settings).
Результат поиска должен выдать вариант «Create and format hard disk partitions». Выберите эту опцию. В окне редактирования разделов вы должны увидеть свободную неразмеченную область справа от активного раздела.
Далее правой кнопкой по активному разделу выберите из меню «Extend Volume» (Расширить раздел).
Далее просто «Next».
После этого Windows Explorer должен определить что размер жесткого увеличился к заданному ранее значению. А в диспетчере управления дисками свободная неразмеченная область должна слиться с активным разделом.
Для гостевых ОС Linux
В зависимости от настроек вашей гостевой системы расширить жесткий диск как в Windows может быть не просто. К примеру, в Ubuntu даже если есть свободное место на жестком при расширении активного раздела сбиваются настройки загрузчика с вытекающими для этого последствиями. Поэтому как простейший вариант можно создать в неразмеченной области отдельно новый раздел и просто монтировать его при загрузке в нужное место.
Для этого в гостевой ОС необходимо установить менеджер управления разделами. Один из наиболее популярных — это GParted. Этот менеджер существует для различных видов Linux и имеет очень удобный интерфейс. Установить GParted для Ubuntu, Debian, Mint можно с помощью следующей команды:
sudo apt-get install gparted
Для Fedora, Centos:
su yum install gparted
Далее запускаем GParted и вы должны увидеть неразмеченный раздел.
Правой кнопкой мышки по новому разделу выберите из меню «Новый». В моем примере выбрана файловая система Ext4, такая же как и на основном разделе, но утилита GParted позволяет выбрать файловую систему из достаточно широкого списка: FAT, FAT32, NTFS, Ext2/3, ReiserFS и т.п.
После всего в главном окне программы кликните на зеленую галочку чтобы применить все изменения.
После того как программа завершит роботу можно запустить файловый менеджер чтобы примонтировать в систему только что созданный раздел.
Монтирование раздела из файлового менеджера действительно только до первой перезагрузки, поэтому чтобы сделать автоматическое монтирование при каждом запуске виртуальной машины нужно сделать следующее.
Запустите опять GParted чтобы узнать какое имя утилита присвоила новому разделу. Как правило это имя будет иметь следующий вид:
/dev/sdaХ
Где Х — это номер раздела. Это же можно выяснить с помощью команды в терминале:
sudo blkid
Где наш новый раздел будет последним.
После чего в терминале открываем от имени рута право на редактирование системного файла:
sudo gedit /etc/fstab
После чего вставляем в конец этого файла следующую строчку:
/dev/sdaХ /путь/куда/монтировать/раздел ext4 defaults 0 2
Где Х — это номер раздела.
К примеру:
/dev/sda5 /media ext4 defaults 0 2
Ну вот и все. Пишите, оставляйте комментарии.
Большое спасибо за свежую статью!
Как раз сегодня столкнулся с такой же проблемой — на виртуалке с ubuntu закончилось свободное место. После того, как попробую описанные действия сообщу результат )
При создании нового виртуального жёсткого диска можно выбрать пункт «Динамически расширяющийся образ» и всё будет о’кей…
Спасибо, помогло, только стоит добавить, что если в пути к vdi-файлу есть пробелы, то нужно путь указывать в кавычках, например
VBoxManage modifyhd «E:\Temp\Virtualbox\7 Ultimate\7 Ultimate.vdi» —resize 30000
В гостевой ХРюше так просто не получится увеличить объем диска С. Воспользовался EaseUS Partition Master Home Edition — все быстро и без проблем. Спасибо автору!!!
Спасибо огромное за статью!
Очень грамотно и доступно. Огромное спасибо!
Еще, надо добавить, что команда должна запускаться от рута
Неплохо. Спасибо.
Попытался… Вот ответ:
«VBoxManage» не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Каким способом вы устанавливали Virtual Box?
Попытался… Вот ответ:
“VBoxManage” не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
та же проблема, устанавливался путем скачивания с офф. сайта, не через yast2, у меня SUse13.4
я новичек, что только не перепробовал, пропись от рута.
Я точно знаю как проверить наличие команды в Ubuntu или Centos, думаю в SUse13.4 также. Для этого наберите в консоли начало команды, затем два раза клавишу Tab — такой способ покажет все похожие команды, которые начинаются с этого слова. К примеру: vbox -> 2-ной Tab, должны показаться возможные варианты: vboxautostart vboxballoonctrl vboxheadless vboxmanage vboxsdl vboxwebsrv. У меня Ubuntu выдает такой результат.
BoxManage: error: Could not find file for the medium ‘/home/luckday1/~/VirtualBox/media/vin1.vdi’ (VERR_FILE_NOT_FOUND)
VBoxManage: error: Details: code VBOX_E_FILE_ERROR (0x80bb0004), component Medium, interface IMedium, callee nsISupports
VBoxManage: error: Context: «OpenMedium(Bstr(pszFilenameOrUuid).raw(), enmDevType, enmAccessMode, fForceNewUuidOnOpen, pMedium.asOutParam())» at line 178 of file VBoxManageDisk.cpp
Причина ошибки — файл vin1.vdi не найден, проверте ваш путь к файлу, смущает этот фрагмент: «/home/luckday1>>/~/<<VirtualBox/media/vin1.vdi»
Спасибо, пацик! Помогло!
Здравствуйте!
Столкнулась с проблемой увеличения диска в машине, у которой был снимок. В моем случае увеличение стало доступно в гостевой ОС только после удаления снимка, т.к. последнее влечет за собой объединение vdi файлов — основного и в папке snapshots. Странно, что ни на одном из ресурсов проблема не освещена в случае наличия снимков. За статью спасибо!
Спасибо за эту информацию, возможно кому-то она пригодится в попытках увеличения диска.
Hi,
Сделала все по инструкции. Гостевая — ubuntu.
После перезапуска новый диск не примонтирован . Более того, если его примонтировать вручную через gparted, он все равно не виден в Computer/Properties. Там прежнее кол-во памяти.
Не подскажете, в чем может быть проблема?
но все равно ничего не изменилось.
Не дописала.. 🙂
В fstab написала сначала /dev/sda3 ..
потом поменяла на UUID
UUID=… / ext4 defaults 0 2
но все равно ничего не изменилось.
Кажется поняла..
Нельзя монтировать в корень?
Ну в корень лучше не монтировать. И вы правильно написали, лучше использовать UUID раздела. Вот скопировал у себя рабочий пример:
UUID=6df3b7e4-0cc8-4crc-8dd4-6266588b5644 /mnt ext4 defaults 0 0
Это последняя строка добавленная в /etc/fstab.
А у меня после перезапуска новый диск вообще не виден (хотя в настройках размер увеличился)
Настройки виртуальной машины не изменились? Попробуйте передобавить диск к виртуальной машине…
Винда ХР: прекрасно всё сработало в связке с EaseUS Partition Master. Спасибо за наводку автору и MNomzh!
Странно, что возможность изменения размера образа отсутствует в графическом меню. К примеру, виртуальный диск с ХР динамически расширяется очень маленькими порциями, и только после перезагрузки, что не по-деццки доставляет.
У меня тип HD статичный, я так понял его нельзя расширить. А можно ли изменить тип на динамический?
Вы пробовали изменить размер статичного диска? Что возвращает VBoxManage modifyhd?
0%…
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize medium operation for this format is not implemented yet!
Нашел ответ на одном из форумов с похожей ошибкой. Вот пример решения, команды в консоли:
$ VBoxManage showhdinfo windows7x64.vdi
UUID: 15dccff1-30e0-4eac-a8d9-90ae90161a64
Accessible: yes
Logical size: 20480 MBytes
Current size on disk: 20480 MBytes
Type: normal (base)
Storage format: VDI
Format variant: fixed default
In use by VMs: Win7x64 (UUID: 129eea26-f578-405a-924c-7a5076bcc5c8)
Location: /mnt/moredata/VMs/Windows7x64/windows7x64.vdi
Для начала необходимо выполнить клонирование диска:
$ VBoxManage clonehd windows7x64.vdi windows7x64_C.vdi
0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%
Clone hard disk created in format ‘VDI’. UUID: 4e067a69-0f9b-4394-9607-8d7cc37b8223
Затем все действия выполняем с клоном, что обеспечивает безопасность данных, при этом клон уже будет динамическим:
$ VBoxManage showhdinfo windows7x64_C.vdi
UUID: 4e067a69-0f9b-4394-9607-8d7cc37b8223
Accessible: yes
Logical size: 20480 MBytes
Current size on disk: 20364 MBytes
Type: normal (base)
Storage format: VDI
Format variant: dynamic default
Location: /mnt/moredata/VMs/Windows7x64/windows7x64_C.vdi
После чего должно получиться выполнить ресайз:
$ VBoxManage modifyhd windows7x64_C.vdi —resize 40960
0%…10%…20%…30%…40%…50%…60%…70%…80%…90%…100%
$ VBoxManage showhdinfo windows7x64_C.vdi
UUID: 4e067a69-0f9b-4394-9607-8d7cc37b8223
Accessible: yes
Logical size: 40960 MBytes
Current size on disk: 20365 MBytes
Type: normal (base)
Storage format: VDI
Format variant: dynamic default
Location: /mnt/moredata/VMs/Windows7x64/windows7x64_C.vdi
Попробуйте этот способ.
Здравствуйте, большое спасибо за способ, вроде бы все получилось ,но при загрузке пишет
serious errors were found while checking the disk drive media
Если посл строку в файле fstab удалить , то предупреждение пропадает
Ну тогда назревает такой вопрос, вы отформатировали этот подключаемый в fstab раздел, в какую файловую систему?