web-dev-qa-db-ja.com

Windows 7のディスクプロパティダイアログは、ディスク上のファイルの合計サイズよりも多くの使用済みスペースを報告します

FreeFileSyncを使用して同期された2つのハードドライブ(同じサイズ、同じパーティション、同じモデル)があります。これらは、システムではなく、データを格納するために使用されます。同期後、ドライブは同じ空きディスク容量と使用済みディスク容量を報告するはずですが、そうではありません。

最初のドライブ(ストレージに使用)は781 GBの使用済みディスク容量を報告しますが、2番目のドライブ(バックアップ)は778GBのみを報告します。その情報を取得するには、ディスクを右クリックして、プロパティを選択しました。

最初に、同期ツールが実行していないのは(一部のファイルを除外することによる)仕事だと思っていましたが、他のファイル同期ツール(SyncToyやDirSyncProなど)を使用すると同じ結果が得られます(報告されたファイルの違いは2 GBのデルタを正当化しません)。

また、ドライブのルートフォルダーに移動し、すべて(すべてのファイルとフォルダー)を選択して右クリックし、プロパティを選択すると、報告されるファイルの合計サイズは両方のドライブで778GBになります。ただし、数値を詳しく見ると、2つのドライブ間に数メガバイトのわずかな違いがあります。

ノート :

  • コンピュータが数回再起動されました。

  • 両方のドライブでごみ箱が空になっています($RECYCLE.BINフォルダーに移動すると、両方ともほとんど空になっています(数KBのみ)。

  • シャドウコピーが無効になっています。 vssadmin list shadowsは何も報告しません。

  • Windowsエクスプローラーのフォルダー設定が変更され、システムファイルと隠しファイルが表示されるようになりました。

  • 両方のディスクで「エラーチェック」ツール(「ファイルシステムの自動修正」を有効にした状態)を実行しました。

2つのドライブ間で使用済みスペースと空き領域に違いがあるのはなぜですか?どうすればこれを解決できますか?

2
tigrou

代替データストリーム

ソースファイルには NTFS代替データストリーム が含まれている可能性があります。バックアップ/同期ソフトウェアがそれらを認識していない場合、それらはターゲットにコピーされません。それらを表示できるツールはたくさんあり、WindowsVista以降はdir /r、ファイルだけでなく、それらの代替データストリームも表示します。

異なるファイルシステムクラスターサイズ

ファイルは多数のファイルシステムクラスターを使用するため、ファイルが使用するディスク領域は切り上げられます。例えば。ファイルのサイズが3000バイトで、ファイルシステムのクラスターサイズが4Kの場合、ファイルは正確に4Kを使用します。 2つのファイルシステムが異なるクラスターサイズを使用している場合、この方法で浪費されるディスクスペースの量は異なります。

その他のめったに使用されないNTFS機能

NTFSには、バックアップソフトウェアでサポートされている場合とされていない場合がある他のいくつかの機能があります。

  • 圧縮。コピー中に圧縮ファイルを解凍すると、より多くのスペースが必要になります。
  • スパースファイル:これらをコピーするときは特別な注意が必要です。そうしないと、「爆発」します。より多くのスペースを取り、もう惜しまないでください。
  • ポイント、ハードリンク、およびバックアップソフトウェアを混乱させる可能性のある他の多くの機能を再解析します。

結論

ファイルシステムの合計に依存しないでください。ある種の監査を使用して、ファイルが正しくコピーされていることを確認します。たとえば、 md5deep を試して、ハッシュを計算し、ファイルを比較できます。

5
haimg

この問題は、WindowsVista以降の下位互換性に関連しています。これらのシステムでは、Windowsで「既知の」名前を持つ一部のフォルダXPは、 NTFSディレクトリジャンクションポイント を使用して新しい場所にマップされます。

このようなmappnigの例は次のとおりです。\Documents and Settings\<username>\Application Data\Users\<username>\AppData\Roamingにマップされます。

%appdata%に、Windowsのディスク容量使用量ツールによって2回カウントされるアプリケーションデータがある可能性があります。または、この測定に影響を与えている他のジャンクションポイントまたはファイルシンボリックリンクがある可能性があります。

バックアップドライブにジャンクションポイントが含まれているかどうかを確認するには、ルートでdir /A:L /Sを使用し、ソースドライブに返されるものと比較します。それらが同じである場合、あなたの問題は他の場所にあります。

それらが同じでない場合、データを正しくコピーするには、NTFSディレクトリジャンクションポイントを理解し、それらもコピーできるプログラムを使用する必要があります。そのようなプログラムの1つは Microsoft Robocopy またはプレーンxcopyです。 。

もう1つの可能性は、使用中のファイルです。Windowsでは、VSSのみが使用中のファイルをコピーできます。

私は個人的にこれらのオプションでRobocopyを使用します:

  • /COPYALL-すべてのファイル情報をコピーする
  • /B-バックアップモードでファイルをコピーする
  • /SEC-セキュリティでファイルをコピーする
  • /MIR-ディレクトリツリーのミラー
  • /R:n-再試行回数
  • /W:n-再試行間の待機時間
  • /LOG-出力ログファイル
  • /NFL-ファイルログなし
  • /NDL-ディレクトリロギングなし

ROBOCOPY source destination /COPYALL /B /SEC /MIR /R:0 /W:0 /LOG:log.txt /NFL /NDL

待機タイマーは、使用中のファイルがコピープロセスを停止させないように定義されています。

/B which Copies the Symbolic Link itself versus the target of the link.でxcopyを使用することもできます

ただし、VSSを使用したくない場合は、現在実行中のOSで使用されているオンラインファイルシステムのコピーを実行するのは難しい問題です。

1
mprill