Section courante

A propos

Section administrative du site

Introduction

La FAT, tirant son nom de l'abréviation de l'anglicisme «File Allocation Table», soit table d'allocation de fichiers, est un format de partition permettant d'entreposer des fichiers autant sur une disquette qu'un disque dur. Il a été conçu à l'origine par Bill Gates et Marc McDonald pour le Microsoft Disk BASIC puis fusionner avec le QDOS (allant devenir le MS-DOS).

Format

A l'origine il existait seulement la FAT12 et la FAT16, mais il existe maintenant 5 formats différents :

Nom Description
FAT12 Ce type de FAT permet un maximum de 212, soit 4 096 unité d'allocation de taille fixe (entre 512 octets et 4 Kilooctets). Étant donné la petite taille qu'il supporte, il principalement utilisé pour le support des disquettes.
FAT16 Ce type de FAT permet un maximum de 216, soit 65 536 unité d'allocation de taille fixe (entre 2 Kilooctets et 64 Kilooctets). Ce format est utilisé pour la gestion des disques dur de tous les MS-DOS vendu, soit de la version 1 à la version 6.
FAT32 Ce type de FAT est apparut en même temps que Windows 95 et permet un support de 228 unité d'allocation de taille variable (entre 4 Kilooctets et 32 Kilooctets). La taille des fichiers ne peut toutefois dépasser la limite de 4 Gigaoctets.
VFAT Ce type de FAT est une évolution de la FAT (FAT12, FAT16 et FAT32), elle permet la gestion des noms long afin de ne plus être limité à 8 caractères de noms et 3 d'extensions, mais d'aller jusqu'à 255 caractères.
exFAT Ce type de FAT est destiné au système d'exploitation Windows CE version 6 ou supérieur.

Depuis que le DOS fut remplacé par le système d'exploitation Windows, on utilise maintenant la FAT (FAT16 ou FAT32) essentiellement pour des clefs USB.

Structure de la partition

Le premier secteur, appeler «BPB», pour l'abréviation de l'anglicisme «Bios Parameter Block», contient les informations sur la structure de la partition. Voici la structure du BPB :

