sdelete -cと-zの違いは何ですか?


24

この記事から、VDIファイルを縮小する手順としてsdeleteを使用することを学びました。

sdelete -c c:

しかし、-c(ヘルプテキストで説明されている「クリーンな空き領域」)とはどういう意味ですか?空きスペースをゼロで書きませんか?そして、何について-z(ゼロフリースペース)?sdelete -cと-zの違いは何ですか?

編集

前述の記事の手順を試しましたが、.vidファイルのサイズを小さくできませんでした。次に、このスーパーユーザーの投稿に従い、オプション-c-zに変更して成功しました。

そのため-z、空き領域にゼロを-c書き込み、他の何か(おそらくランダムなビット)を書き込みます。

回答:


21

これはよくある間違いだと思います。-zオプションは以前のバージョンでは使用できなかった可能性があります。SDelete 1.61によると

-z         Zero free space (good for virtual disk optimization)

これを行うと、最初にハードディスクがフルサイズに拡張されることに注意してください。VMWareによる縮小プロセスでのみ、再び小さくなります。

私のマシンでの簡単なテスト:

-z took 1:01 minutes
-c took 2:11 minutes

これは、-zが単純なゼロのみを書き込むのに対し、-cはSDelete Webサイトに記載されているDoD 5220.22-Mを消去する軍事規格であることを示しています。


ソフトウェアがある程度インテリジェントであれば、ファイルは肥大化しません。ほとんどの仮想化アプリケーションはそうです。VMware Fusionで試しましたが、ファイルサイズはまったく増加しませんでした。
ダニエルB

1
VMWare Workstation Pro 12は、残念ながらディスクをフルサイズに拡張します。
レベニータ

-cと-zは、1.51でまったく逆の方法でアドバタイズされました(それが説明の単なるエラーであったか、機能が逆転したかはわかりません)。1.61の方法は明らかに理にかなっています。
レベニータ

Windows 2012と新しい20GB VHDXファイルで確認しました。-zオプションは非常に高速(秒)で、VHDXディスクファイルのサイズは増加しませんでした。-cオプションの実行速度ははるかに遅く、VHDXのサイズは増加しています。そのため、特にコミットされたディスク領域を超えた場合、いわゆるシン/拡張仮想ハードディスクの-zが推奨されるオプションです。しかし、それは、-cオプションとして安全とはありません
munrobasher

1
最新バージョン(2.0)を確認したところ、2つの明らかな違いがあります。まず、32ビット版と64ビット版があります(sdelete.exeとsdelete64.exe)。しかし、心配する-cコマンドにも微妙な違いがあります。v1.61では、-cオプションは「空き領域をクリーニングする」と言いましたが、v2.0では「空き領域をゼロにする」と言います。-zオプションもゼロ化を示します。ランダムデータオプションが失われましたか?
munrobasher

5

これは、トーマスの答えへのコメントとして、より適切に投稿されるべきでしたが、まだそれができないので、ここに投稿します。

「-z」オプションと「-c」オプションを混同することは、おそらく「よくある間違い」です。これは、SDeleteがこのオプションの動作を長年にわたって変更してきたためです。以下の参考文献を見ると、SDeleteには最初に「軍事標準ワイピング」を行う「-z」オプションがあり、次に空き領域をゼロにするために「-c」オプションが追加され、次にv1.51とv1の間にあるようです。 61はその動作を現在の動作に切り替えました。

参照:sysinternals.comフォーラムおよびarchive.orgを介したMicrosoft TechNetの古いSDeleteホームページ


これは元の質問に対する答えではありません。投稿者に批評または説明を依頼するには、投稿の下にコメントを残します-自分の投稿にいつでもコメントできます。十分な評判たら、投稿コメントできるようになります。
DavidPostill

4
これは元の質問に対する答えではありません。ただし、投稿の最初の行をもう一度お読みください。サービスにサインアップしたばかりの人の既存の回答に有用な情報や適切な情報を追加するためのより良い手順があれば、気軽に教えてください。
LN2 14

「サービスにサインアップしたばかりの人の既存の回答に有用な情報や適切な情報を追加するためのより良い手順があれば、気軽に教えてください」-ありません。私が提供したリンクを読んでください。
DavidPostill

1.61では、使用するスイッチに関係なく、常に「空き領域のゼロ化」と表示されます(1.51では、常に「空き領域のクリーニング」と表示されます)。それは少し誤解を招くかもしれませんが、しばらくの間、「-c」が実際には「ゼロ」ではなく「クリーン」な振る舞いであることに不信感を抱かせました。
rkagerer

5

現在のドキュメント(およびプログラムバージョン2.01):

  • -c空き領域をきれいにします。実行中のシステムで使用できるように、オプションの空き容量を指定します。
  • -z空き領域がゼロ(仮想ディスクの最適化に適しています)。

しかし、古いバージョンでは逆になりました:

  • -c空き領域がゼロ(仮想ディスクの最適化に適しています)。
  • -z空き領域をきれいにします。

ここに画像の説明を入力してください

しかし、彼らは何をしますか?

Cleanは、可能限り最大のファイルを作成し、ランダムなデータで埋めてから、ゼロで埋めます。これはほとんどの人がワイピングと考えるものであり、やり過ぎです。

欠点は、仮想ディスクを使用する場合、または仮想マシン内で使用する場合、またはストレージスペースで実行する場合、基盤となるストレージシステムがリソースを割り当ててランダムデータを保持し、その後ゼロを保持することです。願わくば、基礎となるストレージシステムが、ドライブに割り当てられたすべてのスペースを再利用できることを認識できることを願っています。これらのセクターにはすべてゼロが含まれているからです。

-zゼロ:すべてのセクターにゼロを単に書き込みます。これは、多くの理由で必要なオプションです。

  • ランダムなデータでの拭き取りはやり過ぎです(データの読み取りは実際には不可能です。つまり、顕微鏡では実現できませんが、一度に1ビットずつ)
  • 一部のSSDは、セクターに0を書き込んでいることを検出でき、それを使用してセクターをフリーとしてマークできます(TRIMと同様)
  • ほとんどの仮想ストレージシステム(VMWare、Hyper-V、Windows仮想ディスク、ストレージスペース)は、ゼロのセクター全体を書き込むことを認識し、基盤となるストレージファイルのスペースを再利用する機会を利用します。
  • SSDは、最終的な目標が本質的には栄光のTRIMであることを認識せず、(仮想ディスクのように)既にゼロを含んでいるセクターをゼロ以外で埋めることを余儀なくされます。それはあなたのSSDにとってひどいです。

ソース:仮想ハードディスクをマウントし、両方のモードでsdeleteが実行したI / O操作を監視しました。

tl; dr:-z Zeroを使用します。より速く、より良く、より安全です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.