Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

Hyper-Vで、パフォーマンスを重視した仮想マシンを作成する場合、仮想ハードディスクを「容量固定」で作成するのが王道ですが、クイック作成や仮想マシンの作成ウィザードから仮想マシンを作成すると、仮想ハードディスクが自動的に「容量可変」で作成されてしまいます。

そこでここでは、Windows 10のHyper-Vで、容量可変で作成された仮想ハードディスクを容量固定の仮想ハードディスクに変換する方法を紹介します。

Windows 10のHyper-Vで仮想ハードディスクを作成する方法
ここでは、Windows 10のHyper-Vを例に仮想ハードディスクのタイプ(容量可変/容量固定/差分)ごとの特徴や、仮想ハードディスクの作成方法を紹介します。
Windows 10のHyper-Vで仮想マシンを作成する方法
ここでは、Windows 10のHyper-Vで仮想マシンを作成する方法を紹介します。

この記事は、以下の環境で実行した結果を基にしています。他のエディションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
Windows 10 Pro 64bit1909

Hyper-Vマネージャーで変換する

Hyper-Vマネージャーから、容量可変で作成された仮想ハードディスクを容量固定に変換する場合の手順は、次のとおりです。

まず、Hyper-Vマネージャーの操作メニューから「ディスクの編集」をクリックするか、仮想マシンの設定画面を開いて、接続されている仮想ハードディスクの「編集」をクリックします。

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

「Hyper-Vマネージャー」の操作メニュー

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

仮想マシンの設定画面

いずれの操作でも「仮想ハードディスクの編集ウィザード」画面が表示されますが、操作メニューの「ディスクの編集」から開いた場合は、変換したい仮想ハードディスクを選択してから「次へ」をクリックし、仮想マシンの設定画面から開いた場合は、仮想ハードディスクは選択された状態なので、そのまま「次へ」をクリックします。

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

「操作の選択」で「変換」を選択して「次へ」をクリックします。

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

次画面では「VHDX」が選択されていることを確認して「次へ」をクリックします。

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

次画面では「容量固定」を選択して「次へ」をクリックします。

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

次画面では、仮想ハードディスクの名前を指定して「次へ」をクリックします。

※ここでは容量固定ディスクと分かるように、変換前のディスク名に「_fix」を付加しました。

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

最後に変換内容を確認して「完了」をクリックすると、変換が開始されるので完了するまで気長に待ちます。

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

変換中の画面

Memo

注意点として、容量可変の仮想ハードディスクは使用量に応じて仮想ハードディスクファイルのサイズが大きくなりますが、容量固定に変換すると、仮想ハードディスクに設定されている最大サイズで仮想ハードディスクファイルが作成されるので、仮想ハードディスクファイルを保存しているドライブの空き容量に気を付けましょう。

変換元の仮想ハードディスクファイルと、変換後の仮想ハードディスクファイルは別ファイルなので、変換後の仮想ハードディスクファイルを仮想マシンで利用する場合は、仮想マシンの設定画面で、接続する仮想ハードディスクファイルを変更するのを忘れずに。

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

PowerShellコマンドで変換する

PowerShellで、容量可変で作成された仮想ハードディスクを容量固定に変換する場合の手順は、次のとおりです。

管理者権限でPowerShellを起動して「Convert-VHD」コマンドレット利用して、次のようにコマンドを実行します。

PS> Convert-VHD -Path "F:Hyper-VVirtual Hard DisksWin10VM.vhdx" -DestinationPath "F:Hyper-VVirtual Hard DisksWin10VM_fix.vhdx" -VHDType Fixed

「-Path」オプションには変換元のファイルを「-Destination」オプションには変換後のファイルを、それぞれフルパスで指定します。

変換後の仮想ハードディスクファイルを仮想マシンに接続する場合は「Set-VMHardDiskDrive」コマンドレットを利用して接続します。

Memo

下のコマンドは、既存の仮想マシンにSCSIコントローラーとハードドライブがそれぞれ一つだけ作成されていることを前提としています。

PS> Set-VMHardDiskDrive -VMName Win10VM -ControllerType SCSI -Path "F:Hyper-VVirtual Hard DisksWin10VM_fix.vhdx"

なお、仮想マシンに複数のSCSIコントローラーやハードドライブが搭載されている場合は、「Set-VMHardDiskDrive」コマンドレットを実行するときに、変換した仮想ハードディスクをどのハードドライブに接続するかを「-ControllerNumber」や「-ControllerLocation」オプションで指定する必要があります。

仮想マシンに搭載されているSCSIコントローラーの「ControllerNumber」や「ControllerLocation」、接続されている仮想ハードディスクファイルを確認するには、「Get-VMHardDiskDrive」コマンドレットを実行します。

Hyper-Vで仮想ハードディスクを容量可変から容量固定へ変換する方法

参考

Convert-VHD | Microsoft Docs

あとがき

Hyper-Vの仮想マシンは、接続している仮想ハードディスクのタイプによっても、パフォーマンスが結構違ってくるので、CPUやメモリサイズに問題がないのに動作が遅い仮想マシンは、容量可変の仮想ハードディスクが原因かもしれません。

そんなときは、ここで紹介している方法で容量固定に変換することで、仮想マシンのパフォーマンスが良くなる可能性が大いにあります。