プロ生ちゃんとお勉強するよ~

プロ生ちゃんと一緒にプログラミングをお勉強できるサイトです。

vhd/vhdxファイルのサイズを縮小(ダイエット)する

vhd/vhdxファイルのサイズを縮小(ダイエット)する方法について勉強するね!!。

vhd/vhdxファイルは何故太ってしまうのか?

Hyper-Vなどの仮想環境を使っていると、仮想環境のディスクファイル(vhd/vhdx)が、 OSから見たディスクの使用容量は増えていないのに、vhd/vhdxファイルのサイズは日々大きくなってしまいます。

そのメカニズムは、Windowsのファイル管理にあります。Windowsはディスクの書き込みの際に、 ディスク容量に余裕がある場合は、書き込みや読み出しの効率化の為に、積極的に新しい連続した領域を使う性質があります。

そのことで、可変サイズのvhd/vhdxファイルは、新しい領域が使われるたびに、だんだんと容量が増えていくことになります。

Hyper-Vなどで長期に仮想環境を利用していると、vhd/vhdxファイルが太ってしまうのはこの為です。

vhd/vhdxファイルのサイズを小さく(ダイエット)するにはどうするか?

いらないファイルの削除!!

まずは、仮想環境を起動して仮想環境上でいらないファイルを極力削除します。ごみ箱を空にしたり、 ディスクのクリーンナップなども効果的です。できる限りいらないファイルを削除して、ディスクの使用容量を削減します。

ゴミ箱を空にする

できるだけいらないファイルは削除してしまいましょう。

ディスクのクリーンナップ

クリーンナップで空き領域をできるだけ多く確保します。

次に、仮想環境にMicrosoftが提供しているSDeleteというツールをダウンロードして、管理者権限のコマンドプロンプトで以下のコマンドを実行します。 このツールはディスクの未使用の領域(セクタ)を0でクリアしてくれます。 実行すると未使用領域のクリアが始まり、進捗がパーセンテージで表示されます。100%になって終了するまでしばらく待ちます。 (100%になってからも結構時間がかかります..)

SDeleteのダウンロードはこちら

SDelete.exeの実行

> sdelete.exe -z C:

SDelete v2.0 - Secure file delete
Copyright (C) 1999-2016 mark Russinovich
Sysinternals - www.sysinternals.com

SDelete is set for 1 pass.
Zeroing free space on c:\: 10%

1 drive cleaned.

(C:はドライブレターです。64bitOSの場合は、sdelete64.exeを使用してください。)

ディスクの未使用領域のクリアが完了したら、仮想環境での作業は完了です。仮想環境のOSをシャットダウンします。

次は、仮想OSでは無くホスト側のOSでの作業です。今度は、コマンドプロンプトでは無くPowerShellを使います。

PowerShellを管理者権限で起動します。

ホストOS側で、ディスク容量を削減したいvhd/vhdxファイルのあるフォルダまで移動します。

vhd/vhdxファイルのあるフォルダへ移動

> cd C:\VHD-F\

ファイルサイズの確認

容量の削減の前に、ファイルサイズを確認しておきます。

> dir Windows81pro.vhdx
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2016/07/31     20:25    61905829888 Windows81pro.vhdx

Optimize-VHDコマンドを実行!!

今度は、vhd/vhdxがあるホスト側のOSで、管理者権限でPowerShellを起動します。そして、 Optimize-VHDコマンドを実行します。Optimize-VHDコマンドは、vhd/vhdxファイルの未使用セクタを切り詰めてくれます。 Optimize-VHDコマンドを実行すると、テキストベースでプログレスが表示されるので完了するまでしばらく待ちます。

> Optimize-VHD -Path C:\VHD-F\Windows81pro.vhdx -Mode Full


 仮想ディスクの圧縮
    10%
    [oooooooooo                                                 ]

("C:¥VHD-F¥Windows81pro.vhdx"には、vhd/vhdxのファイルパスを指定します)

vhd/vhdxファイルの縮小が完了しました。

縮小後のファイルサイズを確認します。

> dir Windows81pro.vhdx
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2016/07/31     20:25    32065454080 Windows81pro.vhdx

なんと、30GBぐらい小さくなりました。

長期間利用していたvhd/vhdxファイルの場合、半分以下になるようなこともありますよ。

vhd/vhdxファイルの縮小方法について説明しました。vhd/vhdxファイルをダイエットしてみてね。

本キャラクターに関する著作権およびその他一切の権利は、プログラミング生放送および、それらの関連企業・関係者に帰属しています。これは、著作権およびその他一切の権利を放棄・譲渡するものではありません。






プロ生ちゃんとお勉強するよ~

プロ生ちゃんと一緒にプログラミングをお勉強できるサイトです。