Як збільшити розмір віртуального диска VirtualBox

26.09.2021, 22:47

Віртуальні машини повсюдно використовуються в наш час для тестування різних операційних систем і виконання інших завдань. Популярна і вільна програма для запуску віртуальних машин - 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 GB. Важливо, щоб об'єм, який ви вказуєте в параметрі 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

В OS 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" щоб застосувати всі операції.

Ми розглянули як збільшити розмір віртуального диска virtualbox за допомогою командного рядка і як надати отриманий простір вашій гостьовій системі.