これを解決し、仮想ディスク・ファイル中の未使用領域(ファイルとして割り当てられていない領域)を本当に解放して、ファイル・サイズを最小にするには、Virtual PC 2004 SP1/Virtual Server 2005 R2に用意されている「仮想ディスクの圧縮」という操作を行う。ここでいう「圧縮(compaction)」とは、具体的には、ファイル・システムで使用していない領域(1度データを書き込んだが、ファイル削除などでその後解放された領域)を仮想ディスク・ファイルから削除し、仮想ディスク・ファイルのサイズを小さくする(無駄な領域を省く)ことである。ZIPファイルやNTFSのファイル圧縮のように、データの内容そのものを圧縮(compression)するわけではないので、何分の1にも小さくなるわけではない。あくまでも仮想ディスク・ファイル中から無駄な領域を省くという機能のことを指す(日本語版では「圧縮」と呼んでいるが、この意味では「コンパクト化」と訳す方が望ましいかもしれない)。
仮想ディスク・ファイルを圧縮するためには、最初に、Virtual PC 2004 SP1(以下VPC2004)で対象となる(.VHDファイルをマウントした)ゲストOSを起動し、ファイル・システムをデフラグしておくことが望ましい。MS-DOSでも標準のデフラグ・ツール(defrag.exeコマンド)を実行しておけばよいだろう。デフラグしなくても圧縮はできるが、使用済み領域が分散したままなので、アクセス効率の向上という目的はあまり望めない。またデフラグの前に、不要なファイルの削除やごみ箱を空にするといった操作も行っておくとよい。
ディスクの未使用領域に0データを書き込むには、VPC2004に付属の「バーチャル・ディスク事前圧縮ユーティリティ(virtual disk precompactor。コマンド名はprecompact.exe)」を利用する。このツールの動作原理は非常に単純で、新しいファイルを次々と作成しながら、その内容として0データを書き込むだけである(0データはいくら書き込んでも無視され、仮想ディスク・ファイル・サイズは拡大しない)。そして空き領域いっぱいにファイルを作成したら、最後にそれらをすべて消去する。その結果、未使用領域の内容はすべて0になる。
このユーティリティは、VPC2004のインストール・フォルダ(デフォルトでは「C:\Program Files\Microsoft Virtual PC」)の中にある「Virtual Machine Additions」というフォルダに「Virtual Disk Precompactor.iso」という.ISOファイルとして用意されている。これはCD-ROMイメージのファイルなので、ゲストOSに仮想CD-ROMとしてマウントする。