Чому я не можу змінити розмір динамічного VDI за допомогою команди modifyhd?


29

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

Він повинен працювати з командою типу

VBoxManage modifyhd xp.vdi --resize 2000

Якщо VDI має фіксований розмір, ви можете отримати цю помилку:

~/VirtualBox VMs/xp$ VBoxManage modifyhd xp.vdi --resize 2000
0%...
Progress state: VBOX_E_NOT_SUPPORTED
VBoxManage: error: Resize hard disk operation for this format is not implemented yet!

І дискурс рішення саме тут .

Але я отримую цю помилку, коли мій VDI динамічний

~/VirtualBox VMs/xp$ VBoxManage showhdinfo xp.vdi
UUID:           8880dc58-cd0c-4ffb-a583-f8dd50eda98e
Parent UUID:    base
State:          created
Type:           normal (base)
Location:       /home/cip/VirtualBox VMs/xp/xp.vdi
Storage format: VDI
Format variant: dynamic default
Capacity:       8192 MBytes
Size on disk:   4693 MBytes
In use by VMs:  xp (UUID: e2b70963-3c26-41cf-88f6-4e03ca721e2d)

Чому так?


та ж проблема тут з Ubuntu 16.04LTS та динамічним vdi. дуже дивно
Luckyrings

Відповіді:


26

Для використання у VBoxManage modifyhdнас є такі застереження:

  • Диски повинні бути у форматі .VDI або .VHD.
  • Приводи повинні бути в динамічному форматі, а не фіксованими (фіксований диск можна перетворити на динамічний, створивши клон).
  • Розмір диска впливатиме лише на логічний розмір, а не на фізичний розмір.
  • Зменшити привід на рівні або нижче його фізичного розміру неможливо.
  • Для зменшення фізичного розміру нам потрібно заповнити невикористаний провідний простір 0.
  • Для зменшення фізичного розміру VDI для Windows, можливо, доведеться дефрагментувати.

У наведеному вище прикладі намагалися змінити розмір динамічного диска фізичним розміром від 4693 МБ до 2000 МБ, що неможливо. Звідси помилка.


1
Я тут і споткнувся. який біль.
Ніколас

2
Для редагування дисків у фіксованому форматі, слідувати відповідь на @ ripper234
Шарун

перевіри мою відповідь, у ній є всі деталі, які тобі потрібні, і я можу підтвердити, що це працює
Маурісіо Грація Гутьєррес

Я створив цей образ понад два роки тому, я вже давно забув, що це фіксований розмір і не динамічний. Читання цього у вашій відповіді нагадало мені. Я витратив більше години, намагаючись розібратися, чому я не зміг цього зробити: (... Спасибі
Мадівад,

Дякую, це допомогло. Для Linux не забудьте запустити pvresizeкоманду, щоб скористатися цим простором для Linux
Максим Лузик

24

Цей спосіб вирішив для мене:

  1. Вимкніть машину
  2. Створіть новий диск через інтерфейс адміністратора з потрібним розміром
  3. Використовуйте VBoxManage clonemedium з --existingпрапором

    VBoxManage clonemedium <source-guid> <destinatin-guid> --existing
    

Примітка . Тепер новий диск матиме зайвий простір як нерозподілений, і вам потрібно буде використовувати gparted, щоб збільшити розмір до максимуму.

Не впевнений, чому хлопці з VirtualBox не могли використати вищезазначене, щоб реалізувати це, а не кидати VBOX_E_NOT_SUPPORTED... принаймні посилання на це :)


1
Як я можу виділити зайвий простір на windows?
Кен

4
@Ken не впевнений, чи ти це зрозумів; Пуск -> Запуск -> diskmgmt.msc, клацніть правою кнопкою миші на C: (або будь-який основний диск) і виберіть розширення.
Трент

2
це допомогло. Я не з GUID, а з назвою файлу диска
Luckyrings

