Расширение (увеличение) образа виртуального диска VMDK

Расширение (увеличение) образа виртуального диска VMDK

Опубликовано в Системное администрирование

В свое время у меня сложилась ситуация, когда, работая с VirtualBox (Oracle VM VirtualBox), у виртуальной машины остался совсем небольшой объем дискового пространства, при этом задача стояла установить программное обеспечение, для которого требовалось в несколько раз больше свободного места, чем на тот момент оставалось на виртуальном диске.

Для тех, кто не в курсе:

VMDK (Virtual Machine Disk)
- формат файла, разработанный компанией VMware для использования в качестве образа виртуального диска в виртуальных машинах VMware.
VDI (Virtual Disk Image) 
- специальный контейнер программы VirtualBox, используемый в качестве образа виртуального диска в виртуальных машинах Virtualbox.

В ходе создания и настройки виртуальной машины из предложенных вариантов образов виртуальных дисков я выбрал формат VMDK, пользуясь при этом VirtualBox v.4.3.10 r93012 в Windows 7 Корпоративная с Service Pack 1.

Немного поискав в Интернет я нашел решение, состоящее из нескольких шагов:

  1. Используя VirtualBox и командную строку Windows (cmd) необходимо через обращение к файлу VBoxManage.exe расширить образ *.VMDK, но VBoxManage.exe работает только с "родными" образами *.VDI, поэтому предварительно *.VMDK нужно переконвертировать в *.VDI.

  2. Подключить к виртуальной машине расширенный образ жесткого диска *.VMDK и с помощью программ для работы с разделами жесткого диска уже из виртуальной машины расширить дисковое пространство существующих разделов до допустимых размеров.

# Как запустить VirtualBox.exe от имени администратора?

ВНИМАНИЕ! Чтобы избежать проблем с политиками безопасности Windows и ограничений на запуск исполняемых файлов, необходимо для файла VirtualBox.exe (в моем случае он находится в папке C:\Program Files\Oracle\VirtualBox) выполнить следующие операции:

  1. наведите курсор на файл и выделите файл VirtualBox.exe нажатием на левую клавишу мыши;
  2. не уводя курсор мыши с файла нажмите на правую клавишу мыши, вызвав контекстное меню;
  3. в появившемся меню выберите найдите и нажмите на пункт Свойства;
  4. открыть вкладку Совместимость;
  5. можете смотреть рисунок в конце списка или читать дальше по пунктам;
  6. нажать на кнопку Изменить параметры для всех пользователей;
  7. в появившемся окне найти и установить галочку в пункте Выполнять эту программу от имени администратора;
  8. закрыть оба окна на кнопки ОК.

Как запустить VirtualBox от имени администратора

Для выполнения шага 1 необходимо открыть командную строку:

  • WinKey (найти на клавиатуре и нажать на кнопку Windows в виде флажка, либо привычным для Вас способом открыть меню пуск)
  • ввести в текстовое поле текст cmd.
  • нажать сочетание клавиш Ctrl + Shift + Enter

и ввести команду для перемещения в папку с установленной программой VirtualBox (в моем случае это папка C:\Program Files\Oracle\VirtualBox):

cd "C:\Program Files\Oracle\VirtualBox"

и нажав Enter. Далее ввести команду:

VBoxManage modifyhd "C:\Users\schritter\VirtualBox VMs\XPro\XPro.vmdk" --resize 15360

В моем случае цифра 15360 означает, что размер файла станет 15 Гб. Нажать Enter.

# Что означает ошибка VBOX_E_NOT_SUPPORTED?

Почему появилась ошибка VBOX_E_NOT_SUPPORTED при выводе результатов работы команды?

  1. 0%...
  2. Progress state: VBOX_E_NOT_SUPPORTED
  3. VBoxManage.exe: error: Resize hard disk operation for this format is not implemented yet!

Эта ошибка связана с тем, что файл, который я пытался преобразовать, не является "родным" форматом *.VDI, поэтому, к сожалению, нельзя с ним так просто работать и его нужно преобразовать. Следующие команды нам в этом помогут:

  1. VBoxManage clonehd "C:\Users\schritter\VirtualBox VMs\XPro\XPro.vmdk" "C:\Users\schritter\VirtualBox VMs\XPro\clone.vdi" --format vdi
  2. VBoxManage modifyhd "C:\Users\schritter\VirtualBox VMs\XPro\clone.vdi" --resize 15360
  3. VBoxManage clonehd "C:\Users\schritter\VirtualBox VMs\XPro\clone.vdi" "C:\Users\schritter\VirtualBox VMs\XPro\XPro.vmdk" --existing

И наконец долгожданная строка со статусом выполнения задания означает, что операция успешно завершена:

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

Так как ранее мы настроили запуск программ от имени администратора, это помогло нам избежать ошибки CO_E_SERVER_EXEC_FAILURE.

# Что означает ошибка CO_E_SERVER_EXEC_FAILURE?

Если в ходе выполнения скрипта Вы наблюдаете следующие ошибки:

  1. VBoxManage.exe: error: Failed to create the VirtualBox object!
  2. VBoxManage.exe: error: Code CO_E_SERVER_EXEC_FAILURE (0x80080005) - Server execution failed (extended info not available)
  3. VBoxManage.exe: error: Most likely, the VirtualBox COM server is not running or failed to start.

это значит, что Вам нужно обратить внимание на алгоритм Как запустить VirtualBox.exe от имени администратора?, находящийся недалеко от начала этой страницы. Вкратце - настройте запуск VirtualBox.exe от имени Администратора.

# Что означает ошибка VERR_ALREADY_EXISTS?

Эта ошибка появилась, в моем случае, когда файл конечного образа XPro.vmdk уже существовал, и команда для конвертации файла из *.VDI в *.VDMK не смогла перезаписать его:

  • VBoxManage clonehd "C:\Users\schritter\VirtualBox VMs\XPro\clone.vdi" "C:\Users\schritter\VirtualBox VMs\XPro\XPro.vmdk" --format vmdk

Красным выделен ошибочный фрагмент. Так как файл уже существует, команду необходимо выполнять в следующей редакции:

  • VBoxManage clonehd "C:\Users\schritter\VirtualBox VMs\XPro\clone.vdi" "C:\Users\schritter\VirtualBox VMs\XPro\XPro.vmdk" --existing

После этого все благополучно сконвертировалось обратно:

  1. 0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
  2. Clone hard disk created in format 'VMDK'. UUID: 8a4c86c3-26fd-4bfc-8e78-e95cdb654f02