Déplacement Taille Description
0 3 octets Ce champ contient les instructions assembleur 80x86 (JMP) vers un programme allant charger le système d'exploitation.
3 8 octets Ce champ contient le nom du programme ayant formaté le disque. Exemple «MSWIN4.1».
11 2 octets Ce champ permet d'indiquer le nombre d'octets par secteur, soit 512, 1 024, 2 048 ou 4 096.
13 1 octet Ce champ permet d'indiquer le nombre de secteurs par unité d'allocation, soit 1, 2, 4, 8, 16, 32, 64 ou 128.
14 2 octets Ce champ permet d'indiquer le nombre de secteurs réservés en incluant le secteur de démarrage. La valeur par est 32 pour la FAT32 et 1 pour les FAT12 et FAT16.
16 1 octets Ce champ permet d'indiquer le nombre de FATs sur le disque. La valeur par défaut est 2.
17 2 octets Ce champ permet d'indiquer la taille du répertoire principale (racine). Le calcul se fait en nombre d'entrées. La valeur par défaut de la FAT32 est 0.
19 2 octets Ce champ permet d'indiquer le nombre total de secteurs si la taille de champ est en 16 bits. La valeur par défaut est 0 pour la FAT32.
21 1 octet Ce champ permet d'indiquer le type de disque :
Valeur Description
F0h Cette valeur permet d'indiquer une unité de disquette.
F8h Cette valeur permet d'indiquer un disques dur
22 2 octets Ce champ permet d'indiquer la taille d'une FAT en secteurs. La valeur par défaut de la FAT32 est 0.
24 2 octets Ce champ permet d'indiquer le nombre de secteurs par piste.
26 2 octets Ce champ permet d'indiquer le nombre de têtes.
28 4 octets Ce champ permet d'indiquer le nombre de secteurs cachés. La valeur par défaut 0 si le disque n'est pas partitionné.
32 4 octets Ce champ permet d'indiquer le nombre total de secteurs si la taille du champ est en 32 bits. Ce champ est remplis si celui en 16 bits contient 0.
Si FAT12/FAT16 :
36 1 octet Ce champ permet d'indiquer l'identificateur du disque :
Valeur Description
00h Cette valeur permet d'indiquer un disque amovible.
80h Cette valeur permet d'indiquer un disque fixes.
37 1 octet Ce champ est réservé.
38 1 octet Ce champ contient la signature. La valeur par défaut est 29h.
39 4 octets Ce champ contient le numéro de série du disque.
43 11 octets Ce champ contient le nom du volume sur 11 caractères. S'il n'a pas de nom, il contiendra «NO NAME».
54 8 octets Ce champ permet d'indiquer le type de système de fichiers : FAT, FAT12, FAT16.
Si FAT32 :
36 4 octets Ce champ permet d'indiquer la taille d'une FAT en secteurs.
40 2 octets Ce champ permet d'indiquer les attributs du disque.
42 1 octet Ce champ permet d'indiquer la version majeure du système de fichiers. La valeur par défaut est 0.
43 1 octet Ce champ permet d'indiquer la version mineure du système de fichiers. La valeur par défaut est 0.
44 4 octets Ce champ permet d'indiquer le numéro de la première unité d'allocation du répertoire principale (racine).
48 2 octets Ce champ permet d'indiquer les informations complémentaires sur le système de fichiers. La valeur par défaut est 1.
50 2 octets Ce champ permet d'indiquer le numéro de secteur de la copie du secteur de démarrage.
52 12 octets Ce champ est réservé. La valeur par défaut est 0.
64 1 octet Ce champ permet d'indiquer l'identificateur du disque :
Valeur Description
00h Cette valeur permet d'indiquer un disque amovible.
80h Cette valeur permet d'indiquer un disque fixes.
65 1 octet Ce champ est réservé.
66 1 octet Ce champ contient la signature. La valeur par défaut est 29h.
67 4 octets Ce champ contient le numéro de série du disque.
71 11 octets Ce champ contient le nom du volume sur 11 caractères. S'il n'a pas de nom, il contiendra «NO NAME».
82 8 octets Ce champ permet d'indiquer le type de système de fichiers. La valeur est «FAT32».

Structure d'une entrée

Afin de répertorié chacun des fichiers contenu dans une partition FAT, des entrées sont contenus dans des secteurs (en raison de 16 entrées (de taille de 32 octets) par secteurs). Le répertoire principale (racine) contient contient donc de facteur de 16 entrées répertoriant des fichiers et des répertoires enfants. Voici la structure d'une de ses entrées :

