セクターとクラスターとは
ハードディスクドライブ(内部)では、幾つかのパーツで構成されています。中でも磁気ヘッドは記録面のプラッタに記録されたデータを読み取る重要なパーツです。この磁気ヘッドはプラッターのヘッド面とは接触していません。プラッターが超高速で回転しているため、ヘッド面に薄い空気の膜ができて浮いているのです。
磁気ヘッド同様に重要なのが、データが記録されるプラッタですが、プラッタはデータを格納するために幾つかの単位で分割されています。例えば、「トラック」とは下記の図のようにヘッド面にある同心円状の円周のことです。このトラックを分割したのがクラスターです。
さらにクラスターを分割した部分がセクターです。クラスターはOSやハードディスクの 容量によってサイズが異なります。
尚、厳密にいえば、セクターを集めたものがクラスターです。クラスターとは「束」の意味があります。パソコン用語でクラスターという場合、セクターを束ねたものという意味で使われます。1クラスターは4セクターや8セクターで構成されています。
WindowsXPなどのNTFSファイルシステムの場合、1クラスターは8セクターで構成されています。
ハードディスクの書き込みと処理
ハードディスクにデータを書き込む際には、1つのブロックは、512バイトを1セクターとして複数のセクターを1クラスターという単位でメモリーを経由してプログラムにデータを渡して処理します。
この一連の処理を実行しているのがOSの役割です。ハードディスクなどの磁気ディスクの場合は、1セクタは512バイト、光ディスクの場合、1セクタは2048バイトとなっています。
バッドセクターとは
セクターが問題になるのは、BADが発生した場合です。所謂、バッドセクターと呼ばれるもので、ハードディスク上にバッドセクターが出来、OS側がそれを感知した場合、自動でスキャンディスク(チェックディスク)が開始され、バッドセクター上のデータは除外されます。
目次からも外されるため、フォルダ名やファイル名なども消失し、「found」フォルダや「.chk」ファイル化し、Windowsパソコンから呼び出すことも閲覧することも出来なくなります。
クラスタサイズによってディスク上のサイズが大きく違う
クラスタはファイル保存の最小単位です。そのためクラスタが大きく設定されているフォーマット形式の場合、小さなデータと多少大きなデータがディスク上のサイズでは同じかほとんど変わらない現象が発生します。
尚、クラスタサイズは、ファイルシステム毎に単位が決まっており、512バイトから128Kバイトとなっているケースが一般的です。現在、使われているファイルシシステムではすべて4Kバイト(8セクター)以上が最小単位のクラスターサイズとなっているのがほとんどです。
一部、ウィンドウズ98やME、USB外付けHDDではFAT32のファイルシシステムであったため、512バイトからとなっています。このクラスタは必ずしもディスク上で連続してまとめられている訳ではありません。複数のトラックにまたがるケースも良くあります。
「サイズ」と「ディスク上のサイズ」
「サイズ」がファイルの実際のファイル容量です。ですが、ハードディスクはクラスタ単位でデータを扱うため、ファイルの実サイズとディスクサイズが異なります。
例えば、4Kバイトのクラスタだと、例え、たった1バイトのファイルでも、ディスク上では4Kバイトを使用する事になります。そのため、実際のファイルサイズよりも、「ディスク上のサイズ」の方が大きくなります。
この逆は起きませんが、また「ディスク上のサイズ」が実際のデータサイズよりも小さくなることはありません。
特にデータサイズは多くないのに、「ディスク上のサイズ」が極端に増えるケースがあります。それはファイル数が多いケースです。そのため同じ実際の「データサイズ」が同じでもも、ファイル数が多いケースでは、「ディスク上のサイズ」が増えてしまい大きく違うケースが発生します。
注意が必要なクラスタギャップ
気を付けなければいけないのは、フォルダのプロパティで「データサイズ」だけを確認し、「ディスク上のサイズ」を確認し忘れたケースです。
この状態で、ハードディスクにデータを移動したり、コピーしたりしようとした場合、空き容量がギリギリの場合、「ディスク上のサイズ」を超えてしまい、コピーできないことがあります。このようなUSB外付けHDDなどの記録メディアにコピーする場合、「データサイズ」だけではなく、必ず「ディスク上のサイズ」を確認すように気を付けましょう。
データの種類や数などによっても「データサイズ」と「ディスク上のサイズ」がほとんど同じだったり、全く違うケースがありますが、これら「サイズ」と「ディスク上のサイズ」の差をクラスタギャップと呼びます。