FATファイルシステム

FAT FileSystemは1977年来DISK BASICから始まり、以後MS-DOS、WindowsへとMicrosoft社OSで使用されているているファイル システムです。

MS-DOSの初期では、その管理領域の大きさが12bit(FAT12)で、 2^12=4096個(実際は4085(FFF5h)個)までのクラスタを管理することができましが、クラスタサイズは最大で32KBなので、32KB×4096=128MBまでの容量にしか対応できせんでした。
MS-DOS ver. 4.xではクラスタエントリの値を16bit(FAT16)、 65536個(これまた実際は65525(FFF5h)個)まで拡張して、最大32KB×65536=2GBの容量まで対応できるようにしました。

その後、2GBを越えるものも製品化され、パーティションを切って使用されましたが、2GBのパーティションというのも窮屈になり、またパーティションを1GB以上で切るとクラスタサイズは32KBになり、どんなに小さなファイルでも最低32KB領域を消費してしまう 事になります(クラスタギャップ)。
そこで、Windows 95 OSR2からディレクトリエントリが32bitに拡張されましたが、実際は28bitしか使われておらず、管理するクラスタ数も268435445(FFFFFF5h)個 となり理論上2TBまでの管理が可能となっています。
また、WindowsNT系では「NTFS(Windows NT File System)」があります。


フォーマット(初期化)

フォーマットは、記録領域を区画整備して番地を付け、ディスクを使えるようにする作業です。まず、物理フォーマット(ローレベルフォーマット)と呼ばれる、ディスク上にある同心円状のトラックをセクタという領域に分割します。次に、論理フォーマットという、複数のセクタをクラスタという単位にまとめ 、システム領域・ディレクトリ領域・FAT領域・データ領域を作成します。

 
システム領域 Windowsがディスク管理を行うための基本的な領域
ディレクトリ領域
(ディレクトリエントリ)
ディレクトリ(フォルダ)に格納されたファイルの管理情報を記録する領域
FAT領域 ファイルが使用するクラスタ番号の情報を記録する領域
データ領域 ファイルのデータを記録する領域

物理フォーマット(ローレベルフォーマット)は
ディスクの磁性面に、必要な情報を書き込むフォーマットです。formatコマンドを実行すると、フロッピディスクに対してはローレベルフォーマットを行いますが 、ハードディスクに対しては行いません。これはハードディスクについては、製品出荷時にすでにローレベルフォーマットが行われているためです。
 
  フォーマット前ディスクはトラックのみ
 
                                                    
                                                    
                                                    
                                                    
                                                    
  物理フォーマット後セクタに分割
 
                                 
                                 
                                 
                                 
                                 
倫理フォーマット後クラスタ、各領域作成
 
 システム領域          
 ディレクトリ領域          
 FAT領域          
 データ領域          
 データ領域          
  クラスタの中にセクタがある。1セクタのサイズは通常512Bです。


クラスタギャップ

ファイルをクラスタに分割して保存する際に以下のような無駄な容量(クラスタギャップ)が存在します。
例えば、2GBのドライブで1KBのファイルを保存しようとします。
このとき、FAT16では1クラスタ32KB、FAT32では1クラスタ4KBとなっています。
つまり、FAT16では31KBのクラスタギャップが発生するのに対して、FAT32では3KBしかクラスタギャップが発生しません。
 
FAT16
 
←1KBのファイル
残り31KBは使えない
32KB
FAT32
 
             
クラスタギャップは3KB
あと28KB使用できる
   4KB  

FAT32・ FAT16によるドライブ容量とクラスタサイズ

FAT32
ディスクドライブ クラスタサイズ
8192MB 迄
16384MB 迄
32768MB 迄
32768MB 以上
4KB
8KB
16KB
32KB

FAT16
ディスクドライブ クラスタサイズ
256MB 迄
512MB 迄
1024MB 迄
2048MB 迄
4KB
8KB
16KB
32KB


フラグメンテーション
(fragmentation・断片化)
ハードディスクは、書き込み・削除というファイル操作を繰り返し行うと、自然にフラグメンテーションを起こします。
フラグメンテーションとは、ファイルが不連続のクラスタ(セクタではない)に分割されて記録されている状態のことです。

  始めはファイルが連続している
 
空き 空き
 クラスタ
ファイルBを削除する
 
空き 空き 空き
  ファイルDを保存する
 

上の図のように、ファイルが不連続になって保存されてしまいます。このようなことが積み重なり、フラグメンテーションが起こると、HDDの読み込み などが遅くなることがあります。定期的に「デフラグ」を行っておきましょう。
OS添付のデフラグは Diskeeper Corporation(国内販売は相栄電器) のDiskeeperのサブセットであり、より高速・便利なデフラグメントを行なうのにはDiskeeperが安心です。(パソコン倶楽部はDiskeeper Corporation、相栄電器とは関係有りません)


ハードディスクの構造

イメージ 磁性体が塗られている円盤を何枚か同時に回転させて、磁気ヘッドで書きこみ、読み込みをしています。(非接触)
この円盤のことを、プラッタ(DISK)と呼びます。
またHDDの性能を示すのに5400rpmとか7200rpmとか書いてあるのがありますが、これはこのプラッタ(=円盤)の回転数のことです。













 

プラッタを上から見たイメージでは、
同心円上にトラックがあり、一つの記憶単位を表します。
トラックを放射状に等分したところをセクタといいます。
同様に記憶単位で、HDDの一番小さな単位になります。
セクタが集まって1つのトラックを作るわけです。
このセクタを上記の条件により、いくつかまとめた単位が
クラスタになります。   
  1. プラッタ
    円盤のこと。HDDに入っているディスクのこと。
  2. トラック
    プラッタに書かれる円形のこと。記憶単位。
  3. セクタ
    トラックを放射状に区切ったもの。HDDの最小記憶単位。
    1トラック=α×セクタ(αは変数)となる。このαはAT互換機の中では63まで。つまりはトラックを63分割できる。
    ブロック
    HDDでは512byteで1ブロック。
    1ブロック=1セクタ
    つまりブロックもセクタも同じこと。
  4. ヘッド
    HDDを読み書きするもの。
    IDEの場合16まで、BIOSの場合255までサポート。
  5. クラスタ
    OSによる最小記憶単位。
    セクタ×β=1クラスタとなり、このβは各OSによって違う。
     
ヘッドを動かすことなくアクセスできる各プラッタ(円盤)の同じ位置のトラックのことを一まとめにしてシリンダと呼ばれることがあります。