VHDをVMDKに変換する方法:ステップバイステップガイド
VMware vSphere と Microsoft Hyper-V は、最も普及している仮想化プラットフォームの 2 つです。それぞれのソリューションでは、仮想マシン用に異なる仮想ディスクファイル形式が使用されています。つまり、VMware と Hyper-V の間で仮想マシンを移動する際には、仮想ディスクファイルを変換する必要があります。たとえば、テストのためにハイパーバイザー間で仮想マシンを移行する必要がある場合があります。また、仮想マシンの作成時に誤った形式を選択してしまった場合など、形式を変更する必要が生じることもあります。
Hyper-V では仮想マシンに VHD および VHDX 形式が使用されますが、VMware では VMDK 形式が使用されます。この記事では、VHD ファイルを VMDK 形式に変換して、Hyper-V から VMware 環境へ仮想マシンを移行する方法について解説します。
仮想ディスクのフォーマット
VHD これは、Connectix Virtual PC の仮想マシン用仮想ディスク形式として導入されたディスクイメージ形式を指します。その後、マイクロソフトが Virtual PC を買収し、この仮想化製品の開発を継続しました。そして、マイクロソフトは Microsoft Virtual PC の代替として Hyper-V を発表しました。VHD の主な機能は以下の通りです:
- VHD ファイルの最大サポートサイズは 2 TB(2^32×512 バイト)です。ここで、32 ビットは容量を表し、512 バイトはセクタサイズを表します。
- VirtualBox は、Microsoft Azure クラウドで現在も使用されている仮想ディスクの VHD 形式にも対応しています。
- 第1世代のHyper-V仮想マシンでは、VHD形式の仮想ディスクのみを使用できます。
VHDX これは、Microsoft が提供する仮想ディスク形式の新しいバージョンであり、VHD 形式の後継となります。VHDX 形式は、Hyper-V 仮想マシンの仮想ディスクや Microsoft クラスター共有ボリュームなど、幅広い用途で利用されています。VHDX はセミオープンなファイル形式であり、Microsoft の Web サイトからファイル形式の仕様書をダウンロードして、VHDX ファイルに対応した独自のアプリケーションを作成することができます。VHDX の主な機能は以下の通りです:
- ディスクの最大容量は64 TBですが、VHDの場合は2 TBが上限となっています。
- 4 KBセクタに対応しています。
- VHDディスクに比べ、停電による障害に対する耐性が優れています。
第2世代VM VHDX および VHD の両方の仮想ディスクをサポートしています。ただし、Azure VM では VHD 形式の仮想ディスクのみを使用できます。VHDX 仮想ディスクは、Windows 10 および Windows Server 2016 の"ディスクの管理"ウィンドウで作成できます。また、組み込みの VHDX ドライバーのおかげで、最新の Windows バージョンでは、VHDX イメージをディスクドライブとしてマウント(接続)し、Windows エクスプローラー(マイ コンピュータ)に表示することも可能です。
VMDK これは、VMwareハイパーバイザー、VirtualBox、QEMUなどで使用されるオープン形式の仮想ディスクイメージであり、Hyper-Vではサポートされていません。VMDKイメージファイルは、物理ハードディスクと同様にデータを格納するためのコンテナと見なすことができ、さまざまな仮想化ソフトウェアとの互換性が高いのが特徴です。VMDK仮想ディスクの最大サイズは、2 TBから62 TBに拡大されました。
VMDK仮想ディスクは、モノリシック、スプリット、スパース、フラット、およびシンプロビジョニングとシックプロビジョニングといった種類やバリエーションに分類されます。デルタVMDKディスクは、以下の操作を行う際に作成されます。 VMのスナップショット. VMware Workstation がインストールされていれば、VMDK ファイルをホストマシンの指定されたマウントポイントにマッピング(マウント)することができます。高い信頼性が確保されています。VMDK 仮想ディスクでは 4 KB のネイティブセクタがサポートされており、これは最新バージョンの VMware 製品で VMFS6 (仮想マシンファイルシステム 6)。
VHDをVMDKに変換する前に、VHDの内容を確認してください
これは、ソースとなる VHD または VHDX 仮想ディスクの状態を確認し、その中に含まれるファイルを表示するためのオプションの手順です。この手順を踏むことで、間違った仮想ディスクを変換して混乱したり、時間を無駄にしたりすることを防げます。VHD イメージからファイルを抽出するだけの場合、このセクションが役立ちます。VHD ファイルは、Linux ではディレクトリにマウントでき、Windows では指定したドライブ文字に割り当てることができます。
LinuxでVHDXファイルを開く方法
Linux では、コンソールから以下のコマンドを使用して、VHD および VHDX ファイルを指定したディレクトリ(マウントポイント)にマウントすることができます。 libguestfs ツール. したがって、VHDをVMDKに変換する前に、Linux上でVHDおよびVHDXファイルの内容を確認することができます。ここでは、Linux上でVHDおよびVHDX仮想ディスクイメージの内容を確認する方法について見ていきましょう。
必要なパッケージをインストールします:
sudo apt-get install libguestfs-tools
VHD または VHDX イメージをマウントするディレクトリを作成します。たとえば、 /mnt/vhd/:
sudo mkdir /mnt/vhd/
コマンドを実行して、VHDディスクイメージを指定したディレクトリにマウントします。必要なVHDファイルがあるディレクトリに移動し、root権限でコマンドを実行します:
guestmount --add test-disk.vhd --ro /mnt/vhd/ -m /dev/sda1
場所:
-add – 仮想ディスクを開きます。
--ro – 仮想ディスクが読み取り専用モードでマウントされています。
/mnt/vhd/ これは、マウントしたいVHDファイルへのパスです。
-m /dev/sda1/ は、VHD仮想ディスク上に存在するパーティションの名前です。この例で使用しているVHD仮想ディスクには、NTFSパーティションが1つあります。
以下のコマンドを実行すると、利用可能なすべてのコマンドを確認できます。 guestmount --help
注: 別のディレクトリでこのコマンドを実行する場合は、VHD ファイルへのフルパスを指定してください。例: guestmount --add /media/user1/data/test-disk.vhd --ro /mnt/vhd/ -m /dev/sda1
マウントされたVHDイメージの内容を確認します:
ls -al /mnt/vhd/

