File Allocation Table

Z Multimediaexpo.cz

FAT je zkratka anglického názvu File Allocation Table. Jedná se o tabulku obsahující informace o obsazení disku v souborovém systému vytvořeným pro DOS. Zároveň se tak označuje zmíněný souborový systém.

Obsah

Rozšíření

FAT je jednoduchý souborový systém, proto je podporován prakticky všemi operačními systémy. Určitě ho podporují MS-DOS, FreeDOS, OS/2, Linux, FreeBSD a BeOS. Kvůli jednoduchosti a rozšíření je velmi často používán na výměnných médiích, jako je disketa (zde se používá verze FAT12), USB flash disk nebo IOMEGA ZIP disk (pozor, na CD se nepoužívá).

Historie

Souborový systém FAT byl vytvořen v srpnu 1980 s první verzí QDOSu, předchůdce MS-DOSu. První verze neuměla podadresáře a používala 12 bitů pro adresaci sektoru (což omezovalo velikost disku na 2 MB).

FAT16

V roce 1983 Microsoft vydal další verzi s podporou podadresářů a používající 16 bitů na adresaci clusteru. Cluster mohl být tvořen jedním nebo více sektory (pouze mocniny dvou), maximálně ovšem 64 (velikost 32 KB). Při jednosektorovém clusteru tak byla maximální možná velikost logického disku 32 MB, při maximálním 2 GB (Dodatečné rozšíření u Windows NT/2000/XP a EDR-DOSu: 64 KB velikost clusteru, logického disku až 4 GB). Tato verze se obvykle nazývá FAT16 s tím, že verzi s 12 bity (ovšem s doplněnou podporou podadresářů) se říká FAT12.

VFAT

V roce 1995 vyšlo s Windows 95 další rozšíření pro FAT12 a FAT16, nazývané VFAT. Novinkou byla podpora dlouhých jmen souborů (delších než původních 8 znaků jména a 3 znaky přípony). Požadovaného efektu bylo dosaženo tak, že každý soubor s dlouhým názvem obsahuje v seznamu adresářových položek (v seznamu souborů v adresáři) více záznamů umístěných bezprostředně za sebou, přičemž až poslední záznam je standardním záznamem typu FAT. Předchozí záznamy mají příznaky souboru nastavené tak, aby byly staršími operačními systémy ignorovány (proto tyto zobrazují (větsinou) pouze krátký název souboru 8+3 uložený v posledním záznamu).

FAT32

V roce 1997 vyšla verze nazývaná FAT32. Přináší 32bitové adresy clusterů, kde číslo alokační jednotky využívá 28 bitů. Tím se zvyšuje limit velikosti diskového oddílu na 8 TiB pro 32 kB cluster (228×32 kB) a velikost souborů na 4 GB (přesně 232−1 bajtů), takže není vhodný pro ukládání velkých souborů, jako jsou obrazy DVD, velké soubory s videem a podobně.

Limitem jsou však i další omezení, která je nutno vzít v úvahu. Systém DOS využívá pro čtení disku BIOS, takže jejich limitem je adresace CHS s hranicí 32 GB (uplatňuje se v prostředí DOSu nebo při startu Windows 95 a 98). Omezení LBA adresace je až do specifikace ATA 66 omezeno hranicí 128 GB (tj. možností komunikace přes starší verzi IDE rozhraní s PATA kabelem). Vadný nástroj scandisk ve Windows 95 a 98 nepracuje s oddíly většími než 128 GB[1][2] a tyto verze Windows obsahují též vadný nástroj fdisk, který nepracuje správně s oddíly většími, než 64 GB.[3] Opravený nástroj fdisk je k dispozici, avšak neumožňuje vytvářet oddíly větší než 512 GB.[4]

Nativní podpora pro 32-bitové systémy je obsažena ve Windows 2000 a novějších (včetně Windows XP), které tak umožňují číst a zapisovat na libovolně velký oddíl s FAT32. Záměrně však obsahují nástroj, který umožňuje naformátovat pouze oddíl s maximální velikostí 32 GB (stejný limit uplatňuje také instalační program), protože Microsoft považuje tak velké souborové systémy FAT za pomalé a neefektivní.[1][5] Větší existující oddíly však mohou být bez problému naformátovány jinými programy.[6]

