Fat16

Un article de ArchitecturePC.

Jump to: navigation, search

Les formats FAT12 et FAT16

Avant propos

Les deux variantes détaillées ici ne diffèrent que sur la taille des nombres enregistrés dans les entrées de la FAT. La valeur maximale de ces nombres dépend directement du nombre de clusters de la zone de données. Vu l'accroissement de des disques durs depuis quelques années, les FAT12 et les FAT16 sont probablement vouées à disparaitre. Le format FAT12 subsistera sans doute tant que les disquettes seront utilisées.

Le secteur de boot

Le secteur de boot contient des informations précises sur le système de fichiers pour mener à bien son exploitation.

Structure du secteur boot

<tbody> </tbody>
OFFSET DESCRIPTION TAILLE
+000h Instruction de saut au programme de démarrage 003h
+003h "MSWIN4.1" 008h
+00Bh Nombre d'octets par secteur du support 002h
+00Dh Nombre de secteurs par cluster 001h
+00Eh Nombre de secteurs reservés 002h
+010h Nombre de FATs dans la partition (valeurs recommandée : 2) 001h
+011h Nombre d'entrées dans le dossier racine 002h
+013h Nombre total de secteurs dans la partition (16 bits) 002h
+015h Type de média (0F8h : disque fixe, 0F0h : disque amovible) 001h
+016h Nombre de secteurs occupés par la FAT12 ou la FAT16 002h
+018h Nombre de secteurs par piste 002h
+01Ah Nombre de tetes 002h
+01Ch Nombre de secteurs sur le support précédant la partition 004h
+020h Nombre total de secteurs dans la partition (32 bits) 004h
+021h Numéro de lecteur pour INT 13h (00h ou 80h) 001h
+022h (reservé) défini à 0 001h
+023h Signature de boot 001h
+024h Numéro de série de la partition 004h
+028h Nom de la partition 00Bh
+033h Type de système de fichiers ("FAT12 ", "FAT16 " ou "FAT ") 008h
+03Bh Programme de démarrage 1C6h
+1FEh Nombre magique 002h

Nombre d'octets par secteur du support

Le support est généralement composé de secteurs. Le nombre d'octets contenus dans chaque secteur est conservé ici.

Nombre de secteurs par cluster

Le système de fichiers regroupe les secteurs consécutifs en unités indivisibles pour limiter la fragmentation. Ces groupes sont des clusters, et contiennent un nombre constant de secteurs.

Nombre de secteurs reservés

Les secteurs reservés sont l'ensemble des secteurs formés par le secteur de boot et les éventuels secteurs suivants. Il y a toujours au moins un secteur reservé.

Nombre de FATs dans la partition

La FAT peut exister en plusieurs exemplaires pour permettre le recouvrement de l'intégrité du système de fichiers en cas de besoin. Il est recommandé d'en mettre 2 copies.

Nombre d'entrées dans le dossier racine

Nombre maximal de fichiers et dossiers pouvant être stockés dans la racine du système du fichiers. Les entrées non utilisées existent mais ne contiennent aucune donnée.

Nombre total de secteurs dans la partition (16 bits)

Mot de 16 bits de poids faible contenant le nombre de secteurs contenus dans la totalité du système de fichiers.

Type de média (0F8h : disque fixe, 0F0h : disque amovible)

Détermine le type de support. (voir FAT32 File System Specification page 10 pour plus de détails).

Nombre de secteurs par piste

Pour les supports de type disque dur et disquettes, nombre de secteurs par piste du support.

Nombre de tetes

Pour les supports de type disque dur et disquettes, nombre de têtes normalement du support.

Nombre de secteurs sur le support précédant la partition

Nombre de secteurs précédant le système de fichiers sur le support.

Nombre total de secteurs dans la partition (32 bits)

Mot de 16 bits de poids fort contenant le nombre de secteurs contenus dans la totalité du système de fichiers.

Numéro de lecteur pour INT 13h (00h ou 80h)

Numéro de lecteur pour les services BIOS d'accès aux disques. (voir FAT32 File System Specification page 11 pour plus de détails). Cette information semble peu fiable puisqu'un disque dur peut etre mis en disque 81h après configuration en esclave et la mise en place d'un disque maitre. Le programme de démarrage de partition mis au point pour Titix et ce système de fichiers ne la prend pas en compte.

Signature de boot

Si cet octet vaut 29h, le secteur contient un programme de démarrage pour charger le système d'exploitation.

Numéro de série de la partition

