У Hyper-V на відміну від VMWare немає вбудованої функції клонування віртуальної машини (клонування є тільки в Virtual Machine Manager). Щоб створити повну копію існуючої ВМ доведеться використовувати функцію імпорту / експорту. У цій статті ми розглянемо, як клонувати віртуальну машину в Hyper-V через імпорт / експорт через графічний інтерфейс Hyper-V Manager, PowerShell і Windows Admin Center (WAC).

При клонуванні віртуальних машин з Windows не забувайте про те, що після клонування ВМ у її копії буде такий же SID. Для скидання SID потрібно використовувати утиліту sysprep. Якщо ви створили еталонний образ Windows, то перед клонуванням на ньому потрібно виконати команду:

%WINDIR%system32sysprepsysprep.exe /generalize /shutdown /oobe

ВМ буде виключена і при наступному завантаженні як оригінальної ВМ, так і її клона для Windows буде згенеровано новий SID. Також небажано клонувати ВМ, включені в домен Active Directory.

Експорт / імпорт ВМ з консолі Hyper-V Manager

Спочатку потрібно експортувати ВМ в окремий каталог.

Запустіть консоль Hyper-V manager, виберіть ВМ і в контекстному меню виберіть Export.

Починаючи з версії Hyper-V в Windows Server 2012 R2 (в тому числі в Free Hyper-V Server) ви можете експортувати навіть запущені віртуальні машини без їх зупинки.

експорт віртуальної машини через hyper-v manager

Вкажіть каталог, в який потрібно експортувати віртуальну машину.

каталог в який помістити копію ВМ

Статус експорту ВМ буде відображений в рядку стану ВМ в консолі Hyper-V.

exporting VM в консолі hyper-v

Починаючи з Hyper-V в Windows Server 2012 R2 ви можете експортувати конкретний знімок (checkpoint) віртуальної машини. Для цього досить вибрати потрібні знімок в дереві Checkpoints і вибрати Export.

експортувати зображення VM у гіпер-v

Щоб імпортувати ВМ клацніть в консолі Hyper-V Manager на ім’я хоста і виберіть Імпорт віртуальної машини.

запустити Import Virtual Machine в консолі hyper-v

Потім потрібно вказати шлях до каталогу, в якому знаходяться папки з файлами імпортованої ВМ. При імпорті ВМ в Hyper-V пропонується 3 варіанти реєстрації ВМ на хості:

  • Зареєструйте віртуальну машину на місці (використовуйте існуючий унікальний ідентифікатор) -зарегістріровать ВМ в каталозі з імпортованими файлами, ID ВМ зберігається;
  • Відновіть віртуальну машину (використовуйте існуючий унікальний ідентифікатор) – скопіювати файли ВМ в інший каталог, зберегти вихідний ідентифікатор ВМ;
  • Скопіюйте віртуальну машину (створіть новий унікальний ідентифікатор) – скопіювати ВМ в іншу каталог і згенерувати новий ID.

копіювати ВМ Hyper-V і згенерувати новий ID

У кожної ВМ на хості Hyper-V є ідентифікатор ID, який повинен бути унікальним в рамках хоста. Якщо ви імпортуєте, клонуєте ВМ на інший хост, ID ВМ міняти не обов’язково.

Якщо ви спробуєте імпортувати ВМ з дублюючим ID, з’явиться помилка:

The operation failed because a virtual machine with the same identifier already exists. Select a new identifier and try the operation again.

Щоб створити клон ВМ з новим ID ми вибрали 3 варіант. Майстер запропонує вказати в яких каталогах потрібно розмістити файли ВМ. За замовчуванням, використовуються каталоги, задані в налаштуваннях хоста Hyper-V.

вказати каталог, в якому зберігати файли ВМ

Потім вкажіть каталог для зберігання віртуальних дисків vhdx ВМ.

каталогу для vhdx файлів ВМ hyper-v

Після цього нова клонована віртуальна машина з’явиться в консолі Hyper-V.

Клонування ВМ через експорт / імпорт в Hyper-V за допомогою PowerShell

Розглянемо, як клонувати віртуальну машину Hyper-V через імпорт / експорт з консолі PowerShell.

Для експорту ВМ скористайтеся такою командою:

Export-VM -Name win10 -Path 'C:VHDexport'

Export-VM в hyper-v за допомогою powershell

Якщо ви хочете експортувати запущену ВМ, ви можете використовувати параметр CaptuteLiveState, В якому визначається як потрібно копіювати оперативну пам’ять ВМ. Доступні три опції

  • CaptureSavedState – експортувати оперативну пам’ять (за замовчуванням);
  • CaptureDataConsistentState – експортувати стан ВМ з Production checkpoint;
  • CaptureCrashConsistentState – Ніколи не зберігати вміст пам’яті.

Export-VM -Name win10 -Path 'C:VHDexport' -CaptureLiveState CaptureCrashConsistentState

Якщо ви хочете експортувати стан ВМ в певних знімку, потрібно вказати його ім’я.

Спочатку виведіть список знімків для зазначеної ВМ:

Get-VMSnapshot -VMName win10

Потім виконайте експорт потрібного фотографії по його імені:

