В некоторых случаях виртуальные машины, созданные на локальных машинах разработчиков или администраторов, требуется перенести в продуктивную среду на полноценный сервер. К своему удивлению, столкнулся с проблемой невозможностью импорта виртуальной машины, созданной на Windows 10 на хост Hyper-V под управлением Windows Server 2012 R2.
Windows 10/Server 2016 и новый формат конфигурационного файла vmcx
Проблема выглядит следующим образом. На сервере Hyper-V запустил мастер импорта виртуальных машин (Import Virtual Machine) и указал путь к файлам виртуальной машины, созданной на Windows 10:
Мастер наотрез отказывался видеть виртуальные машины, файлы которых были экспортированы с Windows 10, т.е. список Select Virtual Machine просто пустой.
Как вы видите, файлы виртуальной машины на месте, но мастер импорта просто не видит их.
Проблема в том, что в Windows 10 и Windows Server 2016 используется новый формат конфигурационного файла .vmcx, который поддерживается только этими ОС.
Явственно, обратный экспорт с Windows Server 2012 R2 на Windows 10 (Windows Server 2016) выполняется без проблем, т.к. новые ОС поддерживают формат старого файла конфигурации ВМ. Так в Windows Server 2012 R2 – используется версия конфигурации 5.0, а в Windows 10 – 6.2.
Как вы видите, версия конфигурации Hyper-V определяет формат конфигурационного файла, который в версии 6.2 изменился с .vmc на .vmcx . Устаревшие ОС, такие как Windows 8.1/2012 R2, при этом не поддерживают новый формат файла .vmcx.
Апгрейд конфигурации ВМ в Hyper-V
Используемую версию конфигурации ВМ можно увидеть в окне Hyper-V Manager. Есть возможность выполнить апгрейд конфигурации ВМ до 6.2 после того, как ВМ старой версии импортирована на новый Hyper-V под управлением Windows 10 или Windows Server 2016.
Для выполнения апгрейда, ВМ нужно остановить, затем щелкнув по ней ПКМ, выбрать опцию Upgrade Configuration Version….
Как вы видит, версия конфигурации обновилась с 5.0 до 6.2.
Пару важных замечаний по поводу апгрейда:
- После апгрейда конфигурационного файла до 6.2, вы не сможете запустить ВМ на Windows 8.1/2012 R2
- Откатить апгрейд и вернуть старую версию 5.0 нельзя
- После агрейда, ВМ использует новый формат конфигурационного файла vmcx
Возможно ли импортировать ВМ из Windows 10 в Windows 8.1/2012 R2
Единственный способ экспортировать виртуальную машину с Windows 10 и импортировать ее в Hyper-V на Windows 8.1/2010 R2 – остановка ВМ и ручное копирование vhd или vhdx файлов на целевой сервер Hyper-V. Естественно, при таком переносе будут потеряны настройки ВМ (сеть, память, процессоры и т.д.). На новом хосте нужно создать новую ВМ, указать нужные настройки и в качестве дисков подключить имеющиеся vhd/vhdx диски (Connect Virtual Hard Disk -> Use an existing virtual hard disk):
После того, как ВМ будет создана, ее можно запустить и проверить ее работу.