Сегодня хотим поведать о том, как конвертировать образы дисков виртуальных машин из одного формата в другой. Допустим у нас есть виртуальная машина, развернутая в среде виртуализации VMware, а мы хотим импортировать её в среду Hyper-V. Или же вендор выпускает дистрибутивы только для Hyper-V, а нам обязательно нужно развернуть машину в VMware, потому что у нас вся сеть на нем. Если ты столкнулся с такой проблемой, то обязательно дочитай эту статью и ты найдёшь решение.
ПРОЦЕСС
Существует несколько форматов образов виртуальных жёстких дисков, которые поддерживаются разными средами виртуализации. Рассмотрим некоторые из них:
- VMDK (Virtual Machine DisK) - формат образа виртуального жёсткого диска для виртуальных машин, разработанный VMware
- VHD (Virtual Hard Disk) - формат файла, использующийся для хранения образов операционных систем, разработанный компанией Connectix, которая позднее была куплена Microsoft и теперь используется для образов Hyper-V. VHDX тоже самое, только все пространство на диске должно быть задано сразу.
- VDI (Virtual Disk Images) - формат образа жёсткого диска гостевых виртуальных машин VirtualBox.
Если ты используешь VirtualBox - поздравляю, ты можешь взять любой из имеющихся форматов и создать виртуальную машину.
Но так уж получилось, что форматы VHD и VMDK несовместимы между собой. Поэтому, чтобы можно было использовать VMDK в Hyper-V, а VHD в VMware, их сначала нужно переконвертировать.
Итак, допустим у нас есть виртуальная машина VMware с образом жёсткого диска LOCAL-VM-disk1.vmdk, который находится в папке C:\VMDKs. Для того, чтобы перенести его в Hyper-V, создадим папку, куда будет отправлен наш сконвертированный файл VHD – C:\VHDs. После этого, скачаем специальную программу от Microsoft - Microsoft Virtual Machine Converter 3.0, она доступна по ссылке https://www.microsoft.com/en-us/download/details.aspx?id=42497.
После нажатия на кнопку Download, нам предложат скачать 2 файла – саму программу и описание команд. Установите программу.
Прежде чем продолжить, убедитесь, что версия PowerShell, которая у вас установлена 3 или выше. Проверить это можно если ввести команду $PSVersiontable
Если версия ниже 3 – обновите PowerShell, если 3 или выше, то продолжаем. Для начала, необходимо указать путь до скрипта конвертера, для этого вводим команду:
Import-Module ‘C:\Program Files\Microsoft Virtual Machine Converter\MvmcCMdlet.psd1’
Расположение скрипта может отличаться от C:\Program Files\Microsoft Virtual Machine Converter\, всё зависит от того, какой путь был указан при установке программы
Команда должна выполниться без каких-либо ошибок. Если ошибки всё же появились – проверьте расположение скрипта и правильность ввода. Ну или пишите вывод ошибки в комментарии – мы постараемся помочь :)
Теперь можно приступать к конвертированию. Для этого введите следующую команду:
ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath “C:\VMDKs\LOCAL-VM-disk1.vmdk”-DestinationLiteralPath “C:\VHDS\” -VhdType DynamicHardDisk -VhdFormat vhd
Где:
- C:\VMDKs\LOCAL-VM-disk1.vmdk - Путь к конвертируемому образу формата VMDK
- C:\VHDS\ - Папка, куда будет помещен сконвертированный образ формата VHD
После этого, можно зайти в папку, куда будет помещен сконвертированный файл и наблюдать за тем как увеличивается его размер.
После того, как файл будет сконвертирован, мы увидим следующий вывод в консоли PowerShell:
Теперь можно использовать сконвертированный файл VHD в подходящей среде виртуализации Hyper-V