Export-VMSnapshot -Name “win10 - (2/17/2021 - 9:52:20 PM) Standard” -VMName win10 -Path 'C:VHDexport'

Експорт-VMSnapshot

Після завершення експорту ВМ ви можете імпортувати її. Якщо потрібно зареєструвати ВМ по зберігання файлів, виконайте команду:

Import-VM -Path "C:VHDexportwin10Virtual Machines1117A061-0B50-4BC2-850C-88CCD4C114FB.vmcx"

У параметрі Path вказуємо розташування vmcx файлу конфігурації ВМ (формат vmcx замінив XML формат конфігураційних файлів ВМ в Hyper-V Server 2016). Для копіювання ВМ в інший каталог з тим же ID використовуйте параметр Copy. Щоб згенерувати нового ідентифікатор ВМ, використовуйте параметр GenerateNewId:

Import-VM -Path "C:VHDexportwin10Virtual Machines1117A061-0B50-4BC2-850C-88CCD4C114FB.vmcx" -VhdDestinationPath "C:VHDwin10_2" -VirtualMachinePath "C:VHDwin10_2"

У параметрі VhdDestinationPath вказується каталог, куди потрібно скопіювати VHDX файли ВМ, а в параметрі VirtualMachinePath – каталог конфігураційних файлів ВМ. Якщо ці параметри не поставити, файли ВМ будуть скопійовані в дефолтний каталог, вказаний в налаштуваннях хоста Hyper-V (C: ProgramData Microsoft Windows Hyper-V Virtual Machines ).

Також можна вказати каталоги для зберігання чекпоінтів (SnapshotFilePath) І файлу підкачки (SmartPagingFilePath).

import-vm командлет PowerShell

Зверніть увагу, що клонована ВМ з’явилася в консолі Hyper-V з оригінальним ім’ям. Перейменуємо нову ВМ, але спочатку потрібно отримати її ID:

get-vm | select VMNAME,VMId

Як ви бачите в консолі є дві ВМ з однаковим ім’ям і різними ID. Потрібно перейменувати ВМ з ID, який відрізняється від ID імпортованої ВМ. Скопіюйте ID нової ВМ і перейменуйте її:

get-vm | Where-Object {$_.VMId -eq "24ad8934-f650-46f6-9caa-2a3b79b79bd5"} | Rename-VM -NewName win10_2

перейменувати віртуальну Маніну hyper-v з powershell

Потім для зручності можна перейменувати віртуальний жорсткий диск.

Get-VHD -VMId 24ad8934-f650-46f6-9caa-2a3b79b79bd5| Select Path | Rename-Item -NewName win10_2.vhdx
Remove-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerLocation 0 -ControllerNumber 0
Add-VMHardDiskDrive -VMName win10_2 -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 0 -Path "C:VHDwin10_2win10_2.vhdx"

Змінимо MAC адресу віртуального адаптера (можна вказати новий статичний MAC або налаштувати динамічний отримання MAC адреси).

Set-VMNetworkAdapter -VMName win10_2 -DynamicMacAddress
Start-VM -Name win10_2

змінити ім'я віртуальних дисків ВМ hyper-v

Перш, ніж підключити нову ВМ в мережу, бажано перейменувати її і змінити IP адресу на новий (якщо використовується DHCP адресація, цей крок можна пропустити). В даному випадку ми можемо підключитися до нової ВМ через PowerShell Direct за допомогою командлета Invoke-Command або Enter-PSSession:

Enter-PSSession -ComputerName win10_2 -Credential (Get-Credential)
Rename-Computer win10_2
Remove-NetIPAddress -InterfaceAlias “Ethernet” -AddressFamily IPV4
New-NetIPAddress -IPAddress 192.168.31.50 -InterfaceAlias “Ethernet” -AddressFamily IPv4 -PrefixLength 24
Restart-Computer

Клонування віртуальних машин Hyper-V через Windows Admin Center

Можливо клонувати ВМ Hyper-V безпосередньо без проміжного експорту / імпорту з’явилася в Windows Admin Center v2009.

Запустіть WAC, виберіть розділ Virtual Machines, виберіть ВМ -> Керувати -> Клонувати.

Windows Admin Center клонувати віртулаьную машину

Потім потрібно вказати ім’я нової ВМ і каталог, в який потрібно помістити її файли.

wac клонування віртуальної машини з sysprep

Зверніть увагу, що майстра клонування є опція “Я вже запустив sysprep на своїй віртуальній машині“. Якщо ви не виконали генерализацию образу за допомогою Sysprep, і не включили цю опцію, Hyper-V створить снапшот вихідної ВМ, виконайте її Sysprep і клонують в нову (вихідна ВМ буде кілька разів перезавантажена і не доступна для роботи). Після цього вихідна ВМ буде повернута в первісний стан, а снапшот видалений.

При клонуванні будь-яких ВМ, з гостьовими ОС, відмінними від Windows, завжди включайте цю опцію.

Windows Admin Center - pre-sysprep знімок при клонуванні

Дочекайтеся закінчення клонування ВМ. Нової ВМ автоматично буде присвоєно новий ID.

клонування віртуальної машини hyper-v

Leave a Reply

Your email address will not be published. Required fields are marked *