Windows 8 以降に出現する『ディスク上のサイズ』が 0バイトのファイル

Windows Server 2012 もしくは、Windows 8以降を使っていて、
ディスク上のファイルサイズが 0バイトの奇妙なファイルを見かけることがあるかもしれない

w10c

実は、これには2つの理由があったのです


1. データ重複除去機能

データ重複除去の概要
実は、Windows Server 2012以降には、冗長なファイルをまとめて1つに管理する機能があります。
そのため、コピーと判断されたファイルは 0 バイトになるそうです。

2. NTFSの機能

NTFSの読み方 - Qiita
ntfs - "size on disk" is zero for non-zero file in windows 8? - Stack Overflow

NTFS内のファイルは、(少なくとも1つの)マスターファイルレコードテーブル(MFT)と言うファイルレコード(各ファイルレコードは名前、ファイル情報などの属性を含む)から構成されます。通常、データはディスク上の1つ以上のクラスタに配置されます。
MFTのファイルレコードには、これらのクラスターへの参照が含まれます(非常駐属性と呼ばれます)。
データサイズが実際に小さい場合、そのデータがMFTレコード内にあっても、データ属性は常駐しています。 したがって、NTFSはクラスタを割り当てる必要はありません。
ディスク上のサイズは、割り当てられたクラスタの数*クラスタのサイズです。したがって、データ属性が常駐する場合、ディスク上のサイズはゼロです。
ファイルレコードの最大サイズに達すると、データ属性は非居住になり、NTFSは最初のクラスタを割り当てます。
したがって、ディスク上のサイズは1クラスタ - 4096バイトです。

どうやら、Windows 8の場合、 NTFSの機能を使って、ファイルをMFTのファイル属性にファイルの中身を書き込んで、ディスク上の割り当てクラスタサイズを0バイトにして高速アクセスする機能があるらしい ・ω・ すごいぞ NTFS!(Windows 10がすごいわけではないらしい)

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です