FAT+

V roce 2006 bylo nezávislými programátory publikováno kompatibilni rozšíření FAT+ (FATplus), zvyšující maximální velikost souboru ze 4 GiB na 256 GB. Je implementováno v systému Enhanced-DR-DOS, plánuje se i pro FreeDOS.

exFAT

V roce 2007 Microsoft uvedl patentovanou exFAT. Nový souborový systém jednodušší než NTFS a podobný FAT, ale není kompatibilní.

Struktura

Boot sektor (VBR, spouštěcí záznam svazku)

První sektor logické oblasti disku (označované také jako diskový oddíl, logický oddíl, svazek nebo partition) obsahující souborový systém FAT se skládá ze dvou částí: blok parametrů disku a spouštěcí kód svazku.

Drobné upozornění: Boot sektor není totéž co Master boot record (hlavní spouštěcí záznam), který je úplně prvním sektorem na fyzickém disku a obsahuje tabulku rozdělení disku (Partition table) a hlavní spouštěcí kód. Nicméně boot sektor i master boot record jsou oblíbeným místem počítačových virů, neboť kód uložený v těchto sektorech bývá vykonán dříve než samotný operační systém.

Blok parametrů disku

Obsahuje specifické informace o svazku jako např. verze, počet sektorů na cluster, počet rezervovaných sektorů před první FAT, počet FAT, počet sektorů kořenového adresáře, celkový počet sektorů na disku, počet sektorů v jedné FAT, název svazku (volume label).

Spouštěcí kód svazku

Program, který zahájí proces spouštění operačního systému (u systémů MS-DOS a Windows 9x načte soubor IO.SYS a předá mu řízení).

Alokační tabulka souborů (FAT)

Tato tabulka popisuje přiřazení každého clusteru v oddílu (1 záznam odpovídá 1 clusteru). Obvykle existují 2 kopie (obě jsou uloženy bezprostředně za sebou) – ta druhá je použita v momentě, kdy první se stane nečitelnou.

Přiřazení clusteru může nabývat různých specifických hodnot jako např. volný (0x0000), vadný (0xFFFE), cluster indikující konec souboru (0xFFFF), nebo obsahuje číslo následujícího clusteru souboru.

Kořenový adresář

V původní verzi obsahoval jednoduchou databázi obsahující veškeré informace o všech souborech, které jsou známé operačnímu systému, v příslušném oddílu. Se zavedením podadresářů (tedy dalších adresářů kromě tohoto) se stal kořenem stromové hiearchie adresářů: záznam o podadresáři v něm uložený neobsahuje žádné informace o souborech uložených v tomto podadresáři (ani součet velikostí), pouze informace o podadresáři. Pokud bychom tedy chtěli pracovat s databází souborů, museli bychom přečíst všechny adresáře (pro běžnou práci se svazkem to ovšem není nutné).

U FAT12 a FAT16 byla jeho velikost stanovena napevno při vytváření souborového systému, od verze FAT32 může být uložen kdekoliv a jeho velikost může libovolně narůstat.

Problémy

  • Fragmentace
  • Ztracené clustery (pokud jsou ve FAT tabulce clustery označené jako používané avšak k žádnému souboru nejsou přiřazeny)
  • Překřížené soubory (pokud ve FAT tabulce jsou pro 2 nebo více souborů vyhrazeny clustery se stejným číslem)
  • Poškozená FAT (pokud je souboru přiřazen blok několika clusterů, avšak ukazatel v některém z těchto clusterů ukazuje za konec disku nebo oddílu)

Související články

Reference

  1. 1,0 1,1 Limitations of FAT32 File System (anglicky)
  2. http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q184006&
  3. Microsoft Help and Support – Fdisk Does Not Recognize Full Size of Hard Disks Larger than 64 GB (anglicky)
  4. Fdisk.exe Unable to Partition Drives Larger Than 512 Gigabytes
  5. Chen, Raymond (2006). Microsoft TechNet: A Brief and Incomplete History of FAT32. TechNet Magazine July 2006.
  6. Fat32Format – program pro formátování disků s FAT32 za hranici 32 GB limitu

Externi odkazy