Для конвертирования виртуальной машины из формата Hyper-V в формат VMware (упакованный в OVA) нам понадобится:
- Рабочая станция с Windows 8.1/10 с установленной ролью Hyper-V или модулем powershell для Hyper-V. Так же подойдет Windows Server 2012 R2 с установленной ролью Hyper-V и модулем powershell для Hyper-V.
Установить модуль poweshell для Hyper-V можно следующим образом: запустите консоль powershell с привилегиями администратора.
Выполните команду:
Для Windows 8.1/Windows Server 2012 R2:Add-WindowsFeature RSAT-Hyper-V-Tools –IncludeAllSubFeature
Для Windows 10:Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Management-PowerShell
- Содержимое пакета Converter.zip – в нем находятся все необходимые скрипты и утилиты для конвертации. Распакуйте содержимое на диск компьютера, на котором будет проходить конвертация.
- Для того чтобы скрипт сработал корректно необходимо изменить ExecutionPolicy на RemoteSigned. Для этого запустите Windows Powershell с привилегиями администратора (как на изображении выше), выполните команду:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
Подтвердите смену политики.
Подготовка виртуальной машины к конвертации
Внимание! Для старых гостевых ОС (например, Windows Server 2003) необходимо убедиться, что в системе инициализирован драйвер SCSI (актуально для ВМ первого поколения). Если ОС установлена на диск подключенный к контроллеру IDE и других дисков в системе нет/они подключены также к шине IDE, то необходимо подключить к этой ВМ хотя бы один виртуальный диск через контроллер SCSI и убедиться, что он инициализирован в системе.
Требования к ova/ovf файлам:
- Hardware Version машины не выше 11й;
- Тип дисков scsi.
Откройте оснастку управления Hyper-V (Панель управления\Администрирование\Управление Hyper-V или Control Panel\All Control Panel Items\Administrative Tools\Hyper-V Manager).
Подключитесь к вашему серверу Hyper-V (если ваша виртуальная машина работает не на том же компьютере, на котором вы выполняете конвертацию).
Выключите вашу виртуальную машину и экспортируйте ее (Контекстное меню – Export…).
Укажите папку для экспорта вашей виртуальной машины.
Конвертация виртуальной машины
Примечание: скрипт можно скачать с нашего репозитория на GitHub.
Шаг 1
Запустите консоль powershell с привилегиями администратора.Шаг 2
Перейдите в папку Converter, содержащую необходимые скрипты и утилиты.Шаг 3
Весь процесс осуществляется скриптом Convert-VM.ps1, который принимает два параметра:
Convert-VM.ps1 –HyperVVMPath <string> –OVAPath <string> [<CommonParameters>]
- HyperVVMPath - путь к экспортированной ранее виртуальной машине;
- OVAPath – путь к папке, в которую будет сконвертирована виртуальная машина в формате OVA (если папка не существует, она будет создана).
Запустите скрипт, указав в параметрах пути к необходимым папкам.
Например:
.\Convert-VM.ps1 -HyperVVMPath D:\export\Test1\ -OVAPath D:\ova\
Дождитесь выполнения всех утилит конвертации (они могут продолжаться длительное время, в зависимости от размера файлов виртуальной машины).
По итогам работы скрипт укажет путь к созданному OVA-файлу.
Создание OVA из файла виртуальной машины
Если у Вас в наличии нет виртуальной машины, а есть только файл виртуального диска и хочется превратить его в шаблон OVA, то можно воспользоваться другим набором параметров для скрипта:
Convert-VM.ps1 –VHDPath <string> –OVAPath <string> [–CPU <byte>] [–Memory <byte>] [<CommonParameters>]
VHDPath – путь к вашему файлу виртуального диска в формате vhd или vhdx.
OVAPath – путь к папке, в которую будет сконвертирована виртуальная машина в формате OVA (если папка не существует, она будет создана).
Опциональные параметры:
CPU – количество процессоров виртуальной машины (число, по умолчанию 1).
Memory – количество памяти виртуальной машины (число, в МБ, по умолчанию 1024).
Например: .\Convert-VM.ps1 -VHDPath D:\ test.vhd -OVAPath D:\temp\ova -CPU 2 –Memory 4096
Дождитесь выполнения всех утилит конвертации (они могут продолжаться длительное время, в зависимости от размера файла виртуального диска).
По итогам работы скрипт укажет путь к созданному OVA-файлу.