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 バイトはセクタサイズを表します。
- 仮想ディスクのVHD形式はVirtualBoxでもサポートされており、Microsoft Azureクラウドでも現在も使用されています。
- 第1世代のHyper-V仮想マシンでは、VHD形式の仮想ディスクのみを使用できます。
VHDX は、Microsoftが提供する仮想ディスク形式の新しいバージョンであり、VHD形式の後継となります。VHDX形式は、Hyper-V仮想マシンの仮想ディスクやMicrosoftクラスター共有ボリュームなど、幅広い用途で利用されています。VHDXはセミオープンなファイル形式であり、MicrosoftのWebサイトからこのファイル形式の仕様書をダウンロードして、VHDXファイルを扱う独自のアプリケーションを作成することができます。VHDXの主な機能は以下の通りです:
- VHDの容量上限が2TBであるのに対し、ディスクの最大容量は64TBです。
- 4KBセクタに対応
- 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 のネイティブセクタがサポートされており、VMF S6 を使用する最新バージョンの VMware 製品で利用されています。
VHDをVMDKに変換する前に、VHDの内容を確認してください
これは、ソースとなる VHD または VHDX 仮想ディスクの状態を確認し、その中に含まれるファイルを表示するためのオプションの手順です。この手順を踏むことで、誤った仮想ディスクを変換して混乱したり、時間を無駄にしたりすることを防げます。VHD イメージからファイルを抽出するだけの場合、このセクションの内容が役立ちます。VHD ファイルは、Linux ではディレクトリにマウントでき、Windows では指定したドライブ文字に割り当てることができます。
LinuxでVHDXファイルを開く方法
LinuxのVHDおよびVHDXでは、コンソールで以下のコマンドを使用して、ファイルを指定したディレクトリ(マウントポイント)にマウントできます。 libguestfs tools. したがって、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を開く方法
を開く コンピュータの管理 ウィンドウ(右クリック マイコンピュータ そして選択してください 管理 (コンテキストメニュー内)。
その コンピュータの管理 ウィンドウで、[選択] をクリックします Disk Management、その後、[クリック] Action > Attach VHD.
ポップアップウィンドウで、VHDまたはVHDXファイルのパスを指定します。””にチェックを入れます。 読み取り専用 仮想ディスクにデータを書き込みたくない場合は、このチェックボックスをオンにしてください。このオプションは、仮想ディスクに保存されたデータを、不慮の破損から保護する役割も果たします。
ディスクがマウントされ、 ディスクの管理 ウィンドウおよびWindowsエクスプローラー(ドライブ X: (この場合)。
注: Windowsでは、NTFS、FAT32、exFAT、ReFSといったサポートされているファイルシステムを持つパーティションのみを認識できます。仮想ディスクにext3、ext4、その他のファイルシステムを使用したLinuxパーティションが含まれている場合、サードパーティ製のツールを使用しない限り、WindowsシステムにマウントされたVHDまたはVHDXファイルの内容を表示することはできません。
Windows システムから VHD または VHDX 仮想ディスクをアンマウントするには、Windows エクスプローラーを開き、仮想ディスクに割り当てられたドライブ文字を右クリックし、コンテキスト メニューで [ Eject.
VHD(VHDX)仮想ディスクの内容を確認し、これが必要なディスクであることを確認したら、VHDからVMDKへの変換を開始できます。VHDをVMDKに変換するには、非常に手頃な方法が2つあります。それは、 qemu-img そして、以下の方法を使用し VBoxManage. 検討された両方の解決策は無料で利用でき、その詳細については以下で説明します。
qemu-img を使って VHD を VMDK に変換する方法
QEMUは、オープンソースのマシンエミュレーションおよび仮想化プラットフォームです。 Qemu-img QEMUソフトウェアキットのユーティリティであり、仮想ディスクをある形式から別の形式に変換するために使用できます。 Qemu-img VHDをVMDKに変換するために使用でき、このユーティリティの利用は、このブログで紹介するHyper-VからVMwareの仮想ディスクへの変換方法の第一の手段となります。 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/
Check the VHDX file
root権限を取得する(以下の sudo su コマンド)を実行し、VHDイメージの情報を確認します:
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 “”を開くにはRun“ボックス。””と入力してください。cmdボックスに””と入力し、Ctrl+Shift+Enter キーを押して run その command ~として administrator.
へ移動 qemu-img ディレクトリ:
cd C:Programsqemu-img
コマンド qemu-img LinuxとWindowsでは同じです。
WindowsでVHDをVMDKに変換する
“コマンドプロンプト”を管理者として実行し、次のディレクトリに移動します 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のインストールパスを Path 実行するたびに手動で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 VMを作成する
VHDをVMDKに変換することで、Hyper-Vの仮想マシンをVMwareの仮想マシンに変換できます。仮想マシンの完全な変換を行うには、変換した仮想ディスクを手動で作成したVMwareの仮想マシンにインポートする必要があります。この方法は、VMware WorkstationおよびVMware ESXi上で動作する仮想マシンに適用できます。Hyper-VからVMwareへの変換方法の詳細については、このセクションで説明します。
VMware Workstation
VMware Workstation で、VHD(VHDX)形式から VMDK 形式に変換した仮想ディスクを使用して仮想マシンを作成するには、新しい仮想マシンを作成するか(変換済みの仮想ディスクを追加ディスクとして追加する場合は既存の仮想マシンを開く)、既存の仮想ディスクを使用することを選択します。
例えば、VMware Workstation で新しい仮想マシンを作成してみましょう。クリックして File > New virtual machine.
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オプションでファームウェアの種類としてBIOSを選択してください。そうしないと、Hyper-V形式からVMware形式に変換した仮想ディスクを接続したVMware仮想マシンは起動しません。仮想マシンの作成後、以下の手順でこの設定を確認できます。 VM > Settings、を選択して Options タブ > Advanced.
これで仮想マシンは正常に起動するはずです。ゲスト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形式から変換された仮想ディスクをどのように使用するかを解説します。
Converting VMDK to the ESXi format
変換したVMDKファイルを、ESXiホストに接続されたデータストアにアップロードします。変換した仮想ディスクのアップロードには、SCPクライアント、VMware Host ClientのWebインターフェース、またはVMware vSphere Clientを使用してください。 vmdk ファイルをESXiデータストアにアップロードします。
この例では、 WinServer2016qemu.vmdk ファイルは SSD1 IPアドレスが10.10.10.74のESXiホストに接続されているデータストア。
ESXiホストでSSHアクセスが有効になっていることを確認してください([管理] > [ > ] > [サービス] > [ > ] > [TSM-SSH])。
SSHクライアント(例:PuTTY)を使用して、rootユーザーとしてESXiホストにSSH接続します。
Hyper-V VHD形式から変換されたVMDK仮想ディスクファイルが保存されているディレクトリに移動します(この例では、vmdkファイルは /vmfs/volumes/SSD1/converted/):
cd /vmfs/volumes/SSD1/converted/
使用 vmkfstools Workstation形式の仮想ディスクをESXi形式の仮想ディスクに変換します。この例では、 シンプロビジョニング ESXi形式の仮想ディスクが、宛先の仮想ディスクの種類です。
vmkfstools -i WinServer2016qemu.vmdk WinServer2016thin.vmdk -d thin
スクリーンショットでご覧いただけるように、VMDKをWorkstation形式からESXi形式に変換する際、 vmkfstools 正常に完了し、2つの新しいファイルが作成されました:
WinServer2016thin-flat.vmdk
WinServer2016thin.vmdk
Importing a VMDK disk to a VM on ESXi
VMware Host Client を開きます(vCenter が導入されている場合は VMware vSphere Client を使用するのが最適ですが、以下のシナリオを含むほぼすべてのケースで VMware Host Client を使用できます)。 ESXi 無料版 (Hyper-VからVMware VMへの移行を決定した場合)。VMware Host ClientのWebインターフェースで、[ Virtual Machines そしてクリック Create/Register VM.
新しい仮想マシンウィザードが開きます。
1. Select creation type. ヒット 作成 新しい仮想マシン。クリック 次へ 各ステップで続行するには。
2. Select a name and guest OS. VMのバージョン、ゲストOSのファミリー、およびゲストOSのバージョンを選択します。この例では、VM名は Win2016変換済みこのVMはESXi 6.5以降に対応しており、ゲストOSファミリーはWindows、ゲストOSのバージョンはMicrosoft Windows 2016(64ビット)です。
3. Select storage. VMファイルを保存するデータストアを選択してください。この例で使用しているデータストアの名前は”SSD2″です。
4. Customize settings. 今回の手順において、このステップが最も重要です。新しい仮想マシン(VM)の作成時にデフォルトで作成された仮想ディスクを削除してください。その後、[クリック] Add hard disk > Existing hard disk.
データストアブラウザで、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仮想ディスクを追加すると、30GBの仮想ディスクのうち、9GB(現在のサイズ)が表示された”非アクティブ”フィールドが表示されます。下のスクリーンショットでは仮想ディスクの種類が正しく表示されていませんが、これは問題ありません。実際、仮想ディスクは想定通りシンディスクとしてインポートされています。
5. Ready to complete. このステップでは、設定を確認できます。すべて問題なければ、[実行]をクリックしてください。 完了 新しいVMを作成する。
これで、VMの電源を入れることができます(VM名を右クリックし、コンテキストメニューから 電源 > 電源オン).
変換された仮想ディスクを搭載したVMは正常に起動し、ネットワークも正常に動作しています。これで、ゲストOSにVMware Toolsをインストールできます。
結論
仮想マシンレベルでHyper-VからVMwareへ移行したい場合は、VHDをVMDKに変換し、変換後のVMDK仮想ディスクを新しいVMware VMに接続することができます。 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ハイパーバイザーに復元したりすることができます。





