仮想ディスクをアンマウントするには、次のコマンドを実行します:
guestunmount /mnt/vhd/
同様に、VHDXファイルを /mnt/vhd/ 以前に作成したディレクトリに、マウントされた仮想ディスクからコンテンツをコピーします:
guestmount --add /media/user1/data/WinServer2016.vhdx --ro /mnt/vhd -m /dev/sda2
場所: /dev/sda2 が使用されるのは、 /dev/sda1/ これは、Windows インストーラーによってデフォルトで作成されるサービスパーティションです。
Linuxコンソールでは、VHDX仮想ディスクのWindowsシステムパーティション(C:ドライブ)の内容を確認できます(下のスクリーンショットを参照)。

WindowsでVHDを開く方法
- を開く コンピュータ管理 ウィンドウ(右クリック マイコンピュータ そして、[選択] をクリックします 管理 (コンテキストメニュー内)。

- その コンピュータ管理 ウィンドウで、[選択] をクリックします ディスクの管理, その後、[クリック] アクション > VHDの添付.

- ポップアップウィンドウで、VHD または VHDX ファイルのパスを指定します。""にチェックを入れ、 読み取り専用 仮想ディスクにデータを書き込みたくない場合は、このチェックボックスをオンにしてください。このオプションは、仮想ディスクに保存されたデータを、不慮の破損から保護する役割も果たします。

- ディスクはマウントされ、 ディスクの管理 ウィンドウおよびWindowsエクスプローラー(ドライブ X: (この場合は)。
注: Windows では、NTFS、FAT32、exFAT、ReFS といったサポートされているファイルシステムで構成されたパーティションのみを認識できます。仮想ディスクに ext3、ext4、その他のファイルシステムを使用した Linux パーティションが含まれている場合、サードパーティ製のツールを使用しない限り、Windows システムにマウントされた VHD または VHDX ファイルの内容を表示することはできません。
Windows システムから VHD または VHDX 仮想ディスクをアンマウントするには、Windows エクスプローラーを開き、仮想ディスクに割り当てられたドライブ文字を右クリックし、コンテキストメニューから [ 取り出し.

さて、VHD(VHDX)仮想ディスクの内容を確認し、それが正しいディスクであることを確認したら、VMDKへの変換を進めることができます。VHDをVMDKに変換するには、非常に手頃な方法が2つあります。それは、 qemu-img そして、以下の方法を使用して VBoxManage. どちらの方法も無料で利用でき、その詳細については以下で説明します。
qemu-img を使って VHD を VMDK に変換する方法
QEMUは、オープンソースのマシンエミュレーションおよび仮想化プラットフォームです。 Qemu-img QEMUソフトウェアキットに含まれるユーティリティであり、仮想ディスクをある形式から別の形式に変換するために使用できます。 Qemu-img VHDをVMDKに変換するために使用でき、このユーティリティの使用が、ここで最初に説明する方法です。 Qemu-img WindowsとLinuxの両方のオペレーティングシステムで実行できます。
Linuxでのqemu-imgの使用方法
この例では、Ubuntu Linux を使用して以下を実行します qemu-img.
- まず、インストールしてください qemu-img オンラインのソフトウェアリポジトリから:
sudo apt-get install qemu-utils - 仮想ディスクイメージが保存されているディレクトリに移動します(この例では、VHD および VHDX 仮想ディスクファイルは /media/user1/data/):
cd /media/user1/data/
VHDX ファイルを確認してください
- 実行後にVHDイメージの情報を確認する sudo su root権限を取得するには:
qemu-img info test-disk.vhd

同様に、VHDX仮想ディスクに関する情報を確認することもできます:
qemu-img info /media/user1/data/WinServer2016.vhdx

LinuxでVHDをVMDKに変換する
- VHDをVMDKに変換するには、 qemu-img Linux では、root 権限で次のコマンドを実行してください:
qemu-img convert /media/user1/data/WinServer2016.vhdx -O vmdk /media/user1/data/WinServer2016qemu.vmdk -p場所:
-O– 出力ファイルの形式を定義する-p– 進行状況バーを表示する変換処理が完了するまでお待ちください。
Windowsでのqemu-imgの使用方法
- ダウンロード qemu-img 公式サイトより(32ビット版および64ビット版のインストーラーがダウンロード可能です)。今回の例では、 qemu-img-win-x64-2_3_0 が使用されます。
- ダウンロードしたアーカイブからファイルを解凍します。例えば、 C:Programsqemu-img.
- Windowsのコマンドプロンプト(CMD)を起動する – キーを押す Windowsキー+R ""を開くには実行"というボックス。""と入力してください。cmd”をボックスに入力し、Ctrl+Shift+Enter キーを押して 実行 その コマンド として 管理者:
cd C:Programsqemu-imgのコマンド qemu-img LinuxとWindowsでは同じです。
WindowsでVHDをVMDKに変換する
CMDを管理者として実行し、次のディレクトリに移動します。 qemu-img がインストールされています。
- 仮想ディスクの情報を表示します:
qemu-img.exe info c:VirtualHyper-Vtest-disk.vhd - VHD ディスクイメージを VMDK 形式に変換します:
qemu-img.exe convert -p c:VirtualHyper-Vtest-disk.vhd -O vmdk c:VirtualHyper-Vtest-disk.vmdk場所:
-p– 進捗を表示する-O– 出力ファイル変換処理が完了するまでお待ちください。

VBoxManage を使って VHD を VMDK に変換する方法
VBoxManage VirtualBoxのハイパーバイザーおよび仮想マシンを管理するためのコマンドラインインターフェース(CLI)です。 VBoxManage は、以下の操作を行う際にインストールされるマルチプラットフォーム対応のツールです。 VirtualBox をインストールする (ご存じのとおり、VirtualBoxはマルチプラットフォーム対応の仮想化ソリューションです)。その一つが VBoxManageこの製品の最大の魅力は、複数の仮想ディスク形式を変換できる点です。VHDをVMDKに変換するには、 VBoxManage.
ホストOSとしてWindowsを使用している場合は、CMDを"管理者として実行"し、VirtualBoxのインストールディレクトリに移動して、以下のコマンドを実行してください。 VBoxManage. この例では、VirtualBox はデフォルトのディレクトリにインストールされています。
cd C:Program FilesOracleVirtualBox
VirtualBox のインストールパスを パス 実行するたびに手動でVirtualBoxのインストールディレクトリに移動する手間を省くための環境変数 VBoxManage.
以下のコマンドを実行して、Hyper-VのVHDをVMwareのVMDKに変換してください:
VBoxManage clonehd --format vmdk C:virtualHyper-VWinServer2016.vhdx С:virtualHyper-VWinServer2016vbox.vmdk
構文は単純明快です。宛先の仮想ディスク形式(VMDK)を設定し、ソースを指定します。 VHDX ファイルと保存先 VMDK ファイル名。
変換処理が完了するまでお待ちください。

VirtualBoxがインストールされているマシンでLinuxを使用している場合は、まったく同じコマンドを使用してください(ただし、Linuxのパーティションやディレクトリの構造に注意してください)。
変換された仮想ディスクを使用して VMware 仮想マシンを作成する
VHDをVMDKに変換することで、Hyper-V仮想マシンをVMware仮想マシンに変換することができます。このプロセスを完了するには、変換された仮想ディスクを手動で作成したVMware仮想マシンにインポートする必要があります。この方法は、VMware WorkstationおよびVMware ESXi上で動作する仮想マシンに適用できます。Hyper-VからVMwareへの変換方法に関するその他の詳細については、このセクションで説明します。
VMware Workstation
VMware Workstation で、VHD(VHDX)形式から VMDK 形式に変換された仮想ディスクを使用して仮想マシンを作成したい場合は、新しい仮想マシンを作成するか(変換済みの仮想ディスクを追加の仮想ディスクとして追加したい場合は、既存の仮想マシンを開く)、既存の仮想ディスクを使用することを選択してください。
VMware Workstation で新しい仮想マシンを作成しましょう。[Enter] キーを押して ファイル > 新しい仮想マシン.
新しい VMware Workstation 仮想マシンの作成方法に関する詳しい説明については、以下のブログ記事をご覧ください。 VMware ホームラボ. 本日のブログ記事のこのセクションでは、変換済みのVHD仮想ディスクをVMware Workstationの仮想マシンにインポートするために必要な手順に焦点を当てています。したがって、以下の手順には特に注意を払ってください:
- ""を選択してください"OSは後でインストールするつもりです" そして、仮想ディスクを変換したソースのHyper-V VMにインストールされていたゲストOS(オペレーティングシステム)のバージョンを選択します(Windows Server 2016 (この場合は)。古いバージョンの VMware Workstation を使用している場合は、[ Windows 10 ゲストOSのバージョンとして。

VM名は Win2016変換済み この例では、新しいVMのファイルは C:VirtualWin2016converted.
- ""を選択してください既存の仮想ディスクを使用する”で ディスクを選択してください ステップ。

- 既存の VMDK ファイルへのパスを指定するか、ファイルを参照してください。この場合、VMDK ファイルへのパスは次のとおりです:
C:VirtualHyper-VWinServer2016qemu2.vmdk

- ダイアログウィンドウが表示され、既存の仮想ディスクを新しい形式に変換するよう提案された場合は、ご自身で判断してください。この仮想ディスクを、古いバージョンの仮想マシン(古い仮想ハードウェアを搭載しているもの)では使用する予定がない場合は、新しい形式に変換することをお勧めします。
- 選択 BIOS ソースとなるHyper-V仮想マシンがBIOSを使用するように設定されている場合は、VMオプションでファームウェアの種類としてこれを指定してください。そうしないと、Hyper-V形式からVMware形式に変換した仮想ディスクを接続したVMware仮想マシンは起動しません。仮想マシンの作成後、以下の手順でこの設定を確認できます。 VM > 設定, を選択して オプション タブ > 上級.

これで仮想マシンは正常に起動するはずです。ゲストOSの起動が完了したら、以下をインストールしてください。 VMware Tools.

VMware ESXi
また、VHDをVMDKに変換し、変換後の仮想ディスクをESXiホスト上で実行されているVMware VMにインポートすることも可能です。ただし、VMware WorkstationとVMware ESXiで使用されるVMware仮想ディスクのフォーマットは異なります。VMware Workstation形式の仮想ディスクには、単一のファイル内にディスク記述子が組み込まれています。 VMDKファイル. ESXi形式の仮想ディスクは、2つの別々のファイル、すなわちデータファイル(.vmdk) およびディスク記述子ファイル (-flat.vmdk). Hyper-V 形式から変換した仮想ディスクを qemu-img あるいは、ESXi上で動作するVMの場合、VBoxManageを使用して、その仮想ディスクをWorkstation形式からESXi形式に変換する必要があります。そうしないと、"サポートされていない、または無効なディスクタイプ 2”.

ESXi上で動作するVM向けに、VHD形式から変換された仮想ディスクをどのように使用するのかを見ていきましょう。
VMDKをESXi形式に変換する
- 変換されたVMDKファイルを、ESXiホストに接続されたデータストアにアップロードします。SCP/SFTPクライアント、VMware Host ClientのWebインターフェース、またはVMware vSphere Clientを使用して、変換された仮想ディスクをアップロードしてください。 vmdk ESXiデータストアにファイルを保存します。
この例では、 WinServer2016qemu.vmdk ファイルは SSD1 IPアドレス 10.10.10.74 の ESXi ホストに接続されているデータストア。

- ESXiホストでSSHアクセスが有効になっていることを確認してください(管理 > サービス > TSM-SSH).

- SSHクライアント(例:PuTTY)を使用して、ESXiホストにSSHで接続します。
- Hyper-V VHD 形式から変換された VMDK 仮想ディスクファイルが保存されているディレクトリに移動します(この例では、 vmdk ファイルは次の場所に保存されています /vmfs/volumes/SSD1/converted/):
cd /vmfs/volumes/SSD1/converted/ - 使用方法 vmkfstools Workstation形式の仮想ディスクをESXi形式の仮想ディスクに変換します。この例では、 シンプロビジョニング ESXi形式の仮想ディスクが、宛先の仮想ディスクの種類です。コマンドはroot権限で実行してください。
vmkfstools -i WinServer2016qemu.vmdk WinServer2016thin.vmdk -d thin
スクリーンショットでご覧いただけるように、VMDKをWorkstation形式からESXi形式に変換する際、 vmkfstools 正常に完了し、2つの新しいファイルが作成されました:
WinServer2016thin-flat.vmdk
WinServer2016thin.vmdk

ESXi上のVMにVMDKディスクをインポートする
VMware Host Client を開きます(以下を使用するのが最適です VMware vSphere Client vCenterが導入されている場合でも、次のようなシナリオを含め、ほぼすべてのケースでVMware Host Clientを使用できます。 ESXi 無料版)。このワークフローは、VMware vSphere/ESXi バージョン 6.5 から 9.0 にも適用されます。
VMware Host Client の Web インターフェースで、[ ] を選択します。 仮想マシン そして、クリックして VMの作成/登録.

新しい仮想マシンウィザードが開きます。
- 作成タイプを選択してください. ヒット 作成 新しい仮想マシン。クリック 次へ 各ステップで"続行"を選択してください。

- 名前とゲストOSを選択してください。 VMのバージョン、ゲストOSのファミリー、およびゲストOSのバージョンを選択します。この例では、VM名は Win2016変換済み. このVMはESXi 6.5以降に対応しています。ゲストOSのファミリーはWindowsで、ゲストOSのバージョンはMicrosoft Windows 2016(64ビット)です。

- ストレージを選択してください。 VMファイルを保存するデータストアを選択してください。この例で使用しているデータストアの名前は"SSD2"です。

- 設定をカスタマイズします。 今回のケースでは、この手順が最も重要です。新しいVMの作成時にデフォルトで作成された仮想ディスクを削除してください。その後、[クリック] ハードディスクを追加 > 既存のハードディスク.

データストアブラウザで、VHDからVMDKへ、さらにVMware Workstation形式からVMware ESXi形式(シンプロビジョニング)へ変換した仮想ディスクを選択します。ご記憶の通り、変換後の仮想ディスクは2つのファイルで構成されています(.vmdk そして -flat.vmdk)ですが、データストアブラウザでは、1つしか vmdk ファイルが表示されます。ご安心ください。これは VMware Host Client の機能です。ESXi データストアにコピーされた 2 つのファイルは両方とも存在しています。これらは、ESXi コンソールで確認するか、SSH 経由で接続して確認できます。この例では、仮想ディスクの現在のサイズが 9.11 GB であることが確認できますが、このディスクの最大プロビジョニングサイズは 30 GB です。

変換済みのVMDK仮想ディスクを追加すると、"非アクティブ"フィールドに、30 GBの仮想ディスクのサイズ(現在のサイズ)である9 GBが表示されます。

- これで完了です。 このステップでは、設定を確認できます。すべて問題がなければ、[] をクリックしてください。 終了 新しいVMを作成するには。

これで、VMの電源を入れることができます(VM名を右クリックし、コンテキストメニューから 電源 > 電源オン).

変換済みの仮想ディスクを搭載したVMは正常に起動し、ネットワークも正常に動作しています。これで、ゲストOSにVMware Toolsをインストールできます。

結論
Hyper-Vの仮想マシンをVMwareに変換したい場合は、VHDをVMDKに変換し、変換後のVMDK仮想ディスクを新しいVMware仮想マシンに接続することができます。 Qemu-img VHDからVMDKへの変換ツールとして使用でき、 VBoxManage の代わりに使用できます。どちらのソリューションも無料でマルチプラットフォーム対応であるため、さまざまなオペレーティングシステム上でHyper-VのVHDをVMwareのVMDKに変換することができます。ただし、で変換された仮想ディスクを使用する場合は、 qemu-img または VBoxManage ESXi VM の場合、VMDK 仮想ディスクを Workstation 形式から ESXi 形式に変換する必要があります。その際は、 vmkfstools ESXiのコマンドラインで。
Hyper-V VM全体をVMware VMに変換するために、半自動または完全自動のツールを使用したい場合は、無料の VMware vCenter Converter スタンドアロン版. 使用するハイパーバイザーが何であれ、データ保護は不可欠です。 NAKIVO Backup & Replication "クロスプラットフォーム復元"機能を提供しており、これにより、VMのバックアップからVHDディスクをVMDKディスクに変換したり、Hyper-VのVMをVMwareハイパーバイザーに復元したりすることができます。