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

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

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

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

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

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

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

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

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

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

仮想マシンの設定画面

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

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

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

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

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

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

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

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

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

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

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

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

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

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

変換中の画面

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

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

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

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」コマンドレットを利用して接続します。

下のコマンドは、既存の仮想マシンに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」コマンドレットを実行します。

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

参考URL

Convert-VHD | Microsoft Docs

あとがき

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

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