Linux и Windows: помощь админам и пользователям
Администрируем и настраиваем Windows, Linux.
Hyper-V: Клонируем виртуальную машину
Windows Server 2008 Hyper-V не имеет опции для создания клона существующей виртуальной машины. Однако, это не ознаечает что это невозможно или что это сложно сделать. В действительности такая возможность есть и она довольно проста в применении.
Существуют два способа клонировать виртуальную машину в Hyper-V.
1. Использовать функцию эскпорта/импорта виртуальных машин
2. Скопировать виртуальный жесткий диск и создать новую виртуальную машину с этим диском.
1. Используем функцию эспорта/импорта в Hyper-V
Данный способ наиболее простой и доступный путь клонировать виртуальную машину.
Экспорт виртуальной машины
Находясь Hyper-V Manager, нажмите правой кнопкой на нужную виртуальную машину и выберите Export. Укажите куда будет импортирована виртуальная машина. При этом важно знать, что когда вы будете импортировать виртуальную машину обратно, само местоположение виртуальной машины и её виртуального диска будут указывать на данное место.
Во время экпорта вы можете выбрать что экспортировать: целиком виртуальную машину или только конфигурацию виртуальной машины.
Импорт виртуальной машины
Вадно указать именно директорию экспортированной машины, а не одну из её поддиректорий.
После того как виртуальная машина импортирована, вы можете изменить её настройки, к примеру IP адрес, имя хоста и т.д.
2. Копируем VHD и создаем новую виртуальную машину
Постовой
Экспорт и импорт виртуальных машин
применимо к: Windows Server 2022, Windows 10, Windows Server 2016, Microsoft Hyper-V Server 2016, Windows server 2019, Microsoft Hyper-V server 2019
В этой статье показано, как экспортировать и импортировать виртуальную машину, что является быстрым способом их перемещения или копирования. В этой статье также обсуждаются некоторые варианты, которые необходимо выполнить при экспорте или импорте.
Экспорт виртуальной машины
Экспорт собирает все необходимые файлы в одну единицу — файлы виртуального жесткого диска, файлы конфигурации виртуальной машины и файлы контрольных точек. Это можно сделать на виртуальной машине, которая находится в запущенном или остановленном состоянии.
Использование диспетчера Hyper-V
Чтобы экспортировать виртуальную машину:
В диспетчере Hyper-V щелкните правой кнопкой мыши виртуальную машину и выберите пункт Экспорт.
Выберите место хранения экспортируемых файлов и нажмите кнопку Экспорт.
После завершения экспорта можно просмотреть все экспортированные файлы в расположении экспорта.
Использование PowerShell
Откройте сеанс от имени администратора и выполните команду, как показано ниже, после замены и пути виртуальной машины <> :
Дополнительные сведения см. в разделе Export-VM.
Импорт виртуальной машины
При импорте виртуальной машины она регистрируется на узле Hyper-V. Вы можете выполнить импорт в узел или на новый узел. При импорте в тот же узел вам не нужно сначала экспортировать виртуальную машину, так как Hyper-V пытается повторно создать виртуальную машину из доступных файлов. Импорт виртуальной машины регистрирует ее, чтобы ее можно было использовать на узле Hyper-V.
Мастер импорта виртуальных машин также помогает устранить несовместимости, которые могут существовать при переходе с одного узла на другой. Обычно это различие в физическом оборудовании, таком как память, виртуальные коммутаторы и виртуальные процессоры.
Импорт с помощью диспетчера Hyper-V
Чтобы импортировать виртуальную машину, выполните следующие действия.
В меню действия в диспетчере Hyper-V щелкните Импорт виртуальной машины.
Щелкните Далее.
Выберите папку, содержащую экспортированные файлы, и нажмите кнопку Далее.
Выберите виртуальную машину для импорта.
Выберите тип импорта и нажмите кнопку Далее. (Описание см. в разделе типы импортаниже.)
Нажмите кнопку Готово.
Импорт с помощью PowerShell
Регистрация на месте
Этот тип импорта использует файлы, где они хранятся во время импорта, и хранит идентификатор виртуальной машины. Следующая команда показывает пример файла импорта. Выполните аналогичную команду со своими собственными значениями.
Восстановить
Чтобы импортировать виртуальную машину, указав собственный путь к файлам виртуальной машины, выполните команду, подобную следующей, заменив примеры значениями.
Импортировать как копию
Чтобы завершить импорт и переместить файлы виртуальной машины в расположение Hyper-V по умолчанию, выполните команду, подобную следующей, заменив примеры значениями.
Дополнительные сведения см. в статье Импорт-виртуальная машина.
Типы импорта
Hyper-V предлагает три типа импорта:
Регистрация на месте — этот тип предполагает, что файлы экспорта находятся в расположении, где вы храните и запускаете виртуальную машину. Импортированная виртуальная машина имеет тот же идентификатор, что и во время экспорта. Поэтому, если виртуальная машина уже зарегистрирована в Hyper-V, ее необходимо удалить перед тем, как будет работать импорт. После завершения импорта файлы экспорта становятся файлами выполняющегося состояния и не могут быть удалены.
Копировать виртуальную машину — аналогично типу восстановления в, в котором выбирается расположение для файлов. Разница заключается в том, что импортированная виртуальная машина имеет новый уникальный идентификатор. Это означает, что виртуальную машину можно импортировать на один узел несколько раз.
Импорт и экспорт в Hyperv или перенос виртуальных машин
Импорт и экспорт в Hyper V это возможность копирование и переноса виртуальных машин. Эта возможность используется в тестовой среде, когда у нас есть образ или шаблон машины и для переноса с одного сервера на другой. Я так же слышал, что кто-то использует эту возможность как резервное копирование. Мы рассмотрим на примерах с GUI и в Powershell.
Если вы хотите создать шаблон виртуальной машины, то перед экспортом нужно сделать sysprep. Что бы просто перенести виртуальную машину Hyper V этого делать не надо.
Либо запустить файл sysprep.exe в этой папке:
И подтвердить действия с этими настройками:
После окончания работы утилиты компьютер выключится и его нельзя будет включать. Если вы его включите, то идентификаторы сгенерируются и операцию нужно будет проделывать заново.
Экспорт Hyper V
Теперь выполним экспорт виртуальной машины Hyper V, в этот момент ВМ может быть включена. Нажмите на нее правой кнопкой и найдите кнопку экспорта:
Выберете путь, куда хотите экспортировать ВМ и нажмите кнопку подтверждения. ВМ будет экспортирована со всеми настройками и виртуальным диском:
После этого мы выполнили в Hyper V копирование виртуальной машины.
Импорт Hyper V
Что бы выполнить в Hyper V импорт виртуальной машины нажмите следующую кнопку:
После стартового окна нам нужно будет выбрать папку, куда мы экспортировали ВМ:
Проверяем, что имя ВМ совпадает с той, которую мы хотим импортировать:
На следующем окне у нас появляется три возможных пункта клонирования виртуальной машины Hyper V. Так как ВМ тоже имеет уникальные идентификаторы этот пункт очень важен:
Если в этот момент уже работает ВМ с этим идентификатором, то мы получим ошибку:
The operation failed because a virtual machine with the same identifier already exists. Select a new identifier and try the operation again.
Ошибка загрузки конфигурации виртуальной машины hyper v
Я выполню копирование машины, но остальные варианты аналогичны:
В случае с копированием мы можем выбрать новое расположение файлов чекпоинтов, конфигураций и кэша либо использовать установленное по умолчанию:
В этом окне выбирается расположение диска:
В этой ВМ адаптер подключен к другому коммутатору и его не существует на этом хосте гипервизора. Проверка коммутаторов идет по именам и если раньше коммутатор, на этом же хосте, назывался ‘Ext 1’, а затем был удален или переименован на ‘Ext 01’ вы тоже получите ошибку. Можно выбрать новый коммутатор или пропустить этот шаг:
На последнем шаге мы проверяем введенные данные и нажимаем кнопку подтверждения:
После этого ВМ импортируется и вам может понадобится подключиться к коммутатору и переименовать ее.
В обоих случаях вам нужно зайти в настройки ВМ:
Для переименовывания машины нужно зайти на вкладку «Имя»:
Если сетевых адаптеров у ВМ нет, то нужно зайти во вкладку добавления устройств и добавить сетевой адаптер:
А затем подключить к коммутатору:
После этого в Hyper V виртуальная машина будет подключена и ее можно запускать.
Экспорт и импорт виртуальной машины Hyper V в Powershell
Все команды имеют ключ ComputerName, а значит перенос виртуальной машины Hyper V может делаться на удаленном компьютере.
Получим список ВМ Hyper V, что бы узнать какую машину экспортировать:
Что бы через консоль Powershell в Hyper V скопировать виртуальную машину, в базовом варианте, нужно сделать следующее:
Так как мы можем выполнить клонирование и включенной машины, то у нас есть несколько способов манипулировании с памятью. Для этого есть ключ CaptuteLiveState, которого нет в версии Windows Server 2012 r2 и ниже, со значениями:
По умолчанию используется CaptureSavedState.
Для импорта есть три варианта сохранения идентификаторов, которые описывались выше.
Если вы решили импортировать ВМ, которая уже находиться в нужной папке и с сохранением идентификаторов сделайте так:
Import-VM : Failed to create virtual machine. The operation failed because a virtual machine with the same identifier already exists. Select a new identifier and try the operation again.
Для импорта ВМ, с сохранением идентификаторов, но в новое место на диске выполните:
В случае копирования VM с генерированием нового идентификатора можно сделать так:
В этом случае все файлы будут перемещены в папку, которая была указана в настройках Hyper V. Операция клонирования выполнена.
Экспорт и импорт виртуальных машин Hyper-V
Функция «Поделиться» Hyper-V в Windows 10
Прогресс создания этого файла будем наблюдать внизу окна подключения.
Функция экспорта-импорта машин Hyper-V
Классическая функция экспорта машин Hyper-V, в отличие от рассмотренной функции «Поделиться» и механизмов экспорта машин других гипервизоров, не предусматривает сжатие файлов машины в некий посредничающий файл-архив. Экспорт машин в гипервизоре от Microsoft – это обычное копирование файлов машины.
Т.е. содержимое экспорта – это точные копии файлов машины, разложенные по папкам, как и её исходные файлы.
А классический импорт машин – это не извлечение данных из посредничающего файла-архива, а добавление машины по пути хранения её файлов в окно диспетчера Hyper-V. При этом функция импорта является универсальным решением и для переноса машин, и для их копирования, и для их перерегистрации в диспетчере после удаления оттуда или переустановки хостовой Windows. Рассмотрим эти операции.
Перенос машин Hyper-V
Если необходимо перенести машину Hyper-V в другое место на диске, можем просто удалить машину из окна диспетчера Hyper-V и с помощью обычного проводника Windows перенести файлы машины куда нам надо. Ну а если машину перенести надо на другой компьютер, можем упаковать её файлы в обычный архив и извлечь его на другом компьютере. А вот если мы захотим перенести или скопировать машину не в её текущем состоянии, а в состоянии, запечатлённом в снимке контрольной точки, мы это сможем сделать только путём экспорта контрольной точки в диспетчере Hyper-V.
После запуска операции экспорта указываем путь, куда будут сохранены файлы машины, и жмём «Экспорт».
Переместив в нужное место файлы оригинальной виртуальной машины или экспортировав снимок её контрольной точки, запускаем функцию импорта на панели операций диспетчера Hyper-V.
Жмём «Далее».
Указываем путь хранения перемещённых или экспортированных файлов машины.
Если мы указали путь общей папки хранения машин, то выбираем какую-то конкретную машину.
Жмём «Готово».
Всё – машина импортирована.
Перерегистрация машин Hyper-V
Копирование машин Hyper-V
Жмём «Далее».
На этапе выбора типа импорта выбираем копирование машины.
Создаём на диске папку для файлов клона и прописываем эти пути на следующем этапе мастера импорта.
Далее указывать путь хранения диска машины-клона. Для него можно создать по пути хранения файлов клона специальную подпапку.
Жмём «Готово».
По завершении копирования будем наблюдать клон в окне диспетчера Hyper-V.
А чтобы не путать его с оригиналом, можем переименовать машину.
Клонирование, импорт и экспорт виртуальных машин в Hyper-V
В Hyper-V в отличии от VMWare нет встроенной функции клонирования виртуальной машины (клонирование есть только в Virtual Machine Manager). Чтобы создать полную копию существующей ВМ придется использовать функцию импорта/экспорта. В этой статье мы рассмотрим, как клонировать виртуальную машину в Hyper-V через импорт/экспорт через графический интерфейс Hyper-V Manager, PowerShell и Windows Admin Center (WAC).
%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe
ВМ будет выключена и при следующей загрузке как оригинальной ВМ, так и ее клона для Windows будет сгенерирован новый SID. Также нежелательно клонировать ВМ, включенные в домен Active Directory.
Экспорт/импорт ВМ из консоли Hyper-V Manager
Сначала нужно экспортировать ВМ в отдельный каталог.
Запустите консоль Hyper-V manager, выберите ВМ и в контекстном меню выберите Export.
Укажите каталог, в который нужно экспортировать виртуальную машину.
Статус экспорта ВМ будет отображен в строке состояния ВМ в консоли Hyper-V.
Чтобы импортировать ВМ щелкните в консоли Hyper-V Manager по имени хоста и выберите Import Virtual Machine.
Затем нужно указать путь к каталогу, в котором находятся папки с файлами импортируемой ВМ. При импорте ВМ в Hyper-V предлагается 3 варианта регистрации ВМ на хосте:
Если вы попробуете импортировать ВМ с дублирующим ID, появится ошибка:
Чтобы создать клон ВМ с новым ID мы выбрали 3 вариант. Мастер предложит указать в каких каталогах нужно разместить файлы ВМ. По умолчанию, используются каталоги, заданные в настройках хоста Hyper-V.
Затем укажите каталог для хранения виртуальных дисков vhdx ВМ.
После этого новая клонированная виртуальная машина появится в консоли Hyper-V.
Клонирование ВМ через экспорт/импорт в Hyper-V с помощью PowerShell
Рассмотрим, как клонировать виртуальную машину Hyper-V через импорт/экспорт из консоли PowerShell.
Для экспорта ВМ воспользуйтесь такой командой:
Если вы хотите экспортировать запущенную ВМ, вы можете использовать параметр CaptuteLiveState, в котором определяется как нужно копировать оперативную память ВМ. Доступны три опции
Если вы хотите экспортировать состояние ВМ в определеном снимке, нужно указать его имя.
Сначала выведите список снимков для указанной ВМ:
Затем выполните экспорт нужного снимка по его имени:
После завершения экспорта ВМ вы можете импортировать ее. Если нужно зарегистрировать ВМ по месту хранения файлов, выполните команду:
В параметре Path указываем расположение vmcx файла конфигурации ВМ (формат vmcx заменил XML формат конфигурационных файлов ВМ в Hyper-V Server 2016). Для копирования ВМ в другой каталог с тем же ID используйте параметр Copy. Чтобы сгенерировать нового идентификатор ВМ, используйте параметр GenerateNewId:
В параметре VhdDestinationPath указывается каталог, куда нужно скопировать VHDX файлы ВМ, а в параметре VirtualMachinePath — каталог конфигурационных файлов ВМ. Если эти параметры не задать, файлы ВМ будут скопированы в дефолтный каталог, указанный в настройках хоста Hyper-V (C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\).
Обратите внимание, что клонированная ВМ появилась в консоли Hyper-V с оригинальным именем. Переименуем новую ВМ, но сначала нужно получить ее ID:
get-vm | select VMNAME,VMId
Как вы видите в консоли есть две ВМ с одинаковым именем и разными ID. Нужно переименовать ВМ с ID, который отличается от ID импортируемой ВМ. Скопируйте ID новой ВМ и переименуйте ее:
Затем для удобства можно переименовать виртуальный жесткий диск.
Изменим MAC адрес виртуального адаптера (можно указать новый статический MAC или настроить динамическое получение MAC адреса).
Прежде, чем подключить новую ВМ в сеть, желательно переименовать ее и изменить IP адрес на новый (если используется DHCP адресация, этот шаг можно пропустить). В данном случае мы можем подключиться к новой ВМ через PowerShell Direct с помощью командлета Invoke-Command или Enter-PSSession:
Клонирование виртуальных машин Hyper-V через Windows Admin Center
Возможно клонировать ВМ Hyper-V напрямую без промежуточного экспорта/импорта появилась в Windows Admin Center v2009.
Затем нужно указать имя новой ВМ и каталог, в который нужно поместить ее файлы.
Обратите внимание, что мастере клонирования есть опция “I have already run sysprep on my VM”. Если вы не выполнили генерализацию образа с помощью Sysprep, и не включили эту опцию, Hyper-V создаст снапшот исходной ВМ, выполните ее Sysprep и склонирует в новую (исходная ВМ будет несколько раз перезагружена и не доступна для работы). После этого исходная ВМ будет возвращена в первоначальное состояние, а снапшот удален.
Дождитесь окончания клонирования ВМ. Новой ВМ автоматически будет присвоен новый ID.
А какие есть бесплатные способы сделать клон ВМ из ESXi в Hyper-V?
Из приличных был StarWind V2V Converter, вроде это функционал там бесплатные. можно еще тулзой disk2vhd
«зарегистрировать ВМ по хранения файлов» — что это?
Отсуствие грамотного редактора для вычитки 🙂
речь про «по месту хранения файлов»
Очень интересует последний способ, спасибо за него! Я поставил Windows Admin Center, она отлично встала на Windows Server 2022, я попробовал клонировать Windows 10 (заведено 2 юзера, оба админы).
Вот какую ошибку получаю:
Подробная информация об уведомлении
Ошибка
Не удалось клонировать виртуальную машину
00:43:25
Источник
Перейти в Виртуальные машины
Тип
Ошибка