3
@ ripper234 Три кроки потребують глибокого пояснення - для таких людей, як я, не впевнені, що вони роблять. У 2) ми створюємо новий фіксований диск чи що? .vdi .vdmk ?? Наведіть, будь ласка, належний приклад, можливо, із графікою. Також 3) Що робить клонемедіум на відміну від clonehd? Звідки беруться два путівники - зокрема, цільовий один - він уже існує, хоча ми клонуємо? Спасибі
mwarren

Дякую. Тепер мене тут направили як користувача Windows (навіть якщо це askUbuntu), тож я додам тут, що у версії Windows VBoxManage вам потрібно поставити шляхи до віртуальних жорстких дисків замість VM GUIDs.
Шон Берчетт

4

Ось і весь процес, я постараюся бути максимально детальним

  1. Переконайтесь, що машина, на якій ви збираєтеся збільшуватись, перебуває у стані "Вимкнення" (а не в "збереженому" чи будь-якому іншому)

У моєму випадку це машина розміром 32 ГБ і називатиме її МАЛОЮ ВМ

  1. Створіть нову віртуальну машину з новим потрібним розміром

У моєму випадку я вирішив створити нову віртуальну машину на 70 Гб, відновивши вміст маленької машини всередині цього нового ВМ, і буду називати це ВЕЛИКОЮ ВМ

  1. Запустіть команду VBoxManage list hddsабо Відкрийте віртуальний медіа-менеджер, щоб отримати GUID SMALL VM (походження), а також GUID великого VM (місце призначення)

За допомогою цих GUID побудувати наступну команду

VBoxManage clonemedium SMALL_VM_GUID LARGE_VM_GUID - існуючий

У моєму випадку ORIGIN - SMALL VM - це: 39143127-42b6-478a-afb2-5e58f14218b

У моєму випадку ВИЗНАЧЕННЯ - ВЕЛИКИЙ VM - це: bb808b5b-b88c-49b2-a646-3414af906d84

Звичайно, ваші GUID будуть відрізнятися від моїх

Переконайтеся, що ви не інвертуєте GUID, інакше абсолютно нова машина замінить вміст існуючої машини !!!!

Переконайтесь, що ви не змішали походження з пунктом призначення, виконайте цю команду:

$ VBoxManage clonemedium 39143127-42b6-478a-afb2-5e58f14218b2 bb808b5b-b88c-49b2-a646-3414af906d84 - існуючий

0% ... 10% ... 20% ... 30% ... 40% ... 50% ... 60% ... 70% ... 80% ... 90% ... 100%

Клон носія створений у форматі "VDI". UUID: bb808b5b-b88c-49b2-a646-3414af906d84

  1. Запустіть новий ВЕЛИКИЙ VM , створений на кроці 2.

  2. Перевірте у вікні інструмента «Комп'ютерне керування», що на пристрої є більше невикористаного / неформатного місця

  3. Якщо ви віддаєте перевагу, можете запустити "chkdsk" на диску C, щоб переконатися, що все готово (це може зайняти дві перезавантаження на ВЕЛИКОМУ ВМВ )

  4. Використовуючи gparted-live * .iso, "вставте його" у нову віртуальну машину та перезавантажте її

  5. Завантажтесь у навколишнє середовище

  6. Зробіть свій розділ і збережіть зміни

  7. "Вийняти" gparted-live * .iso для повторного завантаження в Windows

  8. Перевірте у вікні інструмента «Комп'ютерне управління», що в машині тепер є більший привід С для вирішення ваших проблем

У мене були скріншоти цього процесу, але я вирішив не включати їх, оскільки це зробить мою відповідь великим і залякуючим для людей, які "поспішають" отримати вільний простір на своїй віртуальній машині Windows


Дякую за путівник. На кроці 3, звідки ви берете GUID? Я не впевнений, що таке віртуальний медіа-менеджер.
А.Ван

3
Неважливо, я думаю, що це я отримавVBoxManage list hdds
А.Ван

@ A.Як це віртуальний медіа-менеджер - google.com.co/…
Маурісіо Грація Гутьєррес
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.