仮想マシンのファイル (vhdx/avhdx)が肥大化した場合の対処方法について紹介します。

それは突然やってくるのです… 足跡を立てずに…
- 仮想マシンのバックアップ
- 仮想マシンのチェックポイントの整理
- 仮想マシンのチェックポイント整理による空き容量の増加
何が起きた?
パソコンに現れた症状
パソコンのハードディスクの空き容量が減った!!
そんなに大きなファイルを保存した記憶もないのにパソコンの空きディスク容量が減っているぞ… なぜだ?

原因
Hyper-Vを使っている方は、仮想OSのディスク使用量がいつの間にか増えてしまっている可能性が高いです。
私は、Windows7環境が成長しまくっておりました。インストール直後は20GBだったのに、気がつけば74.2GB。

VHDXファイルしかない方はチェックポイントを使っていない方で、私のようにチェックポイントを使う人は、AVHDXファイルもあります。VHDXファイルが仮想OSの本体で、チェックポイントごとにAVHDXファイルが差分として作成されていきます。差分なので油断していたんですが、こんなに何十ギガも差分になります?
…なってしまうようです。

作ったチェックポイントはたったこれだけです。これなのに元ファイルの3倍以上に膨れ上がってしまうんです。こうなるとあまりチェックポイントを多用するのも良くないですね…
チェックポイントの整理
原因は仮想マシンファイルがチェックポイントの作成によって肥大化したことで、ホストパソコンのディスク容量を消費してしまっていたことでした。
ホストマシンのディスクの空き容量を増やすために、不要なチェックポイントを削除して整理しましょう。
仮想マシンのバックアップ
これは必ず実施してください。特にチェックポイントの削除は失敗すると取り返しが付きませんので、この先の作業を心身共に安定した状態でこなすにはバックアップが必要です。
バックアップのやり方については、過去に紹介していますのでこちらを御覧ください。今回は②のエクスポートを実施しました。
エクスポート完了。ファイルサイズは仮想マシンの物理ファイル群とほぼ同じサイズですね。

チェックポイントの削除
本当は全部削除してしまっても良かったのですが、Windows7はサポートが終了してしまい、今後アクティベートができなくなってしまった時に困るので初期状態のチェックポイントは残して、それ以降を削除します。
初期状態も不要、という方はツリーの一番上を選択すればその配下のチェツクポイントが全て消えます。

チェックポイントの削除を実行すると、結合処理が始まります。先程紹介した差分ファイル(AVHDXファイル)を本体に結合する処理です。これがすべて結合完了すると、仮想マシンが起動できる状態になります。


結合処理が終わってもAVHDXファイルが残る場合があるよ。そんな時は仮想マシンを起動してみて。起動タイミングで結合処理が行われる場合もあるよ。
エラーが起きた場合は、最後のトラブルシューティングを見てね。
チェックポイント削除結果
すべての結合処理が完了すると、仮想マシンが起動します。
今回のお掃除では、72.4GB専有していた仮想マシンですが、不要な中間チェックポイントを2つ削除して、結果47.9GBまでスリム化できました。最終的に24.5GBの空き容量を作れました。

- 不要なチェックポイントは定期的に消すと仮想マシンが肥大化しない
- 使い捨て環境ならチェックポイントは作らなくてよい
- 長期的に保存しておきたいチェックポイントはエクスポートしたほうがよい(頻繁に戻す場合はチェックポイント)
- チェックポイントの掃除には十分な空き容量が必要(外付けでも大丈夫)

チェックポイントは残したまま最適化(2020.11.14 追記)
必要があってチェックポイントを残している場合は、チェックポイントの削除はできませんよね。そんな時は、こちらをお試しください。
仮想マシンファイル(vhdx)そのものを小さくする方法もあります。
トラブルシューティング
ディスクで重大なIOエラー
仮想マシンを起動しようとすると、エラーメッセージが表示され、Hyper-Vマネージャーで状態を確認すると、「ディスクで重大なIOエラ」と表示される。

原因はホストパソコンの空き容量不足
結合処理失敗して仮想マシンが壊れた!!??
と肝を冷やしてしまいましたが、落ち着いて確認すると、ただのディスク空き容量なしでした。

この差分ファイルを本体ファイルに結合する処理には、ホストパソコン側に十分な空き容量が必要です。結合する仮想マシンの同じ分ぐらいは空き容量がないとエラーになってしまいます。

そもそもホストパソコンのディスク空き容量がなくなってきているから、仮想マシンのファイルを整理しているのに、これ以上空き容量ないよ!

大丈夫! 使っていないファイルを一時的に外付けハードディスク等に退避すれば処理が継続できるよ
ホストパソコンの空き容量の増やし方
そんなわけで、エラーが起きたから失敗ではなく、空き容量ができるまで結合処理が中断してくれていますので、空き容量を捻出しましょう。
- ゴミ箱を空にする
- 動画ファイルや写真ファイルなどのデータファイルを一時的に外付けハードディスクやNAS等へ移動
- ディスクのクリーンアップをする

仮想マシンが起動できるまで、頑張ってホストパソコンの空き容量を増やしてください。
コメント