【 Convert-VHD 】コマンドレット――仮想ディスクのフォーマットや種類を変換するWindows PowerShell基本Tips(116)

本連載は、PowerShellコマンドレットについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は「Convert-VHD」コマンドレットを解説します。

» 2024年09月10日 05時00分 公開
[後藤諭史@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「Windows PowerShell基本Tips」のインデックス

連載目次

 本連載では、Windows PowerShellの基本的なコマンドレットについて、基本的な書式からオプション、具体的な実行例までを分かりやすく紹介していきます。今回は、仮想ディスクのディスクフォーマットを変換する「Convert-VHD」コマンドレットです。

Convert-VHDコマンドレットとは?

 仮想ディスクには「容量固定」「容量可変」「差分」の3種類があることは紹介済みですが、“容量固定”で作成した仮想ディスクをさまざまな事情で“容量可変”に変更したいなど、運用に適した形式に変換したいというニーズは一定数あると考えられます。

 また、「VHD」形式の仮想ディスクを「VHDX」形式へ変換したいという場合もあるでしょう。そうした場合でも、仮想ディスクを新規作成してデータを移行する、といった煩雑な作業はしたくないというのが運用管理者の本音ではないかと思います。

 Convert-VHDは、VHD形式、VHDX形式といった仮想ディスクのディスクフォーマットの変換や、容量固定の仮想ディスクを容量可変の仮想ディスクへ変換したり、またその逆を実施したりといった、ディスク種類を変換するコマンドレットです。

【注】Convert-VHDは「Windows PowerShell用Hyper-Vモジュール」に含まれるコマンドレットです。GUI(グラフィカルユーザーインタフェース)ツールの「Windowsの機能の有効化」や「役割と機能の追加」から「Hyper-V」を有効にするか、Windows PowerShellで「Enable-WindowsOptionalFeature」コマンドレットを実行して有効化します。


Convert-VHDコマンドレットの書式

Convert-VHD [オプション]


Convert-VHDコマンドレットの主なオプション

オプション 意味
-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

ALT 画面1 Convert-VHDコマンドレットでVHDX形式の仮想ディスクをVHD形式に変換した

 なお、変換元の仮想ディスクは、“オフライン”(マウントされていない状態)であることを確認してください。“オンライン”(マウントされている状態)の仮想ディスクを変換元としてConvert-VHDコマンドレットを実行してもエラーで終了します。また、Convert-VHDコマンドレットは管理者権限で実行する必要があります。

 画面1では、変換先の仮想ディスク名として拡張子「vhd」を指定しているため、変換された仮想ディスクのフォーマットがVHD形式になっていることが分かります。

 拡張子で変換先の仮想ディスクフォーマットを決定しているため、変換元と変換先で同じ拡張子を指定してしまうと単純にファイルコピーになってしまうので注意してください。

 なお、VHDX形式の仮想ディスクをVHD形式に変換する場合は、「VHD形式の制限」を順守する必要があります。

 以下の画面2では、2つのVHDX形式の仮想ディスクを変換していますが、2039GBのディスクは変換できましたが、3TBの仮想ディスクは変換中にエラーが発生しています。

ALT 画面2 VHD形式への変換の際、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

ALT 画面3 VHDX形式の容量固定仮想ディスクを容量固定仮想ディスクに変換した

 容量固定仮想ディスクから容量可変仮想ディスクに変換した場合、上記実行例の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.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。