Почему я не могу изменить размер динамического VDI с командой modifyhd?

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

Это должно работать с командой как

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)

Почему это?

28
задан 13 April 2017 в 05:24

4 ответа

Для использования VBoxManage modifyhd, у нас есть следующие протесты:

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

В примере выше его был попробован для изменения размеров динамического диска с физическим размером 4 693 МБ к 2 000 МБ, который не возможен. Следовательно ошибка.

26
ответ дан 23 November 2019 в 00:56

Это обходное решение работало на меня:

  1. Завершение работы машина
  2. Создает новый диск через администраторский интерфейс с размером, который Вы хотите
  3. Использование VBoxManage clonemedium с --existing флаг

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

Примечание : Теперь новый диск будет иметь избыточное пространство, как освобождено, и необходимо будет использовать gparted для расширения размера до максимума.

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

23
ответ дан 23 November 2019 в 00:56

Вот целый процесс, я попытаюсь быть максимально подробным,

  1. Удостоверяются, что машина, которую Вы собираетесь увеличиться в размере, находится в состоянии "Завершения работы" (не в "сохраненном" или любом другом состоянии)

В моем случае, это - машина 32 ГБ размером и назовет его , МАЛЕНЬКИЙ VM

  1. Создает новую Виртуальную машину с новым желаемым размером

В моем случае , я решил сделать новое Виртуальной машиной на 70 ГБ при восстановлении содержания маленькой машины в этом новом VM, и я назову это БОЛЬШОЕ Выполнение VM

  1. команда VBoxManage list hdds или Открою Virtual Media Manager для получения GUID МАЛЕНЬКИЙ (источник) VM и также GUID , БОЛЬШОЙ VM (место назначения)

С теми GUID создает следующий SMALL_VM_GUID LARGE_VM_GUID VBoxManage clonemedium команды

- существующий

В моем случае ИСТОЧНИК - МАЛЕНЬКИЙ VM: 39143127-42b6-478a-afb2-5e58f14218b

В моем случае DESINATION - БОЛЬШОЙ 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. инструмента окна Computer Managment, что машина имеет на самом деле больше размера неиспользованное/восстановленное после форматирования пространство

  3. , Если Вы предпочитаете, чтобы можно было выполнить "chkdsk" на диске C удостовериться, что все готово (это могло бы взять Вас две перезагрузки на БОЛЬШОЙ VM)

  4. Используя gparted-live*.iso, "вставьте он" в новую виртуальную машину и перезагрузите его

  5. , Начальная загрузка в gparted среду

  6. Выращивает Ваш раздел и сохраняет изменения

  7. , "Извлекаются" gparted-live*.iso для начальной загрузки снова в Windows

  8. Check in инструмента окна Computer Management, что машина теперь имеет более крупный диск C решить проблемы специи

, у меня были снимки экрана их, обрабатывают, но решенный для не включения их, так как это сделает мой ответ на большой и пугающее для людей, которые спешат получать свободное пространство на их виртуальной машине Windows

4
ответ дан 23 November 2019 в 00:56

Нашел более простой обходной путь, по крайней мере для меня: (сначала обязательно клонируйте свою машину в качестве резервной копии на случай, если gparted что-то испортит)

  1. Увеличьте размер виртуального диска в Virtual Manager

  2. В настройках ВМ->хранилище->оптический привод:

    • Включить live CD
    • Связать оптический привод с файлом gparted .iso
  3. Загрузить виртуальную машину. он войдет в дистрибутив gparted linux

  4. Измените размер раздела

  5. Выключение виртуальной машины

  6. Отсоедините файл ISO от оптического диска («Удалить диск из виртуального диска»)

  7. Виртуальная машина теперь должна иметь новый размер диска. Может запросить chkdsk.

0
ответ дан 20 April 2020 в 23:37

Другие вопросы по тегам:

Похожие вопросы: