本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Convert-VHD」コマンドレットを解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、仮想ディスクのディスクフォーマットを変換する「Convert-VHD」コマンドレットです。
仮想ディスクには「容量固定」「容量可変」「差分」の3種類があることは紹介済みですが、“容量固定”で作成した仮想ディスクをさまざまな事情で“容量可変”に変更したいなど、運用に適した形式に変換したいというニーズは一定数あると考えられます。
また、「VHD」形式の仮想ディスクを「VHDX」形式へ変換したいという場合もあるでしょう。そうした場合でも、仮想ディスクを新規作成してデータを移行する、といった煩雑な作業はしたくないというのが運用管理者の本音ではないかと思います。
Convert-VHDは、VHD形式、VHDX形式といった仮想ディスクのディスクフォーマットの変換や、容量固定の仮想ディスクを容量可変の仮想ディスクへ変換したり、またその逆を実施したりといった、ディスク種類を変換するコマンドレットです。
【注】Convert-VHDは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットです。GUI(グラフィカルユーザーインタフェース)ツールの「Windowsの機能の有効化」や「役割と機能の追加」から「Hyper-V」を有効にするか、Windows PowerShellで「Enable-WindowsOptionalFeature」コマンドレットを実行して有効化します。
オプション | 意味 |
---|---|
-Path | 変換元の仮想ディスクのパスを指定する |
-DestinationPath | 変換先の仮想ディスクのパスを指定する |
-VHDType | 変換先の仮想ディスクの種類(Fixed〈容量固定〉、Dynamic〈容量可変〉、Differencing〈差分〉)を指定する。省略可能 |
Convert-VHDコマンドレットを必須オプションの「-Path」と「-DestinationPath」を指定して実行すると、仮想ディスクのフォーマットを変換できます。変換先フォーマットは「-DestinationPath」オプションで、ファイル名を指定する際の拡張子で指定します(画面1)。
Convert-VHD -Path D:\VHDFolder\DataDisk_02.vhdx -DestinationPath D:\VHDFolder\DataDisk_02_Convert.vhd
なお、変換元の仮想ディスクは、“オフライン”(マウントされていない状態)であることを確認してください。“オンライン”(マウントされている状態)の仮想ディスクを変換元としてConvert-VHDコマンドレットを実行してもエラーで終了します。また、Convert-VHDコマンドレットは管理者権限で実行する必要があります。
画面1では、変換先の仮想ディスク名として拡張子「vhd」を指定しているため、変換された仮想ディスクのフォーマットがVHD形式になっていることが分かります。
拡張子で変換先の仮想ディスクフォーマットを決定しているため、変換元と変換先で同じ拡張子を指定してしまうと単純にファイルコピーになってしまうので注意してください。
なお、VHDX形式の仮想ディスクをVHD形式に変換する場合は、「VHD形式の制限」を順守する必要があります。
以下の画面2では、2つのVHDX形式の仮想ディスクを変換していますが、2039GBのディスクは変換できましたが、3TBの仮想ディスクは変換中にエラーが発生しています。
上記実行例では、VHD形式の制限である「2040GB以下のサイズ」を満たしていない場合はエラーが発生して変換できないことが分かります。VHD形式への変換の際は、仮想ディスクの容量に注意してください。
Convert-VHDコマンドレット実行時に「-VHDType」オプションを指定することで、容量可変の仮想ディスクを容量固定仮想ディスクに変換、またはその逆が可能です。
以下の画面3では、容量固定仮想ディスク「DataDisk_02.vhdx」をVHDX形式のまま容量可変仮想ディスクに変換するため、「-VHDType」オプションで容量可変仮想ディスクを示す「Dynamic」を指定しています。
Convert-VHD -Path D:\VHDFolder\DataDisk_02.vhdx -DestinationPath D:\VHDFolder\DataDisk_02_Dynamic.vhdx -VHDType Dynamic
容量固定仮想ディスクから容量可変仮想ディスクに変換した場合、上記実行例のConvert-VHDコマンドレット実行後の「Get-VHD」コマンドレット(本連載第107回)の通り、空き領域があったとしてもディスクサイズは変更されません。
ディスクサイズを最適化したい場合には、本連載第113回で紹介した「Optimize-VHD」コマンドレットを使用してください。
なお、変換元と変換先のファイル名は同一にできないので、必ずファイル名は変更してください。
Microsoft MVP for Cloud and Datacenter Management(2012-2025)。現業の傍ら、コミュニティーイベントでの登壇や著作にてMicrosoftテクノロジーに関する技術情報の発信、共有を続けている。ネットワークやハードウェアといった物理層に近いところが大好きな、昔ながらのインフラ屋さん。得意技はケーブル整線。近著は『詳解! Windows Server仮想ネットワーク』(日経BP社)。
Copyright © ITmedia, Inc. All Rights Reserved.