VHD(X)イメージを圧縮する

#vhd#hyper-v

fuji44

VHD/VHDXイメージの未使用領域をゼロフォーマットして最適化処理をすることで圧縮することができる。

具体的には以下のような流れ。

  1. VHD/VHDXイメージが容量固定の場合は容量可変に変換。
  2. マウントしたドライブの未使用領域をゼロフォーマット。
  3. VHD/VHDXイメージを最適化。

説明するコマンドはすべて管理者権限のPowerShellで実行する。

オプション:VHD/VHDXイメージを容量可変に変換

VHD/VHDXイメージが容量固定の場合はConvert-VHDコマンドやHyper-Vマネージャを使って容量可変に変換する。

VHDの場合は、より改善されたフォーマットのVHDXへの変換も併せて行うといい。

Convert-VHD .\target.vhd .\target.vhdx -VHDType Dynamic

未使用領域をゼロフォーマット

フォーマットするために、VHD/VHDXイメージをマウントする。

Mount-VHD .\target.vhdx

次に、SDeleteを入手してマウントしたドライブのルートを指定してゼロフォーマットする。ドライブレターは事前に確認して指定すること。

.\sdelete64.exe -z d:

SDeleteはChocolateyでもインストールできます。

フォーマットが終わったらディスマウント(アンマウント)する。

Dismount-VHD .\target.vhdx

VHD/VHDXイメージの最適化

Optimize-VHD .\target.vhdx -Mode Full

最適化が完了すればイメージサイズが小さくなっているはず。

参考