Windowsで仮想ディスクの空き容量をゼロにして、圧縮率を上げるにはどうしたらいいですか?

Windowsで仮想ディスクの空き容量をゼロにして、圧縮率を上げるにはどうしたらいいですか?

そのための簡単なオープンソースツール(少なくとも無料)が欲しいです。おそらく、できるだけ大きな 0 でいっぱいのファイルを書き込んで、その後それを消去する必要があります。これはセキュリティ上の理由ではなく、圧縮のためで、我々は仮想マシンをバックアップしています。

ディスクからではなく、ウィンドウズ内部から実行する必要があります。

Linuxではこのようにします(ユーザーとして)。

cd
mkdir wipe
sudo sfill -f -l -l -z ./wipe/

編集1: 受理した回答からsdeleteを使用することにしました。sdelete'のヘルプを拝見しました。

C:\WINDOWS\system32>sdelete /?

SDelete - Secure Delete v1.51
Copyright (C) 1999-2005 Mark Russinovich
Sysinternals - www.sysinternals.com

usage: sdelete [-p passes] [-s] [-q] <file or directory>
       sdelete [-p passes] [-z|-c] [drive letter]
   -c         Zero free space (good for virtual disk optimization)
   -p passes  Specifies number of overwrite passes (default is 1)
   -q         Don't print errors (Quiet)
   -s         Recurse subdirectories
   -z         Clean free space

これは古いバージョンです。2回目の起動から-cスイッチを使用しましたが、これはかなり高速でした(V1.6以前の古いバージョンでのみ有効な構文です)。

c:\>sdelete -c c: (OUTDATED!)

という感じで、思い通りになる印象です。sdeleteツールは使いやすく、簡単に手に入ります。

Edit 2: scottbbが以下の回答で指摘しているように、2011年9月にツールに変更がありました(バージョン1.6) -cと-zオプションは意味が変わりました。1.6以降での正しい使い方は

c:\>sdelete -z c:

Edit 3: sdelete と sdelete64 の 2.0 バージョンがあります。それらはゼロにするときにバグがあるように見えます。極めて長い時間100%で止まっているように見えるでしょう。10 - 40倍長いという報告もあります。古いバージョン1.61では、この問題はありません。https://social.technet.microsoft.com/Forums/en-US/2ffb2539-34ba-4378-aa8a-941d243f117e/sdelete-hangs-at-100?forum=miscutils を参照してください。

編集4:今、動的に割り当てられた仮想ディスク領域の問題があります。100GBのディスクが満杯にならず、ホスト上で30GBしか使用しない場合、ゼロフィルは動的割り当ての目的に反するので、ディスクのサイズを劇的に増加させてはいけません**。Oracle VM VirtualBox` https://superuser.com/q/907196/44402 - しかし、VMWare、Xen、XenServerなどの他のスタックでは、これは別々に回答される必要があります。

ソリューション

Windowsでは、sysinternalsツールsdeleteを使用して、すべての空き領域をゼロにします。 コマンドは、sdelete -z c:のようなものです。

使用法: sdelete [-p passes] [-s] [-q]  ...
sdelete [-p passes] [-z|-c] [ドライブ文字] ...
-a 読み取り専用属性を削除します。  
-c 空き領域を整理します。  
-p passes 上書きパスの数を指定します (デフォルトは 1)。  
-q エラーを表示しない(Quiet)。  
-s または -r サブディレクトリを検索します。  
-z 空き領域をゼロにする(仮想ディスクの最適化に有効)。

Linuxの場合、zerofreeを使用することをお勧めします。

解説 (3)

SDeleteは、仮想ディスクのコンパクションのためのスペースをゼロにしません。 SDeleteは、空き領域をゼロにして開始しますが、その後、0xffとランダムバイトで埋めます。 マイクロソフト製品サポートサービスに送信するVirtual Server 2005仮想ハードディスクファイルの準備方法][1]コンパクション用のVHDを設定する方法については、以下を参照してください。

Precompact.exeは、なぜか見つけにくいことがあります。 別途ダウンロードできるものがありましたこちら。 しかし、Windows Virtual PCがあれば、%programfiles(x86)%Windows Virtual PC Integration Componentsから入手することも可能です。

解説 (7)

Windowsには必要なものがすべて入っているのに、なぜサードパーティ製のツールを使うのか。しかも無料で、しかも高速に。

  1. format X: /fs:XXXX /p:#, ここで X はドライブレター、XXX はファイルシステム、# はパスの数です。

  2. diskpart clean コマンド。http://technet.microsoft.com/library/cc766465.aspxhttp://support.microsoft.com/kb/300415

そうでない場合は、時代遅れのディスクの交換/書き込み戦略のための古い情報か、製品を押し付ける人々か、パラノイアか、専門家のアドバイスとして流布されている戯言かのいずれかです。

Edit: nvm、フリースペースの部分を見逃しました...

解説 (2)