Hyper-Vの仮想マシンをESXiに移行する方法

サーバ
2020年09月15日 10:00

概要

Windowsでカジュアルに使える仮想ソフトとしてHyper-Vを使用していたのですが、常時起動させたままにしたいという欲望が強くなったため、VMWareのESXiに仮想マシンを移動させました。

ここでは、Hyper-Vの仮想マシンをESXiに移す方法について紹介します。

環境

  • Windows 10 2004

Hyper-VとESXi

Windows10のProエディション以上では、Windowsに統合された機能としてHyper-Vという仮想ソフトを使うことができます。

Windowsに統合された機能ということで、カジュアルに使えるのではと思い、使っていました。

しかし、Windowsにインストールされたものということで、普段Windowsを起動している時しか仮想マシンを起動することができません。

そこで、VMWareのESXiを実行しているサーバ上に仮想マシンを移動することにしました。

ESXiは、無償で使えるサーバ用のOSで、24時間動かすことを念頭に開発されているため、今回のずっと動かすという要望にはもってこいです。

Hyper-VとESXiでは直接の互換性はなく、仮想マシンのファイルをHyper-V用のものからESXi用へと変換する必要があります。逆を言えば、変換をすることでHyper-VからESXiへ仮想マシンを移動することができます。

仮想マシンの変換

仮想マシンを変換するソフトはいくつかあります。

私が今回使用したのは、コマンドを使って変換する方法です。他のGUIによる方法は、うまくいかないなどの報告もいくつかあったため試していません。

最初に、QEMUという仮想化関連の操作をするためのソフトをインストールします。私はScoopというパッケージ管理ソフトを使っているため、Scoopを使ったインストール方法について次に示します。

scoop install qemu

これで、変換ができるようになりました。コマンドプロンプト等で仮想マシンのファイルがおかれているところまで移動します。ファイルは*.vhdとなっているはずなので、次のようにコマンドを実行して変換を開始します。

qemu-img convert -f vpc -O vmdk image.vhd image.vmdk

ここでは、image.vhdというHyper-Vの形式のファイルをimage.vmdkという名前でVMWare用の形式に変換します。
変換したら終わりと思うかもしれませんが、実はこれだけではESXiで動かすことはできません。ESXiでもう一度変換する必要があります。

まず、変換後のファイルをESXiにアップロードします。アップロードの方法はいくつかありますが、私はSFTPを使ってアップロードしました。

アップロード後は、SSH等でESXiにアクセスして、アップロードしたimage.vmdkがある場所まで移動します。
移動後、次のコマンドを実行して変換します。

vmkfstools -i Image.vmdk output.vmdk -d thin

これで、ESXiでも使える仮想マシンのファイルとして変換できました。

最後にESXiで仮想マシンの作成として色々と設定をするのですが、その際に変換したファイルをマウントするようにして完了です。

さいごに

VMWareでは、ESXiで使える形式とWorkstation Playerで使える形式が少し異なるためにこのような2度の変換をすることになってしまうようです。

Web上にあるやり方でうまくいかないという事態に遭遇したため、結構焦りました。