WindowsのHyper-Vでは、仮想マシンをエクスポートして、別のHyper-V環境にインポートして稼働させることができます。
そこでここではWindows 10のHyper-Vを例に、仮想マシンをエクスポート/インポートする方法を紹介します。
目次
仮想マシンの共有機能を使った方法
仮想マシンを最も簡単にエクスポート/インポートしたいときは「仮想マシンの共有」機能が便利です。(仮想マシンの共有機能では、チェックポイントはエクスポート対象に含まれません。)
仮想マシンの共有機能を使って仮想マシンをエクスポートするときは、Hyper-Vマネージャーからエクスポートしたい仮想マシンの接続画面を開き、メニューから「共有」ボタンをクリックします。
すると、その時点の仮想マシンがvmczファイルとして圧縮されエクスポート(エクスポートには時間がかかります。)され、作成されたvmczファイルは、他のHyper-V環境上でダブルクリックするだけで簡単にインポートすることができます。
エクスポート/インポート機能を使った方法
チェックポイントを作成している仮想マシンをチェックポイントを含めてエクスポート/インポートしたいときは「エクスポート/インポート」機能を利用します。
仮想マシンのエクスポート
仮想マシンをエクスポートするときは、Hyper-Vマネージャーで仮想マシンの一覧からエクスポートしたい仮想マシンを右クリックして、メニューから「エクスポート」を選択します。
「仮想マシンのエクスポート」画面が表示されるので、エクスポート先のフォルダーを指定して「エクスポート」をクリックします。
以上で、仮想マシンをエクスポートできます。(エクスポートには時間がかかります。)
仮想マシンのインポート
エクスポートされた仮想マシンをインポートするときは、Hyper-Vマネージャー画面の右側にあるメニューから「仮想マシンのインポート」をクリックして、ウィザードを起動します。
エクスポートしていない仮想マシンも、構成情報ファイルと仮想ディスクファイルがあれば、ほぼ同じ手順で仮想マシンを直接インポートできます。
ウィザード画面が表示されたら、エクスポートした仮想マシンのフォルダーを指定し「次へ」をクリックします。
構成情報が読み込まれると、インポートする仮想マシンを選択する画面が表示されるので、インポートする仮想マシンが選択されていることを確認し「次へ」をクリックします。
次に、仮想マシンのインポート方法を選択します。通常は「仮想マシンを復元する」がおすすめですが、環境に合わせてインポート方法を選択します。
仮想マシンをインプレースで登録する(既存の一意なIDを使用する) - インポート元の構成ファイルや仮想ディスクファイルなどを、そのまま使用する場合に選択します。仮想マシンのID(内部的な識別番号)は、元のものを使用します。
仮想マシンを復元する(既存の一意なIDを使用する) - インポート元の構成ファイルや仮想ディスクファイルなどを基に、新しい仮想マシンを作成する場合に選択します。ただし、仮想マシンのIDは、元のものを使用するため、複数回インポートすることはできません。
仮想マシンをコピーする(新しい一意なIDを作成する) - 上の復元と同じようにインポート元の構成ファイルや仮想ディスクファイルなどを基に、新しい仮想マシンを作成しますが、仮想マシンのIDを新たに作成するため、複数回インポートすることができます。
「仮想マシンを復元する」でインポートできないときは「仮想マシンをコピーする」を選択することで、インポートできる可能性が高いです。
次に、仮想マシンの構成ファイルなどをどこに保存するかを指定して「次へ」をクリックします。
通常はデフォルトのままでよいですが、仮想マシンの構成ファイルをデフォルト設定とは別の場所に保存したいときは「仮想マシンを別の場所に格納する」にチェックを入れて、保存先を指定します。
次に、仮想ハードディスクの保存先を指定して「次へ」をクリックします。
通常はデフォルトのままでよいですが、仮想ハードディスクファイルをデフォルト設定とは別の場所に保存したいときは「参照」をクリックして保存先を指定します。
最後に、設定の要約画面が表示されるので、内容を確認して問題がなければ「完了」をクリックすることでインポートが開始されます。
なお、インポート方法で「仮想マシンをインプレースで登録する」以外を選択した場合は、仮想ハードディスクをコピーする処理が行われるため、インポートには時間がかかります。
PowerShellコマンドレットを使った方法
チェックポイントを作成している仮想マシンをチェックポイントを含めてエクスポート/インポートしたいときは、PowerShellコマンドレットを使ってエクスポート/インポートすることもできます。
仮想マシンのエクスポート
PowerShellコマンドレットを使って仮想マシンをエクスポートするときは、管理者としてPowerShellを起動して、以下のようにコマンドを実行します。
PS> Export-VM -Name <仮想マシン名> -Path <エクスポート先のフォルダーパス>
たとえば、仮想マシン名が「AlmaLinux9.1」でエクスポート先のフォルダーパスが「E:¥Export」の場合は、以下のように実行します。
PS> Export-VM -Name "AlmaLinux9.1" -Path "E:\Export\"
仮想マシンのインポート
PowerShellコマンドレットを使って仮想マシンをインポートするときは、インポート方法に応じたコマンドを実行します。
なお「-Path」オプションでは、インポートする仮想マシンの構成情報ファイル(拡張子が「.vmcx」のファイル)を指定します。
仮想マシンをインプレースで登録するとき
仮想マシンをインプレースで登録するときは、以下のようにコマンドを実行します。
PS> Import-VM -Path "<エクスポート先のフォルダーパス>\Virtual Machines\XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.vmcx"
仮想マシンを復元するとき
仮想マシンを復元するときは、以下のようにコマンドを実行します。
PS> Import-VM -Path "<エクスポート先のフォルダーパス>\Virtual Machines\XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.vmcx" -Copy
たとえば、「E:¥Export」にエクスポートした「AlmaLinux9.1」をインポートしたいときは、以下のように実行します。
PS> Import-VM -Path "E:\Export\AlmaLinux9.1\Virtual Machines\2B96F085-7F29-42D9-8F4E-4242A9461EFE.vmcx" -Copy
仮想マシンをコピーするとき
仮想マシンをコピーするときは、以下のようにコマンドを実行します。
PS> Import-VM -Path "<エクスポート先のフォルダーパス>\Virtual Machines\XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.vmcx" -Copy -GenerateNewId
なお、エクスポートしていない仮想マシンも、Import-VMコマンドレットで構成情報ファイルに加えて仮想ディスクファイルを指定することで、仮想マシンを直接インポートすることもできます。
エクスポート/インポート時の注意点
インポート前後の環境の違い
仮想マシンをエクスポートしたときの環境とインポートする環境が異なる場合(接続する仮想スイッチ名が異なるなど)、インポートの途中で構成エラーが発生する場合があります。
そのような場合は、指示された内容に従い再設定が必要になることがあります。
仮想マシンはシャットダウンしてエクスポートする
同一バージョンのHyper-V間での仮想マシンの移行では、仮想マシンの「保存」状態なども維持したままインポートできますが、異なるバージョンのHyper-V間では、インポート時に状態が削除されてしまうことがあるなので、可能な限り仮想マシンはシャットダウンしてからエクスポートしましょう。
仮想マシンの構成はシンプルに
チェックポイントを作成していたり、差分ディスクを利用している仮想マシンもインポート可能ですが、インポートに時間がかかる場合があるようです。
余計なトラブルを避ける意味でも、エクスポート前にチェックポイントは削除して、差分ディスクも親ディスクと結合するなどして、仮想マシンの構成はシンプルにシンプルにしておきましょう。
仮想マシンのMACアドレスが変わる
仮想マシンをインポートするときに「仮想マシンをコピーする」でインポートすると、仮想マシンのIDが変わり、仮想マシンに搭載されているネットワークインターフェースのMACアドレスも変更されます。
これにより、仮想マシンに設定しているネットワーク設定(IPアドレスなど)がリセットされる場合があるので、エクスポート前に仮想マシンのネットワーク設定を記録しておいたほうが良いでしょう。