Déplacement Taille Description
00h 8 octets Ce champ contient le nom du fichier. Si le nom ne contient pas 8 caractères, il faut le complété avec des espaces. Le premier caractère de ce champ peut avoir une signification spéciale. Voici la liste des valeurs spéciales :
Valeur Description
00h Cette valeur permet d'indiquer une entrée qu'il s'agit de la dernière entrée du groupe.
05h Cette valeur permet d'indiquer que le nom du fichier commence par la caractère ASCII E5h.
2Eh Cette valeur permet d'indiquer une entrée parent ou enfant de répertoire. Le nom peut être «.» ou «..».
E5h Cette valeur permet d'indiquer que le fichier a été supprimé. A ce stade, le fichier peut être restauré par un utilitaire (UNDELETE par exemple)
08h 3 octets Ce champ contient l'extension du fichier. L'extension peut être de 1 à 3 caractères et s'il est incomplet, il faut le complété avec des espaces.
0Bh 1 octet Ce champ contient l'attribut du fichier. Les attributs sont des bits pouvant être combiné avec les significations suivantes :
Bits Masque Description
0 01h Ce bit permet d'indiquer un attribut en lecture seulement.
1 02h Ce bit permet d'indiquer un attribut en fichier caché.
2 04h Ce bit permet d'indiquer un attribut en fichier système.
3 08h Ce bit permet d'indiquer un attribut en nom de volume.
4 10h Ce bit permet d'indiquer un attribut en sous-répertoire.
5 20h Ce bit permet d'indiquer un attribut d'archive.
6 40h Ce bit permet d'indiquer un attribut de périphérique. Utilisé uniquement pour des usages internes du système d'exploitation.
7 80h Ce bit n'est pas utilisé.
0Ch 1 octet Ce champ n'est pas utilisé.
0Dh 1 octet Ce champ permet d'indiquer l'heure de création en unité de 10 millisecondes (0 à 199)
0Eh 2 octets Ce champ permet d'indiquer l'heure de création entreposé sous forme de bits :
Bits Description
0 à 4 Ces bits permettent d'indiquer les secondes divisés par 2. Les valeurs sont entre 0 et 29
5 à 10 Ces bits permettent d'indiquer les minutes. Les valeurs sont entre 0 et 59
11 à 15 Ces bits permettent d'indiquer les heures. Les valeurs sont entre 0 et 23
10h 2 octets Ce champ permet d'indiquer la date de création entreposé sous forme de bits :
Bits Description
0 à 4 Ces bits permettent d'indiquer le jour du mois, soit des valeurs entre 1 et 31.
5 à 8 Ces bits permettent d'indiquer le mois. Ainsi, 1 = janvier, 2 = février, ..., 12 = décembre.
9 à 15 Ces bits permettent d'indiquer l'année à partir de 1980. Ainsi, 0 = 1980, 1 = 1981, 2 = 1982,..., 127 = 2107
12h 2 octets Ce champ permet d'indiquer la date de dernier accès entreposé sous forme de bits :
Bits Description
0 à 4 Ces bits permettent d'indiquer le jour du mois, soit des valeurs entre 1 et 31.
5 à 8 Ces bits permettent d'indiquer le mois. Ainsi, 1 = janvier, 2 = février, ..., 12 = décembre.
9 à 15 Ces bits permettent d'indiquer l'année à partir de 1980. Ainsi, 0 = 1980, 1 = 1981, 2 = 1982,..., 127 = 2107
14h 2 octets Ce champ permet d'indiquer l'index EA sous OS/2 et Windows NT et indique les 2 octets de poids fort de la première unité d'allocation sous la FAT32.
16h 2 octets Ce champ permet d'indiquer l'heure de la dernière modification entreposé sous forme de bits :
Bits Description
0 à 4 Ces bits permettent d'indiquer les secondes divisés par 2. Les valeurs sont entre 0 et 29
5 à 10 Ces bits permettent d'indiquer les minutes. Les valeurs sont entre 0 et 59
11 à 15 Ces bits permettent d'indiquer les heures. Les valeurs sont entre 0 et 23
18h 2 octets Ce champ permet d'indiquer la date de la dernière modification entreposé sous forme de bits :
Bits Description
0 à 4 Ces bits permettent d'indiquer le jour du mois, soit des valeurs entre 1 et 31.
5 à 8 Ces bits permettent d'indiquer le mois. Ainsi, 1 = janvier, 2 = février, ..., 12 = décembre.
9 à 15 Ces bits permettent d'indiquer l'année à partir de 1980. Ainsi, 0 = 1980, 1 = 1981, 2 = 1982,..., 127 = 2107
1Ah 2 octets Ce champ permet d'indiquer le numéro de la première unité d'allocation (FAT12 et FAT16); 2 octets de poids faible de ce numéro avec le FAT32.
1Ch 4 octets Ce champ permet d'indiquer la taille du fichier.


Dernière mise à jour : Mercredi, le 3 juin 2015