Hyper-V の「Virtual Hard Disks」フォルダーに、使っていないはずの VHD/VHDX が残っていて不安…という相談は多いです。結論は「紐づきがないと確認できたものは削除OK」。ただしチェックポイント(AVHDX)や差分ディスクが絡むと事故りやすいので、安全な確認手順と Hyper-V マネージャーの開き方をまとめます。
結論:削除してよい条件と、やってはいけない削除
Hyper-V の仮想ハードディスク(VHD/VHDX)は、仮想マシン(VM)の設定ファイルとは別物です。そのため、VM を削除した・登録を外した・移行した、といった操作をしても、ディスクファイルだけが保存先に残るケースがあります。
削除の判断はシンプルで、次のどちらに該当するかで決めます。
- 削除してよい:どの VM からも参照されておらず、バックアップ用途や差分ディスクの親としても使っていないと確認できた VHD/VHDX
- 削除してはいけない(要注意):AVHDX(チェックポイント差分)、親子関係が不明な差分ディスク、他 VM のテンプレートとして使っていそうな親ディスク、稼働中 VM が参照するディスク
迷う場合は「いきなり削除」ではなく、まず 退避(コピーして保管)→ 数日〜数週間様子見 が最も安全です。容量が大きくてコピーが大変でも、起動不能の復旧作業よりははるかに安く済みます。
なぜ「Virtual Hard Disks」に古い VHD/VHDX が残るのか
代表的な原因を押さえておくと、不要ファイルの見極めが速くなります。
| よくある状況 | なぜ残る? | 見極めのヒント |
|---|---|---|
| VM を削除した(登録解除した) | Hyper-V は VM の構成削除とディスク削除が別扱い | VM 一覧に存在しないのに VHDX が残る |
| ストレージ移行(Storage Migration)や手動コピーをした | 移行前の置き場に古いディスクが残存 | 更新日時が古い/同名の別 VHDX が別フォルダーにある |
| チェックポイントを作った/削除した | AVHDX のマージが未完了、または残骸が残る | 拡張子が .avhdx、サイズが増減している |
| テンプレート用に「親ディスク」を置いて差分ディスク運用 | 親ディスク(ベース)が共有される | 複数 VM のディスクが同じ親を参照(ParentPath) |
| バックアップ/検証用に VHDX をコピーして保管 | 意図的に残しているが、経年で忘れる | フォルダー名に backup, old, archive がある |
まずはここを確認:削除判断のチェックリスト
削除判断で事故が起きるのは、「そのディスクがどこから参照されているか」「差分(親子)構成か」を見ないまま消してしまうパターンです。以下の順に確認していけば、失敗しにくくなります。
削除判断の早見表
| 状況 | 削除可否 | 理由 | 推奨アクション |
|---|---|---|---|
| VM 一覧に存在せず、どの VM のディスク設定にも出てこない | 原則 OK | 参照がなければ削除しても影響が出にくい | 念のため退避→問題なければ削除 |
| VM は残っているが、その VM は使っていない | 要注意 | チェックポイントや複数ディスクが紐づく可能性 | VM を整理(エクスポート/バックアップ)→VM 削除→残った VHD を確認 |
| 拡張子が .avhdx | 基本 NG | チェックポイント(差分)で、親子関係を壊すと起動不能 | チェックポイントを削除してマージ完了を待つ/必要なら手順に沿ってマージ |
| Get-VHD で ParentPath が表示される(差分ディスク) | 慎重に | 親ディスクを消すと子ディスクが全滅する | 親子関係を図にして把握→不要なチェーンをまとめて退避/削除 |
| 更新日時は古いが、サイズが定期的に変わっている | 要調査 | バックアップやマージ処理で書き換えられている可能性 | イベントログやバックアップ設定を確認、しばらく監視 |
Hyper-V マネージャーで「どの VM のディスクか」を特定する
最も分かりやすいのは GUI(Hyper-V マネージャー)での確認です。対象 VM を開けるなら、次の手順で VHD/VHDX のパスを確認できます。
- Hyper-V マネージャーを開く
- 左ペインでホストを選択し、中央の VM 一覧から対象 VM を選ぶ
- 右側の操作メニューから「設定」を開く
- 「ハードウェア」→「ハード ドライブ」を選び、仮想ハードディスクのパスを確認する
- (世代 2 などで複数ディスクがある場合)各コントローラー配下も確認する
この時点で「この VHDX は今も参照中だ」と分かれば、削除候補から外します。逆に、ディスクとして出てこないファイルは、次の PowerShell での一括洗い出しが効率的です。
PowerShell で参照中の VHD/VHDX を一括で洗い出す
Hyper-V ホスト上で管理者として PowerShell を開き、Hyper-V モジュールが使える状態で実行します。まずは VM とディスクの紐づきを一覧化します。
# VM と接続されている VHD/VHDX を一覧化
Get-VM | Get-VMHardDiskDrive |
Select-Object VMName, ControllerType, ControllerNumber, ControllerLocation, Path |
Sort-Object VMName, ControllerType, ControllerNumber, ControllerLocation
次に、「Virtual Hard Disks」フォルダー(またはあなたの環境の保存先)に存在する VHD/VHDX の一覧を取り、参照中リストと突き合わせると、孤立(オーファン)候補が見えてきます。
# 例:既定パス。環境に合わせて変更してください
$VhdRoot = "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks"
# 参照中ディスク一覧(絶対パス)
$InUse = Get-VM | Get-VMHardDiskDrive | Select-Object -ExpandProperty Path
# フォルダー内の VHD/VHDX/AVHDX を列挙
$Files = Get-ChildItem -Path $VhdRoot -Recurse -File |
Where-Object { $_.Extension -in ".vhd", ".vhdx", ".avhdx" }
# 参照されていない候補(ただし差分親子などは別途確認)
$Orphan = $Files | Where-Object { $InUse -notcontains $_.FullName }
$Orphan | Select-Object FullName, Length, LastWriteTime | Sort-Object LastWriteTime
この一覧に出てきたファイルのうち、特に .avhdx が混ざっている場合は削除厳禁 です。次の章で扱い方を確認してください。
確認に使う PowerShell コマンド早見表
| 目的 | コマンド例 | ポイント |
|---|---|---|
| VM の状態(稼働中か)を見る | Get-VM | Select Name, State | 稼働中 VM のディスクは触らない |
| VM と VHD の紐づきを見る | Get-VM | Get-VMHardDiskDrive | まずここで参照関係を押さえる |
| VHD の親子関係(差分か)を確認 | Get-VHD -Path "D:\...\disk.vhdx" | ParentPath があれば差分ディスク |
| チェックポイントを一覧 | Get-VMSnapshot -VMName "VM名" | 残っていれば AVHDX が絡む可能性 |
| チェックポイントを削除(マージ開始) | Remove-VMSnapshot -VMName "VM名" -Name "Checkpoint名" | 削除=即消えるではなく、マージが走る |
チェックポイント(AVHDX)や差分ディスクがあるときの注意点
Hyper-V のディスク運用で一番事故が多いのが AVHDX(チェックポイント差分) と 差分ディスク(Differencing Disk) です。ここを理解していない状態でファイル削除すると、VM が起動しなくなる原因になります。
AVHDX(チェックポイント差分)の基本
- チェックポイント作成後、書き込み先は元の VHDX ではなく AVHDX に切り替わります。
- チェックポイントを削除すると、AVHDX の内容が親(VHDX など)へ マージ されます。
- マージ中にホストを再起動した、ストレージが逼迫した、バックアップと競合した、などの事情で「AVHDX が残ったまま」になることがあります。
やってはいけない操作:エクスプローラーで AVHDX を直接削除する/名前変更する。これだけで起動不能になることがあります。
差分ディスク(Differencing Disk)の基本
差分ディスクは「親(ベース)ディスクに対する変更点だけを子に持つ」方式です。検証用テンプレートや VDI 的な運用で便利ですが、親を消すと子が成り立たなくなります。
差分構成かどうかは Get-VHD の ParentPath で判定できます。
Get-VHD -Path "D:\HyperV\Virtual Hard Disks\disk.vhdx" |
Select-Object Path, VhdType, ParentPath
拡張子で分かる「触っていいファイル/危険なファイル」
| 拡張子 | 意味 | 削除の考え方 | 補足 |
|---|---|---|---|
| .vhd / .vhdx | 仮想ハードディスク本体 | 参照なしを確認できれば削除候補 | まずは VM 設定と突合 |
| .avhdx | チェックポイント差分ディスク | 原則削除しない | チェックポイント削除→マージ完了を待つ |
| .rct | Resilient Change Tracking 用ファイル | 単体削除は非推奨 | バックアップや変更追跡に使われることがある |
| .vmcx / .vmrs | VM の構成/実行状態ファイル | VM 登録とセットで扱う | ディスクだけ消すと設定が残骸化する |
安全に整理する実践手順:迷わず進める「退避→検証→削除」
ここからは実際に整理する流れです。ポイントは「削除前に、復旧できる逃げ道を作る」こと。特に業務用サーバーや検証環境でも、将来の調査のために一時的に残したいケースは少なくありません。
対象ファイルの候補を一覧化する
- Virtual Hard Disks 配下をサイズ順・更新日時順で並べる
- VM のディスク参照一覧(Get-VMHardDiskDrive)と突き合わせる
- .avhdx や ParentPath があるものは「危険枠」に入れて別扱いにする
削除前に「退避」する(最も安全)
削除候補は、まず別ドライブや NAS、クラウドにコピーして保管します。ファイルが巨大な場合は、ネットワークコピーよりも外付けストレージの方が安定することが多いです。
# 例:Robocopy で大きいファイルを堅牢にコピー
robocopy "D:\HyperV\Virtual Hard Disks" "E:\HyperV_Backup\Virtual Hard Disks" *.vhd *.vhdx /E /R:2 /W:2
退避先のフォルダー名に日付を入れておくと、後から「いつの退避か」が一目で分かります。
削除は「Hyper-V 側の操作」→「ファイル削除」の順が無難
VM が残っている場合、先に VM の設定からディスクを外す、チェックポイントを削除してマージを完了させる、といった Hyper-V 側の整合性 を取る方が安全です。
- 不要な VM:エクスポート(必要なら)→ VM 削除 → 残った VHD/VHDX を確認して削除
- VM は残すが古いディスクだけ不要:VM の設定からディスクを削除(接続解除)→ 退避 → ファイル削除
エクスプローラーで VHD だけ消すと、VM の設定に「参照先がないディスク」が残って起動エラーの原因になるため、順序を意識します。
削除後の確認
- Hyper-V マネージャーで VM を起動して問題がないか確認
- イベント ビューアー(Hyper-V-VMMS / Hyper-V-Worker)にエラーが出ていないか確認
- しばらく運用して問題がなければ、退避したコピーも整理
Hyper-V マネージャー(コンソール)の開き方
「管理画面(コンソール)をどう開くか」で迷ったら、次のどれかが確実です。Windows クライアント/Windows Server の両方で通用する方法をまとめます。
すぐ開ける方法
| 方法 | 手順 | 向いている場面 |
|---|---|---|
| スタート検索 | 検索ボックスに Hyper-V マネージャー(または Hyper-V Manager)と入力して起動 | まず試すならこれ |
| ファイル名を指定して実行 | Win + R → virtmgmt.msc | 最短で開きたい |
| サーバー マネージャー(Windows Server) | Server Manager → 「ツール」→ 「Hyper-V マネージャー」 | サーバー運用でよく使う |
| Windows ツール | コントロール パネル/設定 → Windows ツール → Hyper-V マネージャー | メニューから辿りたい |
別の Hyper-V ホストを遠隔で管理したい場合
Hyper-V マネージャーは、ローカルだけでなく別サーバーにも接続できます。右側メニューの「サーバーへ接続」からホスト名を指定します。運用環境では「管理用 PC から Hyper-V ホストをリモート管理」する方が、ホスト上の作業が減って安全なことも多いです。
Hyper-V マネージャーが見つからない/起動できないときの対処
検索しても出てこない場合、そもそも Hyper-V が未導入、または管理ツールが入っていない可能性があります。代表的な対処を表にまとめます。
| 環境 | よくある原因 | 対処(例) |
|---|---|---|
| Windows 10/11 Pro/Enterprise | Hyper-V 機能が無効 | 「Windows の機能の有効化または無効化」で Hyper-V を有効化 → 再起動 |
| Windows 10/11 Home | 標準では Hyper-V が使えない | 業務用途なら Pro 以上を検討(代替として WSL2/他製品を利用) |
| Windows Server | 役割(Hyper-V)や管理ツール未導入 | サーバー マネージャーで役割追加(Hyper-V)+管理ツール |
PowerShell で機能を有効化したい場合の例も載せておきます(実行には管理者権限が必要です)。
# Windows 10/11(Pro/Enterprise)で Hyper-V を有効化
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
# Windows Server で Hyper-V 役割を追加(管理ツール含む)
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
よくある質問(削除前の不安をここで解消)
VHD/VHDX をエクスプローラーから消しても大丈夫?
参照が完全に切れている(どの VM 設定にも出てこない)と確認できた VHD/VHDX なら、最終的にはエクスプローラー削除でも問題ありません。ただし現場では、削除前に VM 側の設定を確認し、必要なら接続解除してから消す方がトラブルが少ないです。
.avhdx があるけど、これは古そう。消していい?
基本的に消しません。AVHDX はチェックポイント差分であり、親子関係を壊すと起動不能になります。チェックポイント一覧を確認し、不要なチェックポイントは Hyper-V の機能で削除してマージ完了を待つのが安全です。
ファイル名や更新日時だけで「不要」と判断していい?
判断材料にはなりますが、決定打にはしません。更新日時が古くてもテンプレートとして使っているケース、バックアップが触って更新日時だけ変わるケースがあります。「VM 参照の有無」「ParentPath の有無」「チェックポイントの有無」の3点で裏取りすると、誤削除の確率が大きく下がります。
削除後に VM が起動しなくなったら?
まずは落ち着いて、消したディスクがどれかを特定します。退避コピーがあれば元に戻してパスを復元し、VM の設定(ハード ドライブのパス)を正しい場所に直します。退避がない場合は、バックアップからの復元や、同名ファイルの再配置が必要になり、復旧の難易度が上がります。だからこそ「退避→削除」を推奨しています。
まとめ:古い VHD/VHDX 整理で失敗しないための最短ルート
- 不要だと確実に分かる VHD/VHDX は削除してよいが、参照確認が先
- Hyper-V マネージャーと PowerShell(Get-VMHardDiskDrive)で紐づきを洗い出す
- .avhdx(チェックポイント差分)と差分ディスク(ParentPathあり)は、手順を間違えると起動不能になりやすい
- 迷うものは「退避して様子見」が最も安全で、結果的に作業コストも下がる
- Hyper-V マネージャーは検索、または
virtmgmt.mscで即起動できる
Virtual Hard Disks の肥大化は、ストレージ逼迫やバックアップ時間増大の原因になります。定期的に「参照中ディスク」と「実ファイル」を突き合わせ、不要な VHD/VHDX を安全に整理しておくと、トラブル対応も運用もぐっと楽になります。

コメント