Numéro de série du système de fichiers (voir FAT32 File System Specification page 11 pour plus de détails, en particulier la détermination de sa valeur). Utilisé pour détecter le changement de support dans le cas d'un support amovible.

Nom de la partition

Nom de la partition.

Type de système de fichiers

Contient le mot FAT, FAT12 ou FAT16. N'est pas utilisé pour déterminer le type du système de fichiers.

Nombre magique

Séquence d'octets 55h, AAh.

Le document FAT32 File System Specification met en garde sur le nombre magique. Il doit etre présent à l'offset 1FEh. Si le support est doté de secteurs de taille supérieure à 512 octets, ce nombre magique doit être répété aux deux derniers octets pour assurer sa validation lors d'un processus de démarrage. Nous n'avons cependant jamais rencontré de secteurs d'une taille différente de 512 octets. Cet avertissement est peut être à prendre au sérieux avec les CD-ROM amorçables du fait que leurs secteurs contiennent 2048 octets.

La FAT

Comme mentionné dans les généralités sur le système de fichiers FAT, les clusters et la FAT forment tous deux une liste ordonnée contenant autant d'entrées l'une que l'autre. Les fichiers forment une chaine d'entrées dans la FAT, et par correspondance entre ces entrées et les clusters associés permettent de reconstituer un fichier. Certaines valeurs particulières permettent de marquer la fin des fichiers, de gérer les défauts physiques du support, de déterminer si un cluster est libre, ou de reserver des clusters sans y enregistrer de fichier.

La FAT est basée sur l"indice 0 et est limitée en fonction de la taille de ses entrées.


Valeurs rencontrées dans les FAT12 et FAT16
FAT12 FAT16 Signification
000h 0000h

Cluster libre
001h - FEFh 0001h - FFEFh Prochain cluster de la chaine
FF0h - FF6h FFF0h - FFF6h Cluster reservé
FF7h FFF7h Cluster defectueux
FF8h - FFFh FFF8h - FFFFh Dernier cluster de la chaine


L'ensemble de nombres ne désignant pas un numéro de cluster diminue le nombre de clusters gérés par le système de fichiers.Une FAT12 gère un maximum de 4085 clusters et une FAT16 gère au plus 65525 clusters. En raison d'un grand nombre de programmes erronés pour manipuler les systèmes de fichiers FAT, il est conseillé d'éviter d'approcher ces limites. La spécification du système de fichiers FAT recommande de limiter une FAT12 à 4069 clusters et une FAT16 devra gérer entre 5001 et 65509 clusters.

Le repertoire racine

Le repertoire racine est exclu de la zone de données et est par conséquent une suite de secteurs reservés à cet effet. Le contenu de ces secteurs est le même qu'un repertoire classique décrit ci dessous.

Les repertoires

Les repertoires sont stockés exactement comme des fichiers et reconstitiés à partir de la chaine de clusters. Ils sont exclusivement reservés à l'usage du système d'exploitation en coopération avec le pilote gérant la FAT. Les éléments de 32 octets disposés les uns à la suite des autres sont donc accessibles comme une simple table.

Structure d'une entrée de repertoire

<tbody> </tbody>
Adresse Description Taille
+00h Nom de fichier de 8 catactères plus 3 caractères d'extension (format 8.3) 0Bh
+0Bh Attributs du fichier 01h
+0Ch Reservé (pour windows NT) 01h
+0Dh dixièmes de seconde de l'heure de création du fichier 01h
+0Eh Heure de création du fichier 02h
+10h Date de création du fichier 02h
+12h Date de dernier accès en lecture ou écriture) 02h
+14h 0 02h
+16h Heure du dernier accès en écriture 02h
+18h Date du dernier accès en ecriture 02h
+1Ah Numéro du permier cluster de la chaine 02h
+1Ch Taille du fichier en octets 04h

Les attributs de fichier

<tbody> </tbody>
Poids du bit Désignation
0 Lecture seule
1 Fichier caché
2 Fichier système
3 Identifiant de volume
4 Dossier
5 Fichier à archiver
6 0
7 0

Les noms de fichiers longs sont stockés dans les entrées de dossier et sont identifiés par la mise à 1 des 4 bits de poids faible. (vois plus loin pour plus de détails sur les noms de fichiers longs)

L'heure de création du fichier est enregistrée avec une précision de 2 secondes. Le nombre de dixièmes de secondes peut aller de 0 à 199 et ainsi améliorer la précision de l'heure au dixième de secondes près.