Hyper-Vで仮想マシンをクローンする方法:エクスポート・インポートと複製手順を徹底解説
VMwareと異なり、Hyper-Vには仮想マシンを複製(クローン)する機能が標準で搭載されていません。クローン作成はVirtual Machine Manager(SCVMM)でのみ利用可能です。既存の仮想マシンの完全なコピーを作成するには、Hyper-Vのエクスポート/インポート機能を利用する必要があります。本記事では、Hyper-VマネージャーのGUI、PowerShell、そしてWindows Admin Center(WAC)を使ってHyper-Vの仮想マシンをクローンする方法を詳しく解説します。
クローン作成前の注意点:SysprepによるSIDのリセット
Windowsが稼働する仮想マシンをクローンする場合、複製されたVMは元のVMと同じSID(セキュリティ識別子)を持つことになります。Sysprepツールを使用してWindowsゲストのSIDをリセットしてください。参照用のWindowsイメージを作成済みの場合は、クローン作成前に以下のコマンドを実行します。
%WINDIR%\system32\sysprep\sysprep.exe /generalize /shutdown /oobe
このコマンドを実行するとVMはシャットダウンされ、次回起動時にソースVMとクローンの両方で新しいSIDが生成されます。なお、Active Directoryドメインに参加済みのVMのクローン作成は推奨されません。
目次
- Hyper-VマネージャーでVMをエクスポート・インポートする
- PowerShellでHyper-V VMをエクスポート・インポート・クローンする方法
- Windows Admin CenterでHyper-V仮想マシンをクローンする方法
Hyper-VマネージャーでVMをエクスポート・インポートする
まず、仮想マシンを別のディレクトリにエクスポートします。Hyper-Vマネージャーコンソールを開き、対象のVMを右クリックしてコンテキストメニューから「エクスポート」を選択します。
Windows Server 2012 R2以降のHyper-V(無償版のHyper-V Serverを含む)では、稼働中の仮想マシンを停止することなくそのままエクスポートできます。
エクスポート先のディレクトリを指定します。
エクスポートの進行状況は、Hyper-VコンソールのVM状態ペインに表示されます。多くの管理者は、このVMエクスポートをHyper-Vで最も手軽なバックアップ手段として活用しています。
また、特定のチェックポイント(スナップショット)だけをエクスポートすることも可能です。その場合は、チェックポイントツリーで目的のチェックポイントを右クリックし、「エクスポート」を選択します。
VMのインポートと3つの登録オプション
VMをインポートするには、Hyper-Vマネージャーでホスト名をクリックし、「仮想マシンのインポート」を選択します。
次に、インポート対象のVMファイルが格納されているフォルダーへのパスを指定します。Hyper-VでVMをインポートする際には、ホストへの登録方法として次の3つのオプションが提示されます。
- 仮想マシンを登録する(既存の一意のIDを使用) — インポートしたファイルが存在するディレクトリにVMを登録します(VM IDは変更されません)
- 仮想マシンを復元する(既存の一意のIDを使用) — VMファイルを別のフォルダーへコピーします(元のVM IDを保持)
- 仮想マシンをコピーする(新しい一意のIDを作成) — VMを別のディレクトリにコピーし、新しいVM IDを生成します
Hyper-Vホスト上の各VMには、ホスト内で一意である必要があるIDが割り当てられています。別のホストへVMをインポートまたはクローンする場合は、VM IDを変更する必要はありません。重複するIDを持つVMをインポートしようとすると、次のエラーが発生します。
The operation failed because a virtual machine with the same identifier already exists. Select a new identifier and try the operation again. (同じ識別子を持つ仮想マシンが既に存在するため、操作に失敗しました。新しい識別子を選択してもう一度実行してください。)
新しいIDを持つVMクローンを作成するため、ここでは3番目のオプションを選択します。ウィザードの指示に従い、VMファイルを配置するフォルダーを指定します。デフォルトでは、Hyper-Vホスト設定で指定されたフォルダーが使用されます。
続いて、仮想マシンの仮想ディスク(VHDXファイル)の保存先ディレクトリを選択します。
以上の手順を完了すると、新しくクローンされた仮想マシンがHyper-Vコンソールに表示されます。
PowerShellでHyper-V VMをエクスポート・インポート・クローンする方法
続いて、PowerShellを使ったエクスポート/インポートによるHyper-V仮想マシンのクローン方法を見ていきましょう。
VMをエクスポートするには、以下のコマンドを実行します。
Export-VM -Name win10 -Path 'C:\VHD\export'
稼働中のVMをエクスポートしたい場合は、VMメモリの扱い方を決めるCaptureLiveStateオプションを使用できます。選択できるのは次の3つです。
CaptureSavedState– メモリ内容を含めてエクスポート(デフォルト)CaptureDataConsistentState– Hyper-Vの実稼働チェックポイントからVMの状態をエクスポートCaptureCrashConsistentState– メモリ内容を保存しない
Export-VM -Name win10 -Path 'C:\VHD\export' -CaptureLiveState CaptureCrashConsistentState
特定のチェックポイントの状態をエクスポートしたい場合は、その名前を指定します。まず、VMで利用可能なチェックポイントの一覧を表示します。
Get-VMSnapshot -VMName win10
次に、チェックポイントを名前指定でエクスポートします。
Export-VMSnapshot -Name "win10 - (6/17/2021 - 3:12:20 PM) Standard" -VMName win10 -Path 'C:\VHD\export'
エクスポートが完了したら、VMをインポートできます。VMをその場で登録する場合は、次のコマンドを実行します。
Import-VM -Path "C:\VHD\export\win10\Virtual Machines\212cadd2-6543-bc2d-ca11-321ffa223f3b.vmcx"
Pathオプションには、VM構成ファイルの場所を指定します(VMCX形式は、Hyper-V Server 2016でXML形式に代わって採用されたVM構成ファイルの形式です)。同じIDのままVMを別フォルダーへコピーするにはCopyオプションを、新しいVM IDを生成するにはGenerateNewIdオプションを使用します。
Import-VM -Path "C:\VHD\export\win10\Virtual Machines\212cadd2-6543-bc2d-ca11-321ffa223f3b.vmcx" -VhdDestinationPath "C:\VHD\win10_2" -VirtualMachinePath "C:\VHD\win10_2"
VhdDestinationPathはVMのVHDXファイルのコピー先ディレクトリを、VirtualMachinePathはVM構成ファイルの保存先ディレクトリを指定します。これらのオプションを指定しない場合、VMファイルはHyper-Vホスト設定のデフォルトディレクトリ(C:\ProgramData\Microsoft\Windows\Hyper-V\Virtual Machines\)にコピーされます。チェックポイントの保存先(SnapshotFilePath)やページファイル用フォルダー(SmartPagingFilePath)を指定することも可能です。
クローンVMの名前変更とネットワーク設定
クローンされたVMは、元のVMと同じ名前でHyper-Vコンソールに表示されます。まずVMIDを確認してから名前を変更しましょう。
get-vm | select VMNAME,VMId
ご覧のとおり、ホスト上には同じ名前で異なるIDを持つ2台のVMが存在します。インポート元のVMとは異なるIDを持つVMのIDをコピーし、名前を変更します。
get-vm | Where-Object {$_.VMId -eq "9a9d3332-f332-a231-8abc-9221aab32287"} | Rename-VM -NewName win10_2
続いて、仮想ハードディスクファイルもリネームしておきましょう。
Get-VHD -VMId 9a9d3332-f332-a231-8abc-9221aab32287| 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:\VHD\win10_2\win10_2.vhdx"
さらに、仮想アダプターのMACアドレスを変更します(新しい静的MACアドレスを指定するか、動的に取得するよう構成します)。
Set-VMNetworkAdapter -VMName win10_2 -DynamicMacAddress
Start-VM -Name win10_2
新しいVMをネットワークに接続する前に、コンピューター名の変更とIPアドレスの変更を行うことを推奨します(LANでDHCPを使用している場合はこの手順を省略できます)。その後、Invoke-CommandやEnter-PSSessionコマンドレットを使ったPowerShell Directで新しいVMに接続できるようになります。
Enter-PSSession -ComputerName win10_2 -Credential (Get-Credential)
Rename-Computer win10_2
Remove-NetIPAddress -InterfaceAlias "Ethernet" -AddressFamily IPV4
New-NetIPAddress -IPAddress 192.168.13.71 -InterfaceAlias "Ethernet" -AddressFamily IPv4 -PrefixLength 24
Restart-Computer
Windows Admin CenterでHyper-V仮想マシンをクローンする方法
Windows Admin Center v2009以降では、エクスポートとインポートを経由せずに、Hyper-V VMを直接クローンできます。
WACを起動し、「仮想マシン」セクションを選択して、対象のVMに対して「管理」→「複製(Clone)」をクリックします。
次に、新しいVMの名前を入力し、ファイルを配置するディレクトリを選択します。
クローンウィザードには「VMで既にSysprepを実行済み」というオプションがあります。Sysprepでイメージを汎化しておらず、このオプションを有効にしていない場合、Hyper-VはソースVMのスナップショットを作成し、Sysprepを実行してから新しいVMへクローンを作成します(処理中、ソースVMは数回再起動され、使用できなくなります)。その後、ソースVMは元の状態に戻され、スナップショットは削除されます。
Windows以外のゲストOSを持つVMをクローンする場合は、必ず上記のオプションを有効にしてください。
あとはVMのクローンが完了するのを待ちます。新しいVMには自動的に新しい一意のIDが割り当てられます。
-
VMware ESXiで仮想マシンのクローンを作成する手順を徹底解説
本チュートリアルは、一般の家庭ユーザーにはあまり馴染みがないかもしれません。しかし、何らかの理由で環境にVMware ESXiを採用している方にとっては、きっと役立つ内容となるはずです。VMware ESXiは無料で提供されているベアメタル型ハイパーバイザーです。より多機能な有償製品「ESX Server」への購入を促すための、いわば導入版的な位置づけにあります。ESX Serverはあらゆる機能を備えている一方、価格も桁違いに高額です。ESXiは、ベアメタル仮想化における「低コストな選択肢」と言えるでしょう。そのため、上位製品にはある当たり前の機能がいくつか欠けており、クローン作成機能もその
-
VMware Serverで仮想マシンのクローンを作成する方法
はじめに仮想化がお好きな方なら、遅かれ早かれ「VMware Server」に行き当たることでしょう。VMware Serverは無料で利用できるソリューションで、既存のデスクトップ環境上に複数のOSインスタンスを実行できます。効率性、生産性、モジュール性、テスト、チューニングなど、さまざまな可能性が広がります。仮想化を使えば、実機ではなかなか試せないことも気軽に行えます。例えば、パーティションを壊す心配をせずにWindowsとLinuxのデュアルブート構成をテストしたり、実際の環境を汚さずに新しいソフトウェアを試したりすることが可能です。仮想化について仮想化についてさらに詳しく知りたい方は、当