Chapitre – 3
Une approche logique des disques et du système d'exploitation
Un disque dur ne peut pas contrôler son propre matériel et nécessite deux programmes principaux pour effectuer ses opérations : le BIOS (Basic Input/Output System) et le DOS (ou système d'exploitation). Le système d'exploitation du disque n'interagit pas directement avec le matériel de l'ordinateur et le disque dur, mais nécessite le BIOS entre eux. C'est pourquoi le BIOS joue un rôle important dans un ordinateur.
BIOGRAPHIE
La tâche principale du BIOS est de fournir une interface standard entre le matériel ou les périphériques connectés à l'ordinateur et DOS. Le BIOS système est l’interface de plus bas niveau entre le matériel du système et les logiciels exécutés dessus. Il remplit plusieurs fonctions importantes dans la gestion de l'accès aux disques durs, telles que
- Routine d'interruption du BIOS
- Détection et configuration du disque dur
- Prise en charge du mode d'interface de disque dur
Pour permettre l'interopérabilité entre différents produits matériels et logiciels, le BIOS d'un système est personnalisé en fonction des besoins de son matériel et fournit un moyen standard pour que le logiciel puisse accéder au matériel. Ils sont appelés services BIOS et sont utilisés par de nombreux systèmes d’exploitation et programmes d’application. Ils fournissent une interface unique avec le disque dur, de sorte que les applications n'ont pas besoin de savoir comment communiquer avec chaque type de disque dur individuellement.
Les disques durs IDE/ATA standard sont configurés dans le BIOS à l’aide de divers paramètres du BIOS. Les programmes BIOS modernes sont capables de détecter les disques IDE/ATA modernes, de déterminer ces paramètres et de les configurer automatiquement. Le BIOS contrôle les types de modes d'interface qui peuvent être utilisés avec le disque dur, en interagissant avec le chipset système sur la carte mère et le bus d'E/S système.
Interface INT 13H et extensions INT 13H
L'interface principale du BIOS est l'interruption logicielle 13H, communément appelée INT 13H, où INT signifie interruption et 13H est le nombre 19 en notation hexadécimale.
Au cours de la phase de programmation de ce livre, nous étudierons et discuterons en détail l'utilisation des interruptions dans la programmation. L'interface Int13H prend en charge un certain nombre de commandes différentes qui peuvent être transmises au BIOS, qui les transmet ensuite au disque dur. L'interruption 13H inclut la plupart des activités que nous devons effectuer sur le disque, telles que la lecture, l'écriture, le formatage, etc.
Pour utiliser et travailler avec Int13H, le programme appelant doit connaître les paramètres spécifiques du disque dur et fournir aux routines l'adressage précis des têtes, des cylindres et des secteurs pour accéder au disque.
Le BIOS utilise la géométrie du disque dur configurée dans le programme de configuration du BIOS. L'interface Int13H alloue 24 bits pour spécifier la géométrie du disque, divisée comme suit :
- 10 bits pour le numéro de cylindre, soit 1024 cylindres au total.
- 8 bits pour le numéro de tête, soit 256 têtes au total.
- 6 bits pour le numéro de secteur, soit 63 secteurs au total.
Par conséquent, le nombre maximal possible de secteurs sur un disque peut être
= 1024 * 256 * 63
= 16515072
Comme nous pouvons le voir ici, l'interface INT 13H peut prendre en charge des disques contenant jusqu'à 16515072 secteurs à 512 octets par secteur. Par conséquent, la taille maximale du disque peut être,
= 16515072 * 512
= 8455716864 octets
~ 8 456 Go
Par conséquent, l'interface INT 13H peut prendre en charge une taille de disque d'environ 8,456 Go (ou 7,875 Gio).
De nos jours, la plupart des utilisateurs d'ordinateurs utilisent des disques durs avec des capacités bien supérieures à 8 Go, de sorte que l'interface INT 13H a définitivement atteint la fin de son utilité dans les systèmes informatiques modernes et a été remplacée par une interface plus récente appelée INT 13H Extensions. Cependant, INT 13H peut toujours être utilisé par DOS et certains autres systèmes d'exploitation plus anciens, ainsi qu'à d'autres fins de compatibilité.
Extensions Int 13H
Il est vraiment intéressant de noter que lorsque l’interface INT 13H a été conçue, personne ne s’attendait à avoir 8 Go d’espace de stockage sur un disque dur. Cependant, aujourd’hui, nous pouvons constater qu’un disque dur de 8 Go a une capacité beaucoup plus petite, même pour un ordinateur domestique.
L'ancienne norme présente une limitation importante : elle utilise 24 bits d'informations d'adressage et ne peut donc gérer que des disques contenant jusqu'à 16 515 072 secteurs à 512 octets par secteur, pour une capacité maximale de 8,456 Go (ou 7,875 Gio).
Le problème était donc d'élargir le chemin d'accès de 24 bits à quelque chose de plus grand, mais nous ne pouvions pas étendre l'interface BIOS INT13H existante car si nous essayions de le faire, de nombreux matériels et logiciels plus anciens cesseraient de fonctionner. Et dans la pratique, il n'y a aucun espoir d'obtenir une place respectable dans le monde informatique avec beaucoup de matériel et de logiciels plus anciens qui ne fonctionnent pas avec votre développement.
Une nouvelle interface a donc été développée pour remplacer Int13H. Ces routines sont appelées extensions Int13H. Cette nouvelle interface utilise 64 bits au lieu de 24 bits pour l'adressage et autorise une taille de disque dur maximale de 9,4 * 1021 octets, soit 9,4 billions de gigaoctets.
Nous apprendrons à utiliser les extensions INT 13H et INT 13H dans la section programmation de ce livre. Il existe un certain nombre d’autres limitations de taille qui ont eu lieu au début. Certaines des limitations logiques et physiques les plus courantes ont été décrites ci-dessous :
La limite de 2,1 Go
Cette limite de taille a été observée dans certains BIOS plus anciens qui n'allouent que 12 bits pour le champ de la RAM CMOS qui fournit le nombre de cylindres. Donc ce nombre peut être au maximum 111111111111B (nombre binaire maximal possible sur 12 bits) ce qui est égal à 4095. De cette façon la taille maximale du disque à 16 têtes, accessible, sera :
= 4095 * 16 * 63 * 512 octets
= 2113413120 octets sont accessibles.
La limite de 33,8 Go
Cette barrière de taille de disque dur a été remarquée pour la première fois au début de 1999. Les grands disques rapportaient 16 têtes, 63 secteurs/piste et 16 383 cylindres. De nombreux BIOS calculent un nombre réel de cylindres en divisant la capacité totale par 16*63.
Pour les disques de plus de 33,8 Go, cela entraîne un nombre de cylindres supérieur à 65 535. Dans ce cas particulier, certaines versions du BIOS Award ne peuvent pas gérer les disques comportant plus de 65 535 cylindres. Maintenant, le BIOS se bloque ou plante. Étant donné que les paramètres du disque dur utilisent généralement 16 têtes et 63 secteurs, cela se traduit par une capacité d'environ 33,8 Go ou 31,5 Gio avant que des problèmes ne surviennent.
La solution consiste à mettre à jour le BIOS ou à utiliser un cavalier pour que le lecteur paraisse plus petit.
Spécifications ATA pour les disques IDE - La limite de 137 Go
L'ancienne spécification ATA ne permet pas l'accès à un disque supérieur à 137 Go. En fait, il n'utilise que 28 bits pour spécifier un numéro de secteur. Cependant, ATA-6 définit une extension avec un numéro de secteur de 48 bits.
La limite de taille du disque a été générée avec la combinaison d'un maximum de 65 536 cylindres comptant de 0 à 65 535, de 16 têtes comptant de 0 à 15 et de 255 secteurs par piste comptant de 1 à 255, la capacité totale maximale du disque,
= 65535 * 16 * 255 Secteurs
= 267386880 Secteurs
= 136902082560 octets (secteur de 512 octets chacun)
~ 137 Go
Prise en charge du BIOS IDE à deux et quatre disques
Aujourd'hui, la plupart des programmes BIOS modernes prennent en charge la détection automatique du disque dur, ce qui permet au BIOS d'interroger chaque disque dur pour déterminer sa géométrie logique, les modes de transfert pris en charge et d'autres informations. Cela peut être fait au moment de l'installation ou de manière dynamique à chaque démarrage de la machine, selon le BIOS.
Le BIOS système fournit une prise en charge native des disques durs IDE/ATA. Il peut donc y avoir plusieurs paramètres qui peuvent être définis pour indiquer au BIOS quels disques durs sont présents dans le système et comment les contrôler. Chaque disque dur du système aura ses propres paramètres, il y en a donc un pour le maître principal et un pour l'esclave principal, et ainsi de suite. Cependant, les disques durs SCSI sont configurés via leur adaptateur hôte et le BIOS SCSI intégré.
Étant donné que les disques durs de plus de 8 Go ne peuvent pas être décrits à l'aide des paramètres de géométrie BIOS IDE/ATA traditionnels, la détection automatique dynamique est la méthode standard de configuration des disques modernes, en particulier pour les systèmes informatiques plus anciens. Cependant, l'utilisateur peut toujours définir manuellement certains paramètres de l'unité.
Vous trouverez ci-dessous les paramètres généralement trouvés dans le programme de configuration du BIOS pour la configuration des disques durs IDE/ATA. Bien que sur les systèmes modernes, certains des anciens paramètres de compatibilité puissent ne plus être présents :
- Type de disque : Utilisé à l'origine pour permettre à l'utilisateur de choisir son disque dur dans une liste prédéfinie, mais est désormais utilisé pour contrôler le réglage automatique ou manuel des paramètres du lecteur.
- Taille : Taille du disque dur en mégaoctets décimaux. Il est calculé en fonction d'autres paramètres tels que les cylindres, les têtes et les secteurs, etc.
- Cylindres : Le nombre de cylindres logiques sur le disque. Têtes : le nombre de têtes logiques sur le disque.
- Secteurs : le nombre de secteurs logiques, chacun d'une taille de 512 octets, dans chaque piste logique du disque. En règle générale, les disques durs modernes disposent de 63 secteurs sur une seule piste.
- Précompensation d'écriture : il s'agit d'un paramètre de compatibilité qui spécifie les ajustements d'écriture du numéro de cylindre qui doivent être effectués pour les disques beaucoup plus anciens.
- Zone d'atterrissage (têtes de stationnement) : la zone d'atterrissage est le cylindre où les têtes sont garées par le BIOS pour éviter la perte de données ou la création de secteurs défectueux, lorsque le lecteur est hors tension. Étant donné que les disques durs modernes garent automatiquement leurs têtes, cela est rarement nécessaire de nos jours.
- Mode de traduction : mode de traduction du BIOS utilisé pour prendre en charge les disques durs de plus de 504 Mo.
- Mode bloc : pour contrôler la capacité du BIOS à effectuer des transferts de disque en mode bloc.
- Mode E/S planifiées (DMA) : mode E/S planifiées ou mode DMA utilisé pour effectuer des transferts vers et depuis le disque dur.
- Mode de transfert 32 bits : contrôle l’utilisation de transferts de données 32 bits hautes performances.
Limitations des systèmes de fichiers
Chaque système de fichiers prend en charge une taille de volume maximale, une taille de fichier maximale et un nombre maximal de fichiers par volume.
Désormais, par exemple, les volumes FAT16 et FAT32 sont généralement limités respectivement à 4 Go et 32 Go (généralement). Il existe certaines limitations liées aux systèmes de fichiers FAT dont vous devez être conscient, énumérées ci-dessous :
- FAT12 : les volumes FAT inférieurs à 16 Mo sont formatés en FAT12. Il s'agit du type FAT le plus ancien et il utilise un binaire 12 bits pour contenir les numéros de cluster. Un volume formaté à l'aide de FAT12 peut contenir un maximum de 4 086 clusters, ce qui équivaut à 2 12 moins quelques valeurs réservées à l'utilisation dans FAT. (Nous en discuterons en détail dans la structure du disque logique fournie plus loin dans ce chapitre.) FAT12 est donc plus adapté aux petits volumes. Il est utilisé sur les disquettes et les partitions de disque dur inférieures à environ 16 Mo.
- FAT16 : FAT16 utilise un nombre binaire de 16 bits pour contenir les numéros de cluster. Un volume utilisant FAT16 peut contenir un maximum de 65 526 clusters, ce qui équivaut à 2 16 moins quelques valeurs réservées à l'utilisation dans FAT. (Nous en discuterons en détail dans la structure du disque logique fournie plus loin dans ce chapitre.) FAT16 est utilisé pour les volumes de disque dur d'une taille comprise entre 16 Mo et 2 048 Mo. Les volumes FAT16 supérieurs à 2 Go ne sont pas accessibles par les ordinateurs exécutant MS-DOS, Windows 95/98/ME et de nombreux autres systèmes d'exploitation. Cette limitation se produit parce que ces systèmes d’exploitation ne prennent pas en charge les tailles de cluster supérieures à 32 Ko, ce qui entraîne la limite de 2 Go. (Voir la limite de cluster fournie plus loin dans ce chapitre.)
- FAT32 : en théorie, les volumes FAT32 maximum peuvent atteindre 2 048 Go (environ 2 téraoctets). FAT32 est pris en charge par la version OEM SR2 de Windows 95, ainsi que par Windows 98/ME. FAT32 utilise un numéro de cluster binaire de 28 bits (rappelez-vous ! pas 32, car 4 des 32 bits sont « réservés »). Théoriquement, FAT32 peut donc gérer des volumes avec plus de 268 millions de clusters (en réalité 268 435 456 clusters) et prend en charge des disques jusqu'à 2 To. Cependant, pour ce faire, la taille du FAT devient très grande. (Nous en discuterons dans les rubriques fournies plus loin dans ce chapitre.)
Le tableau suivant montre la comparaison des types de FAT.
NTFS : NTFS signifie « New Technology File System ». Il est utilisé par Windows 2000/XP. En théorie, la taille maximale d'une partition NTFS est de (2 64 – 1) clusters.
Une description détaillée du système de fichiers NTFS dépasse le cadre de ce livre, mais le tableau suivant répertorie certaines de ses limitations :
Description
|
Limite |
Taille maximale du fichier
|
16 exaoctets – 1 Ko (2 64 octets – 1 Ko) |
Taille maximale du volume
|
(2 64 – 1) groupes |
Fichiers (et dossiers) par volume
|
4 294 967 295 (2 32 – 1 ) Mouches et chemises |
Bouquet
La plus petite unité d'espace sur le disque dur à laquelle un logiciel peut accéder est le secteur, qui contient 512 octets. Il est possible d'avoir un système d'allocation de disque où chaque fichier se voit attribuer autant de secteurs individuels que nécessaire. Par exemple, un fichier de 1 Mo nécessiterait environ 2 048 secteurs individuels pour stocker ses données.
Dans le cas du système de fichiers FAT, ou plutôt dans la plupart des systèmes de fichiers, les secteurs individuels ne sont pas utilisés. Il y a plusieurs raisons de performances à cela. Lorsque DOS écrit des informations sur le disque dur, il n'alloue pas d'espace secteur par secteur, mais utilise une nouvelle unité de stockage appelée cluster.
FAT a été conçu il y a de nombreuses années et est un système de fichiers simple et ne peut pas gérer les secteurs individuels. Au lieu de cela, FAT regroupe les secteurs en blocs plus grands appelés clusters ou unités d'allocation.
Un cluster est la plus petite unité d'espace disque pouvant être allouée à un fichier. C’est pourquoi les clusters sont souvent appelés unités d’allocation. Il peut être très difficile de gérer le disque lorsque les fichiers sont divisés en morceaux de 512 octets.
Un volume de disque de 20 Go utilisant des secteurs de 512 octets gérés individuellement contiendrait plus de 41 millions de secteurs individuels, et le suivi de cette quantité d'informations prend du temps et nécessite beaucoup de ressources. Cependant, certains systèmes d’exploitation allouent de l’espace aux fichiers secteur par secteur, mais ils nécessitent une intelligence avancée pour le faire correctement.
Les clusters sont l'espace minimum alloué par DOS lors du stockage d'informations sur le disque. Même le stockage d'informations d'un seul octet sur le disque nécessite au moins une zone de cluster sur la surface du disque.
Si un cluster peut stocker 512 octets d’informations, deux clusters seront nécessaires pour stocker 513 octets. À chaque fichier doit être attribué un nombre entier de clusters. Cela signifie que si un volume utilise des clusters contenant 4 096 octets, un fichier de 610 octets utilisera un cluster, soit 4 096 octets sur le disque, mais un fichier de 4 097 octets utilisera deux clusters, soit 8 192 octets sur le disque.
C'est pourquoi la taille du cluster est si importante pour garantir une utilisation optimale du disque. Nous pouvons donc comprendre que plus la taille du cluster est grande, plus l’espace est gaspillé.
La figure ci-dessous montre les propriétés d'un fichier nommé BINARY.C et clarifie le fait de l'espace utilisé par le fichier sur le disque. La taille réelle du fichier est de 610 octets, mais comme le cluster unique est de 4 096 octets, le fichier utilise un cluster (4 096 octets) sur le disque.
Un cluster peut être constitué d’un ou de plusieurs secteurs. Cela dépend du type de disque que vous utilisez. Étant donné qu'un cluster peut être constitué de plusieurs secteurs, l'utilisation de clusters comme unités d'allocation réduit la taille de la table d'allocation de fichiers que DOS utilise pour conserver les informations sur l'espace disque utilisé et vide.
La taille du cluster est principalement déterminée par la taille du volume du disque. Si ce n'est pas strictement parlant, les volumes plus importants utilisent généralement des tailles de cluster plus grandes. Pour les volumes de disque dur, la taille de chaque cluster varie de 4 secteurs (2 048 octets) à 64 secteurs (32 768 octets).
Les disquettes utilisent des clusters beaucoup plus petits et, dans certains cas, utilisent un cluster aussi grand qu'un seul secteur. Les secteurs d’un cluster sont continus, donc chaque cluster est un bloc continu d’espace disque.
La taille du cluster et donc la taille de la partition ou du volume, parce qu'elles sont directement liées, ont un impact majeur sur les performances et l'utilisation du disque. La taille du cluster est déterminée lorsque le volume de disque est partitionné.
Il existe certains utilitaires comme Partition Magic qui peuvent modifier la taille du cluster d'une partition existante dans les limites de conditions spécifiques, mais dans les cas généraux, une fois que vous avez sélectionné la partition et la taille du cluster, elles sont fixes.
Comme nous l'avons dit précédemment, le numéro de cylindre ou de piste commence à 0 et le premier numéro de secteur est toujours considéré comme 1. Une autre chose à retenir est que le premier numéro de cluster est toujours considéré comme 2.
Taille du cluster
Les clusters sont utilisés pour allouer une zone de stockage uniquement à la zone de données. La FAT et la zone de répertoire ne sont pas allouées en fonction de la taille du cluster. Sur un disque qui utilise des secteurs de 512 octets, un cluster de 512 octets contient un secteur, tandis qu'un cluster de 4 Ko contient 8 secteurs.
Les tableaux suivants répertorient les tailles de cluster par défaut utilisées par DOS pour différents formats de disque. Cependant, la taille du cluster peut différer de la taille par défaut dans certaines circonstances :
Lecteur de disquette (FDD) |
Types d'unités |
Secteurs/Groupes |
Taille totale du cluster en octets (secteurs de 512 octets chacun) |
Disque dur 5,25" 360 Ko |
2 secteurs |
1.024 |
Disque dur 5,25" 1,2 Mo |
1 secteur |
512 |
Disque dur 3,5" 720 Ko |
2 secteurs |
1.024 |
Disque dur 3,5" 1,44 Mo |
1 secteur |
512 |
Disque dur 3,5" 2,88 Mo |
2 secteurs |
1.024 |
FAT16, FAT32 et NTFS utilisent chacun des tailles de cluster différentes en fonction de la taille de la partition, et chaque système de fichiers dispose d'un nombre maximal de clusters qu'il peut prendre en charge. Plus la taille du cluster est petite, plus un disque stocke efficacement les informations, car l'espace inutilisé au sein d'un cluster ne peut pas être utilisé par d'autres fichiers.
Le tableau suivant indique les tailles de cluster par défaut pour les partitions de système de fichiers FAT16, FAT32 et NTFS. FAT 32 permet un stockage beaucoup plus efficace et l'utilisation de disques durs plus grands. FAT 32 bits n'est compatible qu'avec Windows 95 OSR-2 et Windows 98/ME. FAT 16 est pris en charge par MS-DOS, Windows 3.1, Windows 95 et Windows NT. Les systèmes d'exploitation Windows 2000/XP utilisent le système de fichiers NTFS.
Remarque : ici, 1 Kio est écrit pour 1 kilo-octet binaire, ce qui signifie que 1 Kio est égal à 1 024 octets ou nous pouvons dire que deux secteurs de 512 octets sont égaux à 1 Kio.
À mesure que la taille de la partition FAT16 augmente, le gaspillage d’espace disque augmente également. L'utilisation de FAT32 réduit la taille du cluster et fournit ainsi un stockage efficace. Bien que FAT32 permette l'utilisation de disques durs plus grands et de tailles de cluster nettement plus petites, l'utilisation de FAT32 implique un facteur de performance important, à savoir que les disques durs massifs de plusieurs dizaines de gigaoctets ont rendu FAT32 essentiel pour les systèmes plus récents. Au contraire, nous pouvons dire que vous n’avez souvent plus le choix pratique entre FAT16 et FAT32.
Considérons une partition de 2 048 Mo, la plus grande que FAT16 puisse prendre en charge. Si cette partition est définie sur FAT16, vous obtiendrez une table d'allocation de fichiers contenant 65 526 clusters, chaque cluster occupant 32 Ko d'espace disque.
La grande taille du cluster entraînera en réalité un gaspillage important d'espace disque. Il est donc recommandé d'utiliser FAT32 sur cette partition, ce qui entraînera une réduction de la taille du cluster de 32 Ko à 4 Ko.
En effet, cela réduira considérablement l’espace disque disponible, peut-être jusqu’à 30 %, et libérera potentiellement des centaines de mégaoctets d’espace disque auparavant gaspillé. C’est généralement la bonne chose à faire dans cette situation. Cependant, cela a un autre côté positif. Nous n’obtenons pas cette petite taille de cluster gratuitement.
Étant donné que chaque cluster est plus petit, il doit y en avoir davantage pour couvrir la même quantité de disque. Ainsi, au lieu de 65 526 clusters, nous en aurons désormais 524 208.
De plus, les entrées FAT dans FAT32 ont une largeur de 32 bits (chaque entrée fait 4 octets), tandis que les entrées FAT16 ont une largeur de 16 bits (chaque entrée fait 2 octets). Le résultat final est que la taille de FAT est 16 fois plus grande pour FAT32 que pour FAT16. Le tableau suivant résume :
FAT 16 et FAT 32 pour un volume de disque de 2 048 Mo |
Type de graisse |
FAT16 |
FAT32 |
Taille du cluster |
32 Ko |
4 Ko |
Nombre d'entrées FAT |
65 526 |
524.208 |
Taille de la graisse |
131052 octets
(~ 128 Ko) |
2096832 octets
(~ 2 Mo) |
Si nous augmentons la taille du volume FAT32 de 2 Go à 8 Go, la taille du FAT augmente d'environ 2 Mio à 8 Mio. L’importance de ceci n’est pas que le volume FAT32 devra gaspiller plusieurs mégaoctets d’espace disque pour accueillir le FAT. Car c'est seulement en procédant ainsi que vous économisez beaucoup plus d'espace qu'en réduisant la taille du FAT. Le vrai problème est que le FAT contient tous les pointeurs de cluster pour chaque fichier du volume. Augmenter considérablement la taille de la FAT peut avoir un impact négatif sur la vitesse du système.
C'est pour cette raison qu'il est important de limiter la taille de la table d'allocation de fichiers à un nombre raisonnablement grand. En fait, dans la plupart des cas, il s’agit de trouver un équilibre entre la taille du cluster et la taille du FAT. Une bonne illustration de cela est la sélection de la taille des clusters effectuée par FAT32 lui-même.
Étant donné que FAT32 peut gérer environ 268 millions de clusters maximum, la taille de cluster de 4 Ko est conceptuellement capable de prendre en charge un volume de disque de 1 Tio (1 024 Gio), mais le problème est que la taille de FAT atteindrait alors plus de 1 Go, soit 268 millions de fois 4 octets par entrée.
Pour cette raison, FAT32 utilise uniquement des clusters de 4 Kio pour les volumes jusqu'à 8 Gio, puis des clusters plus grands sont utilisés comme indiqué dans le tableau fourni ci-dessus, pour les tailles de cluster. La taille de partition maximale prise en charge par FAT32, qui est officiellement déclarée, est de 2 048 Gio (2 Tio).
Structure logique d'un disque dur
Fondamentalement, nous pouvons diviser la structure logique du disque dur en cinq termes logiques suivants :
- Enregistrement de démarrage principal (MBR)
- Enregistrement de démarrage DOS (DBR)
- FAT (tables d'allocation de fichiers)
- Répertoire principal
- Zone de données
La figure suivante représente la disposition conceptuelle de ces termes logiques qui forment la structure logique d'un disque dur :
Structure logique d'un disque dur
Le Master Boot Record (MBR), ou parfois appelé Master Partition Table (MPT), contient un petit programme pour charger et démarrer la partition active (ou amorçable) à partir du disque dur. Le Master Boot Record contient des informations sur les quatre partitions principales du disque dur, telles que le secteur de démarrage, le secteur de fin, la taille de la partition, etc.
Le MBR est situé dans le secteur absolu 0 ou nous pouvons dire dans le cylindre 0, la tête 0 et le secteur 1 et s'il y a plusieurs partitions dans le disque, il y a des Extended Master Boot Records, situés au début de chaque volume de partition étendue (voir la figure ci-dessous).
Le MBR est créé sur le disque dur en exécutant la commande DOS FDISK.EXE. Cependant, il existe de nombreux autres logiciels disponibles pour effectuer la même tâche. En utilisant FDISK, n’importe laquelle de ces partitions peut être rendue active ou amorçable.
Cela permet au secteur de démarrage de la partition active de recevoir le contrôle lorsque le système démarre. Comme la disquette ne contient aucune partition, il n'y a donc pas de MBR sur une disquette.
Étant donné que DOS utilise un seul alphabet majuscule pour nommer une partition, le nombre maximal de tous les types de partitions ensemble autorisés par DOS est de 24, en commençant par la lettre de lecteur C (C:) jusqu'à la lettre de lecteur Z (Z:). Par conséquent, même s’il existe plusieurs disques durs physiques, le nombre total de partitions de tous les disques ne peut pas dépasser 24.
Après l'autotest de mise sous tension (POST), le BIOS charge le MBR (Master Boot Record) du disque dur en mémoire, puis l'exécute. Tout d'abord, le MBR vérifie si le disque dur contient une partition active, puis il charge l'enregistrement de démarrage DOS (DBR) en mémoire et passe le contrôle au code de démarrage du système d'exploitation, puis le code d'enregistrement de démarrage du système d'exploitation charge le reste du système d'exploitation en mémoire.
Format de l'enregistrement de démarrage principal
Format de l'enregistrement de démarrage principal
Nous pouvons partitionner le disque dur en plusieurs lecteurs logiques auxquels une lettre de lecteur est généralement attribuée par DOS. Une seule partition à la fois peut être marquée comme partition active (ou amorçable).
Format de l'enregistrement de démarrage principal
Le Master Boot Record est limité à quatre entrées dans la table de partition principale. Cependant, l'emplacement du Master Boot Record étendu peut être obtenu à l'aide du Master Boot Record qui contient la table de partition étendue, dont le format est exactement le même que la table de partition principale, sauf qu'il n'y a pas de code de démarrage.
Dans le Master Boot Record étendu, cet espace de 446 octets est normalement réservé au code de démarrage et reste vide. Les 512 octets du Master Boot Record sont répartis comme suit, comme indiqué dans le tableau :
Compenser |
Description |
Mesure |
000H |
Initial Program Loader (IPL), code exécutable (assure le premier démarrage de l'ordinateur) |
446 octets |
1BEH |
Première entrée de partition (voir tableau suivant) |
16 octets |
1CEH |
Entrée de la deuxième partition |
16 octets |
1DEH |
Entrée de la troisième partition |
16 octets |
1EEH |
Quatrième entrée de partition |
16 octets |
1FEH |
Marqueur exécutable ou signature de secteur de démarrage ou numéro magique (AAH 55H) |
2 octets |
Total = 512 octets |
Toutes les partitions étendues doivent exister dans l’espace réservé par l’entrée de partition étendue. Seules deux des partitions étendues sont destinées à être utilisées, la première comme partition normale et la seconde comme une autre partition étendue, le cas échéant. Ainsi, à l’aide d’une table de partition principale, nous pouvons obtenir l’emplacement d’une autre table de partition principale étendue à côté d’elle, le cas échéant.
Format d'entrée de la table de partition
Le format de l'entrée de la table de partition de n'importe quelle partition dans MBR a été donné dans le tableau suivant. Chaque entrée de partition de n'importe quel MBR peut être divisée en octets suivants avec leurs significations spécifiques :
Octet indicateur de type de démarrage (1 octet) : si cet octet est 00H, cela signifie que la partition n'est pas active, et si l'octet est 80H, cela signifie que la partition est une partition active ou amorçable. Bien que la présence d'un autre octet ne soit pas attendue, si un autre octet est présent, cela peut être dû à une corruption de la table de partition ou à une attaque de VIRUS dans la table de partition.
Numéro initial de cylindre, de tête et de secteur de la partition (3 octets) : Lorsque nous calculons le CHS (cylindre, tête et secteur) d'un disque, les CHS physiques sont comptés comme suit :
- Le secteur physique est compté à partir de 1.
- La tête physique est comptée à partir de 0.
- Le cylindre physique est compté à partir de 0 (voir le chapitre précédent pour plus de détails)
- L'octet au décalage 01H représente le numéro d'en-tête de départ en hexadécimal pour la partition.
Les 6 bits les moins significatifs de l'octet au décalage 02H forment le numéro de secteur de départ de la partition, et la combinaison des 2 bits restants (comme les deux bits les plus significatifs) plus 8 bits d'un autre octet au décalage 03H (les 8 bits les moins significatifs restants du nombre de 10 bits) forment le numéro de cylindre de départ de la partition.
Compenser |
Sens |
Mesure |
Description |
00:00 heures |
Octet indicateur de type de démarrage |
1 octet |
Si l'octet est 00H, la partition est inactive et si l'octet est 80H , la partition est active (ou amorçable) |
01H |
Numéro d'en-tête du début de la partition |
1 octet |
Numéro de tête initial de la partition dans le système hexadécimal |
02h00 |
Secteur de départ de la partition et numéro de cylindre |
2 octets |
6 bits du premier octet forment le numéro de secteur initial, et la combinaison des 2 bits restants (comme les deux bits les plus significatifs) plus 8 bits d'un autre octet (les 8 bits les moins significatifs restants du nombre de 10 bits) forment le numéro de cylindre initial de la partition. |
04h00 |
Indicateur de système de fichiers Octet |
1 octet |
Octet indicateur du système de fichiers dans le système hexadécimal (voir le tableau ci-dessous pour les indicateurs) |
05h00 |
Numéro d'en-tête de la fin de la partition |
1 octet |
Numéro d'en-tête de partition final dans le système hexadécimal |
06h00 |
Secteur d'extrémité de la partition et numéro de cylindre |
2 octets |
6 bits du premier octet forment le numéro de secteur final, et la combinaison des 2 bits restants (comme les deux bits les plus significatifs) plus 8 bits d'un autre octet (les 8 bits les moins significatifs restants du nombre de 10 bits) forment le numéro de cylindre final de la partition. |
08h00 |
Numéro de secteur relatif du début de la partition |
4 octets |
Nombre de secteurs entre le MBR et le premier secteur de la partition |
0CH |
Nombre de secteurs dans la partition |
4 octets |
Nombre de secteurs dans la partition |
Total = 16 octets |
Le codage du cylindre et du secteur a été fourni dans l'exemple d'étude de table de partition d'échantillon réalisée ci-dessous.
Octet indicateur du système de fichiers (1 octet) : l'octet indicateur du système de fichiers au décalage 04H représente le système de fichiers de cette partition. Le tableau répertoriant les octets indicateurs du système de fichiers pour différents systèmes de fichiers est fourni plus loin dans ce chapitre.
Numéro de cylindre de fin – tête – secteur de partition (3 octets) : Le codage est le même que le numéro de cylindre de début – tête – secteur de partition.
Numéro de secteur relatif de démarrage de la partition (4 octets) : nombre de secteurs entre le MBR et le premier secteur de la partition au système hexadécimal.
Numéro de secteur de partition (4 octets) : Nombre de secteurs dans la partition en système hexadécimal.
Il faut toujours se rappeler que les numéros de cylindre, de tête et de secteur sont ceux qui doivent être transmis au BIOS. Ainsi, si le BIOS utilise la traduction (mode LBA ou prise en charge des extensions INT 13H), les valeurs peuvent ne pas représenter les valeurs CHS physiques. Pour les disques durs de grande taille (plus de 8,4 Go), les valeurs CHS peuvent ne pas être valides. Ces valeurs doivent généralement être ignorées et des valeurs absolues de l'industrie doivent être utilisées à la place.
La figure suivante montre le MBR d'un disque avec des partitions FAT32. La zone de 64 octets en surbrillance au bas de la figure représente la table de partition principale du MBR.
Le codage du CHS initial et final est le suivant :
- Au décalage 00H, 80 (hexadécimal) indique que la partition est active.
- Au décalage 01H, 01 (hexadécimal) représente le numéro de tête de départ = 1.
- La combinaison de deux octets aux décalages 02H et 03H forme le secteur de départ et le numéro de cylindre de la partition selon le codage donné ci-dessous :
MBR d'un disque avec des partitions FAT32
Donc CHS initial de la partition = 0-0-1.
De même, le numéro de tête pour la fin de la partition est FE (hexadécimal), qui est 254, et le codage pour le cylindre de fin et le numéro de secteur de la partition ont été donnés dans le tableau suivant :
Donc le CHS final de la partition = 701-254-63.
L'octet 0B (hexadécimal) au décalage 04H est l'octet indicateur du système de fichiers pour la partition. L'octet 0B (H) indique que la partition possède le système de fichiers FAT32. Le tableau des différents systèmes de fichiers et de leurs octets indicateurs de système de fichiers est fourni ci-dessous :
Octet indicateur du système de fichiers en hexadécimal |
Description de la partition/du système de fichiers |
00:00 heures |
Entrée de table de partition inutilisée/vide
(rappelez-vous, ceci n'est pas utilisé pour désigner une zone inutilisée sur le disque, mais marque une entrée de table de partition inutilisée) |
01H |
DOS 12 bits fat
(le type 01H est destiné aux partitions jusqu'à 15 Mo) |
02h00 |
XENIX : système de fichiers racine |
03h00 |
Système de fichiers XENIX /usr (obsolète)
(XENIX est une ancienne partie d'Unix V7. Le système d'exploitation Microsoft XENIX a été annoncé en août 1980. Il s'agissait d'une version commerciale portable du système d'exploitation Unix pour les processeurs Intel 8086, Zilog Z8000, Motorola M68000 et Digital Equipment PDP-11. Microsoft a présenté XENIX 3.0 en avril 1983. SCO a livré son premier XENIX pour les processeurs 8088/8086 en 1983.) |
04h00 |
FAT 16 bits, DOS 3.0+ (taille de partition < 32 Mo)
(Certaines anciennes versions de DOS avaient un bug qui nécessitait que cette partition soit placée dans les 32 premiers Mo physiques du disque dur.) |
05h00 |
DOS étendu ( volume étendu DOS 3.3+)
Il prend en charge les disques d'une capacité maximale de 8,4 Go. Avec ce type 05H, DOS/Windows n'utilisera pas l'appel BIOS étendu, même s'il est disponible.) |
06h00 |
FAT 16 bits, DOS Big, DOS 3.31+ (taille de partition >= 32 Mo)
(Les partitions font au maximum 2 Go pour DOS et Windows 95/98 avec un maximum de 65 536 clusters pour chaque cluster, au maximum 32 Ko. Windows NT peut créer jusqu'à 4 Go de partition FAT16 en utilisant des clusters de 64 Ko.) |
07h00 |
OS/2 IFS (Installable File System) (HPFS est l'exemple le plus connu de ce système de fichiers. OS/2 ne considère que les partitions avec l'ID 7 pour tout IFS installé ; c'est pourquoi le package EXT2 IFS inclut un pilote de périphérique spécial « filtre de partition Linux » pour tromper OS/2 en lui faisant croire que les partitions Linux ont l'ID 07.) |
07h00 |
Unix avancé |
07h00 |
Windows NTFS |
07h00 |
QNX2.x (avant 1988)
(Pour le système de fichiers actuel de type de partition 07H, vous devez inspecter l'enregistrement de démarrage de la partition) |
08h00 |
OS/2 (v1.0 à v1.3 uniquement) |
08h00 |
Partition de démarrage AIX
[AIX (Advanced Interactive Executive) est la version IBM d'Unix] |
08h00 |
Unité divisée |
08h00 |
Partition DELL répartie sur plusieurs disques |
08h00 |
Commodore DOS |
08h00 |
QNX 1.x et 2.x
(« qny » selon les partitions QNX) |
09h00 |
Partition de données AIX |
09h00 |
Système de fichiers cohérent
[Coherent était un système d'exploitation de type UNIX pour les systèmes 286-386-486, commercialisé par la société Mark Williams dirigée par Bob Swartz. Il était réputé pour sa bonne documentation. Il a été introduit en 1980 et est décédé le 1er février 1995. Les dernières versions sont la V3.2 pour 286-386-486 et la V4.0 (mai 1992, en mode protégé) pour 386-486 uniquement. Il a été vendu au détail pour 99 $ l'exemplaire et la rumeur dit qu'il s'est vendu à 40 000 exemplaires. Une partition cohérente doit être primaire.] |
09h00 |
QNX 1.x et 2.x (« qnz » selon les partitions QNX ) |
0aH |
OS/2 Boot Manager
(OS/2 est le système d'exploitation conçu par Microsoft et IBM pour succéder à MS-DOS) |
0aH |
Partition de swap cohérente |
0aH |
OPUS
(Serveur parallèle ouvert Unisys) |
0bH |
WIN95 OSR2 32 bits FAT
(OSR2 signifie « OEM Service Release 2 » de Microsoft. Il est destiné aux partitions jusqu'à 2047 Go. Presque toujours, Windows 95/98/ME ont le même système de fichiers qui est FAT-32, dans les mêmes limites de partition) |
0cH |
WIN95 OSR2 32 bits FAT mappé LBA (utilise le
mode d'adressage par blocs logiques des extensions d'interruption 13H , nous pouvons donc dire qu'il s'agit de l'équivalent INT 13H étendu de 0BH . Presque toujours, Windows 95/98/ME ont le même système de fichiers qui est FAT-32, dans les mêmes limites de partition) |
0eH |
Mappage LBA WIN95 : DOS 16 bits FAT ou VFAT adressable par bloc logique
(identique à 06H mais utilise le mode LBA de INT 13H) |
0fH |
WIN95 LBA mappé : partition étendue ou adressable VFAT par bloc logique
(Il est identique à 05H mais utilise le mode LBA de INT 13H. Windows 95 utilise 0EH et 0FH comme équivalents INT13H étendus de 06H et 05H . Windows NT ne reconnaît pas les quatre types Windows 95/98/ME 0BH , 0CH , 0EH et 0FH .) |
10h00 |
OPUS
(Système de mise à jour du programme Octal) |
11h00 |
Partition cachée FAT 12 bits ou DOS du gestionnaire de démarrage OS/2 vue par OS/2 (lorsque le gestionnaire de démarrage OS/2 démarre une partition DOS, il masque toutes les partitions DOS principales sauf celle démarrée, en changeant leurs identifiants et 01H , 04H , 06H et 07H deviennent respectivement 11H , 14H , 16H et 17H ). |
12h00 |
Partition de configuration/diagnostic Compaq
(utilisée par Compaq pour la partition de l'utilitaire de configuration. Il s'agit d'une partition compatible FAT qui démarre dans leurs utilitaires et peut être ajoutée à un menu LILO comme s'il s'agissait de MS-DOS.) |
14 heures |
(FAT DOS 16 bits cachée ou gestionnaire de démarrage OS/2 FAT DOS 16 bits cachée) Partition < 32 Mo (La taille de la partition est inférieure à 32 Mo. L'ID 14H est le résultat de l'utilisation de Novell DOS 7.0 FDISK pour supprimer la partition Linux native.) |
15h00 |
DOS étendu caché |
16h00 |
(FAT DOS 16 bits caché ou FAT 16 bits caché par le gestionnaire de démarrage OS/2) >= Partition 32 M |
17h00 |
Partition HPFS cachée ou IFS caché du gestionnaire de démarrage OS/2 (c'est-à-dire HPFS) |
17h00 |
Partition NTFS cachée |
18h00 |
Partition AST SmartSleep ou fichier d'échange spécial Windows AST (partition « Zero-Volt Suspend »)
[AST Research, Inc. (nommé d'après les initiales de ses fondateurs, Albert Wong, Safi Qureshey et Thomas Yuen). Les ordinateurs portables Ascentia disposent d'une « partition de suspension zéro volt » ou « partition SmartSleep » d'une taille de mémoire de 2 Mo et plus.] |
Octet indicateur du système de fichiers en hexadécimal |
Description de la partition/du système de fichiers |
19h00 |
Willowtech Photon COS
(le code 19H est revendiqué pour Willowtech Photon COS par Willow Schlanger. |
1bH |
Partition cachée WIN95 OSR2 32 bits FAT ou partition cachée Windows 95 FAT32 |
1ch |
FAT 32 bits WIN95 OSR2 cachée mappée LBA
(il s'agit d'une partition FAT32 Windows95 cachée qui utilise le mode LBA des extensions INT 13H) |
1eH |
Partition FAT 16 bits WIN95 cachée avec mappage LBA ou partition LBA VFAT cachée |
1FH |
Partition VFAT LBA étendue cachée ou mappée WIN95 LBA étendue cachée |
20h |
OFSI
(Système de fichiers Willowsoft Overture) |
21h00 |
Officiellement répertorié comme réservé
(HP Volume Expansion, variante SpeedStor.) |
21h00 |
FSO2
(réclamé pour FSO2 (Oxygen File System) par Dave Poirier) |
22 heures |
Partition étendue FSO2
(revendiquée pour la partition étendue de l'oxygène par Dave Poirier) |
23 heures |
Officiellement répertorié comme confidentiel |
24 heures |
Version DOS 3.x |
26 heures |
Officiellement répertorié comme confidentiel |
31 heures |
Officiellement répertorié comme confidentiel |
32 heures |
NOS (Système d'exploitation réseau)
( 32H est utilisé par le système d'exploitation NOS, développé par Alien Internet Services à Melbourne, en Australie. L'identifiant 32H a été choisi non seulement parce qu'il était l'un des rares restants disponibles, mais aussi parce que 32k est la taille de l'EEPROM pour laquelle le système d'exploitation était initialement prévu. |
33 heures |
Officiellement répertorié comme confidentiel |
34 heures |
Officiellement répertorié comme confidentiel |
35 heures |
JFS sur OS/2 ou eCS
[ 35H est utilisé par OS/2 Warp Server pour e-Business, OS/2 Convenience Pack (également connu sous le nom de version 4.5) et eComStation (eCS, une version OEM d'OS/2 Convenience Pack) pour l'implémentation OS/2 de JFS (IBM AIX Journaling File System)] |
36 heures |
Officiellement répertorié comme confidentiel |
38 heures |
THEOS v3.2 (partition de 2 Go) |
39 heures |
Cloison de plan d'étage 9
( Plan 9 est un système d'exploitation développé aux Bell Labs pour de nombreuses architectures. Plan 9 utilisait à l'origine une partie non allouée à la fin du disque. La troisième édition de Plan 9 utilise des partitions de type 39H , divisées en sous-partitions décrites dans la table de partition Plan 9 dans le deuxième secteur de la partition.) |
39 heures |
Partition étendue THEOS v4 |
3 heures |
THEOS v4 (partition de 4 Go) |
3bH |
THEOS v4 Extended Partition
( THEOS est un système d'exploitation multi-utilisateur et multitâche pour PC fondé par Timothy Williams en 1983.) |
3ch |
PartitionMagic Recovery Partition
(Lorsqu'un produit PowerQuest comme Partition Magic ou Drive Image apporte des modifications au disque, il modifie d'abord l'indicateur de type en 3CH afin que le système d'exploitation ne tente pas de le modifier. À la fin du processus, il revient à ce qu'il était au début. Par conséquent, la seule fois où vous pouvez voir un indicateur de type 3CH, c'est si le processus a été interrompu d'une manière ou d'une autre, par exemple par un arrêt, un redémarrage de l'utilisateur, etc. Si vous le modifiez manuellement avec un éditeur de table de partition ou tout autre programme d'édition de disque, dans la plupart des cas, tout va bien.) |
3dH |
NetWare caché |
40 heures |
Venix 80286
(Il s'agit d'un très ancien système d'exploitation de type Unix pour PC.) |
41 heures |
Linux/MINIX (Partage de disque avec DR-DOS)
(DR-DOS signifie Digital Research-Disk Operating System.) |
41 heures |
Démarrage personnel RISC |
41 heures |
Partition de démarrage PPC PReP (Power PC Reference Platform) |
42 heures |
Swap Linux (partage de disque avec DR-DOS) |
42 heures |
SFS (Secure File System)
( SFS est un pilote de système de fichiers crypté pour DOS sur les PC 386+, écrit par Peter Gutmann.) |
Octet indicateur du système de fichiers en hexadécimal |
Description de la partition/du système de fichiers |
42 heures |
Marqueur de partition étendu dynamique Windows 2000 (S'il existe
une entrée de type 42H dans la table de partition héritée , Windows 2000 ignore la table de partition héritée et utilise une table de partition et un schéma de partitionnement propriétaires (LDM ou DDM). Les disques dynamiques purs (ceux qui ne contiennent pas de partitions liées en dur) n'ont qu'une seule entrée de table de partition, de type 42H, pour définir l'intégralité du disque. Les disques dynamiques stockent la configuration du volume dans une base de données située dans une région privée de 1 Mo à la fin de chaque disque dynamique.) |
43 heures |
Linux natif (partage de disque avec DR-DOS) |
44 heures |
Partition GoBack
( GoBack est un utilitaire qui enregistre les modifications apportées au disque, vous permettant d'afficher ou de revenir à un état antérieur. Il gère les E/S du disque comme le ferait un gestionnaire de disque et stocke ses journaux dans sa partition.) |
45 heures |
Gestionnaire de démarrage Boot-US
( Le gestionnaire de démarrage Boot-US (Ulrich Straub) peut être installé sur le MBR, une partition primaire séparée ou une disquette. Lorsqu'elle est installée sur une partition primaire, cette partition obtient l'ID 45H . Cette partition ne contient pas de système de fichiers, elle contient uniquement le gestionnaire de démarrage et occupe un seul cylindre (moins de 8,4 Go).) |
45 heures |
Directement |
45 heures |
EUMEL/Annonce |
46 heures |
EUMEL/Annonce |
47 heures |
EUMEL/Annonce |
48 heures |
EUMEL/Elan
( EUMEL , plus tard connu sous le nom d' Ergos L3 , sont les systèmes multitâches multi-utilisateurs développés par Jochen Liedtke à GMD, utilisant le langage de programmation Elan . Il était utilisé dans les écoles allemandes pour l'enseignement de l'informatique.) |
Il y a 4 heures |
AdaOS Eagle |
Il y a 4 heures |
Système de fichiers léger ALFS/THIN pour DOS |
4CH |
La partition d'Oberon |
4dH |
QNX4.x |
4eH |
2ème partition de QNX4.x |
4fH |
Troisième partition QNX4.x
( QNX est un système d'exploitation micro-noyau distribué, tolérant aux pannes, certifié POSIX ( Portable Operating System Interface for Unix ) pour 386 et versions ultérieures, incluant la prise en charge de 386EX dans les applications embarquées.) |
4fH |
Partition de démarrage/données d'Oberon |
50 heures |
OnTrack Disk Manager (versions antérieures), partition en lecture seule ( Disk Manager est un programme d' OnTrack qui vous permet d'utiliser des disques IDE de plus de 504 Mo sous DOS. Les versions du noyau Linux antérieures à 1.3.14 ne coexistent pas avec DM.) |
50 heures |
Lynx RTOS (Real-Time Operating System)
( Lynch RTOS offre aux utilisateurs la possibilité de placer jusqu'à 14 partitions de 2 Go chacune sur des disques SCSI et IDE, pour un total de 28 Go d'espace système de fichiers.) |
50 heures |
Originaire d'Obéron |
51 heures |
OnTrack Disk Manager (DM6.0 Aux1) , partition en lecture/écriture |
51 heures |
Roman |
52 heures |
C/M. |
52 heures |
Microport SysV/AT ou Microport System V/386 |
53 heures |
OnTrack Disk Manager (DM6.0 Aux3), partition en écriture seule |
54 heures |
OnTrack Disk Manager 6.0 Superposition de lecteur dynamique |
55 heures |
EZ-Drive Partition
( EZ-Drive est un autre programme de type gestionnaire de disque développé par MicroHouse en 1992. Il est maintenant commercialisé par StorageSoft .) |
56 heures |
Golden Bow VFeature Volume partitionné.
(Il s'agit également d'un gestionnaire de disque en tant que logiciel utilitaire. Il s'agit d'un volume DOS non standard.) |
56 heures |
DM converti en EZ-BIOS |
57 heures |
DrivePro
( DrivePro a été développé par MicroHouse en 1992. Il est maintenant commercialisé par StorageSoft .) |
57 heures |
Partition VNDI |
5CH |
Volume partitionné Priam EDisk
( Priam EDisk est un logiciel utilitaire de type gestionnaire de disque. Il s'agit d'un volume DOS non standard.) |
61 heures |
SpeedStor
( SpeedStor Storage Size Partitioned Volume. Il s'agit d'un volume DOS non standard. Il s'agit d'un logiciel utilitaire de type Gestionnaire de disques.) |
63 heures |
Système Unix V/386, 386/ix, SCO, ISC Unix, UnixWare, Mach, MtXinu BSD 4.3 sur Mach, GNU Hurd |
64 heures |
Novell NetWare 286, 2.xx |
Octet indicateur du système de fichiers en hexadécimal |
Description de la partition/du système de fichiers |
64 heures |
Partition protégée par PC-ARMOUR
( 64H est utilisé par la protection de disque PC-ARMOUR du Dr A. Solomon , pour garder le disque inaccessible jusqu'à ce que le mot de passe correct soit fourni, puis un hook INT 13H a été chargé au-dessus de la mémoire affichant CHS = 0-0-2, avec une copie de la table de partition réelle, lorsque 0-0-1 a été demandé). |
65 heures |
Novell NetWare 3.86, 3.xx ou 4.xx
( Novell Netware 3.0 et versions ultérieures utilisent une partition par lecteur. Il alloue des volumes logiques au sein de ces partitions. Les volumes peuvent être répartis sur plusieurs lecteurs. Le système de fichiers utilisé s'appelle Turbo FAT et ne ressemble que vaguement au système de fichiers FAT DOS. Novell Netware était le principal système d'exploitation réseau disponible. Netware 68 ou S-Net (1983) était destiné à un Motorola 68000, Netware 86 à un Intel 8086 ou 8088. Netware 286 était destiné à un Intel 80286 et existait dans différentes versions qui ont ensuite été fusionnées dans Netware 2.2 . Netware 386 était une réécriture en C pour l'Intel 386 qui a ensuite été renommé Netware 3.x (versions 3.0, 3.1, 3.10, 3.11 et 3.12, etc.). Son successeur Netware 4.xx avait les versions 4.00, 4.01, 4.02, 4.10 et 4.11. Puis est venu Intranetware) |
66 heures |
Partition SMS Novell Netware
( SMS signifie Storage Management Services. Il n'est plus utilisé.) |
67 heures |
Roman |
68 heures |
Roman |
69 heures |
Partition Novell Netware 5+ et Novell Netware NSS
( NSS signifie Novell Storage Services). |
70 heures |
Démarrage multiple DiskSecure |
71 heures |
Officiellement répertorié comme confidentiel |
73 heures |
Officiellement répertorié comme confidentiel |
74 heures |
Officiellement répertorié comme confidentiel |
74 heures |
Scramdisk Partition
( Scramdisk est un logiciel de cryptage de disque. Il prend en charge les fichiers conteneurs, les partitions dédiées comme 74H et les disques cachés dans les fichiers audio WAV.) |
75 heures |
IBM PC/IX |
76 heures |
Officiellement répertorié comme confidentiel |
77 heures |
Partition M2FS/M2CS |
77 heures |
Version QNX 4.x |
78 heures |
Système de fichiers XOSL
(système de fichiers du chargeur de démarrage XOSL ) |
78 heures |
Numéro de série 4.x |
79 heures |
QNZ 4.x |
7EH |
AJUSTER |
7Fh |
Norme de partition de développement Alt-OS |
80 heures |
Ancien MINIX, MINIX v1.1 à v1.4a |
81 heures |
MINIX 1.4b et versions ultérieures
( MINX est un système d'exploitation de type Unix écrit par Andy Tanenbaum et des étudiants de l'Université Vrije d'Amsterdam, vers 1989-1991. Il fonctionne sur PC (8086 et versions ultérieures), Macintosh, Atari, Amiga, Sparc. |
81 heures |
Les débuts de Linux |
81 heures |
Gestionnaire de disques avancé de Mitac |
82 heures |
D'abord |
82 heures |
Solaris x86
( Solaris crée une partition unique avec l'ID 82H , puis utilise les étiquettes de disque Sun dans la partition pour la subdiviser davantage.) |
82 heures |
Partition d'échange Linux |
83 heures |
Partition native Linux ou système de fichiers natif Linux ou Linux Ext2fs
(Linux est un système d'exploitation de type Unix écrit par Linus Torvalds et bien d'autres sur Internet depuis 1991. Il fonctionne sur les PC 386 et ultérieurs et sur une variété d'autres matériels. Il est distribué sous la GPL (General Public License). Différents types de systèmes de fichiers tels que xiafs, ext2, ext3, reiserfs, etc. utilisent tous l'ID 83H .) |
84 heures |
Lecteur C caché OS/2 ou partition OS/2 renumérotée de type 04.
( Le type de partition renuméroté OS/2 04h est lié au masquage du lecteur DOS C:) |
84 heures |
Partition d'hibernation
(signalée pour divers modèles d'ordinateurs portables, par exemple, utilisée sur Dell Latitude (avec BIOS Dell) à l'aide de l'utilitaire MKS2D.) |
85 heures |
Partition étendue Linux |
86 heures |
Ancien superbloc de partition RAID Linux |
86 heures |
Ensemble de volumes/bandes FAT16 (Windows NT) ou ensemble de volumes NTFS
(volume tolérant aux pannes hérité FAT16). |
87 heures |
Partition en miroir tolérante aux pannes HPFS ou ensemble de volumes NTFS ou ensemble de volumes/bandes NTFS
(volume tolérant aux pannes NTFS hérité. Partition en miroir tolérante aux pannes HPFS.) |
8h00 |
Partition du noyau Linux
(utilisée par AiR-BOOT) |
Octet indicateur du système de fichiers en hexadécimal |
Description de la partition/du système de fichiers |
8bH |
Volume tolérant aux pannes FAT32 hérité |
8chH |
Volume FAT32 tolérant aux pannes hérité utilisant BIOS Extended INT 13H. |
8dH |
Partition primaire DOS FAT12 masquée par le FDISK libre
( le FDISK libre est le FDISK utilisé par FreeDOS . Il masque les types 01H , 04H , 05H , 06H , 0BH , 0CH , 0EH et 0FH en ajoutant le nombre décimal 140 (8CH) .) |
8eH |
Partition du gestionnaire de volumes logiques Linux |
90 heures |
Partition primaire libre DOS FAT16 cachée FDISK |
91H |
Libérer la partition étendue cachée DOS FDISK |
92 heures |
Libérez la grande partition primaire cachée FDISK DOS FAT16 |
93 heures |
Partition native Linux cachée |
93 heures |
Système de fichiers Amoeba |
94 heures |
Amoeba Bad Block Table
(Amoeba est un système d'exploitation distribué écrit par Andy Tanenbaum, en collaboration avec Frans Kaashoek, Sape Mullender, Robert van Renesse et d'autres depuis 1981. Il fonctionne sur PC (386 et versions ultérieures), Sun3, Sparc, 68030. Il est gratuit pour les universités à des fins de recherche et d'enseignement.) |
95 heures |
Partition native MIT EXOPC |
97 heures |
Partition primaire libre DOS FAT32 cachée FDISK |
98 heures |
Partition FDISK cachée DOS primaire gratuite FAT32 (LBA) |
99 heures |
Lecteur logique Mylex EISA SCSI ou DCE376
(utilisé par l' adaptateur Mylex DCE376 EISA SCSI pour les partitions qui s'étendent au-delà du cylindre 1024 d'un lecteur.) |
09h00 |
Partition FDISK cachée DOS primaire gratuite FAT16 (LBA) |
9bH |
Partition étendue DOS cachée gratuite FDISK (LBA) |
9fH |
Système d'exploitation BSD |
a0H |
Partition de gestion de l'alimentation Phoenix NoteBIOS « Enregistrer sur le disque » ou partition d'hibernation pour ordinateur portable
(elle est signalée pour divers ordinateurs portables comme IBM Thinkpad , Phoenix NoteBIOS , Toshiba avec des noms tels que partition de suspension à zéro volt , partition de suspension sur disque , partition d'enregistrement sur disque , partition de gestion de l'alimentation , partition d'hibernation , généralement au début ou à la fin de la zone de disque.) |
a1H |
Partition d'hibernation d'ordinateur portable
(utilisée comme partition « Enregistrer sur disque » sur un ordinateur portable NEC 6000H. Les types A0H et A1H sont utilisés sur les systèmes avec BIOS Phoenix . L'utilitaire Phoenix PHDISK est utilisé avec ceux-ci .) |
a1H |
Extension de volume HP (variante SpeedStor) |
a3H |
Officiellement répertorié comme confidentiel |
a4h-a ... |
Officiellement répertorié comme confidentiel |
a5H |
BSD/386, 386BSD, NetBSD, FreeBSD
(386BSD est un système d'exploitation de type Unix, un portage de 4.3BSD Net/2 pour PC réalisé par Bill Jolitz vers 1991.) |
a6H |
OpenBSD
(OpenBSD, dirigé par Theo de Raadt, est issu de NetBSD. Il tente de mettre l'accent sur la sécurité.) |
a7H |
NEXTSTEP
( NEXTSTEP est basé sur Mach 2.6 et les fonctionnalités de Mach 3.0 . C'est un véritable système d'exploitation et environnement utilisateur orienté objet. |
a8H |
Mac OS-X
( le système d'exploitation OS-X d'Apple utilise ce type pour la partition du système de fichiers) |
a9H |
NetBSD |
aaah |
Olivetti Fat 12 Service Partition 1,44 Mo
(contient un DOS 6.22 simple et un utilitaire pour échanger les types 06H et AAH dans la table de partition.) |
abH |
Partition de démarrage Mac OS-X
(le système d'exploitation OS-X (Darwin Intel) d'Apple utilise ce type de partition de démarrage.) |
abH |
Partition GO ! |
décédé |
Système de fichiers ShagOS |
deH |
Partition d'échange ShagOS |
b0H |
BootStar Dummy
(le gestionnaire de démarrage BootStar conserve sa propre table de partition, avec jusqu'à 15 partitions principales. Il remplit les entrées inutilisées dans le MBR avec des valeurs BootStar Dummy.) |
b1H |
Officiellement répertorié comme confidentiel |
b3H |
Officiellement répertorié comme confidentiel |
avant minuit |
Officiellement répertorié comme confidentiel |
b6H |
Officiellement répertorié comme confidentiel |
B6H |
Ensemble de miroirs Windows NT (maître), système de fichiers FAT16 |
b7H |
Système de fichiers BSDI (swap secondaire), système de fichiers BSDI BSD/386 |
B7H |
Ensemble de miroirs Windows NT (maître), système de fichiers NTFS |
Octet indicateur du système de fichiers en hexadécimal |
Description de la partition/du système de fichiers |
b8H |
Partition de swap BSDI BSD/386 (système de fichiers secondaire)
(BSDI (Berkeley Software Design, Inc.) a été fondée par d'anciens membres du CSRG (UCB Computer Systems Research Group). Leur système d'exploitation, basé sur Net/2, s'appelait BSD/386.) |
bbH |
Assistant de démarrage caché |
Bien |
Partition de démarrage Solaris 8 |
c0H |
Partition protégée DR-DOS/Novell DOS |
C0H |
Directeur technique |
c0H |
Petite partition sécurisée REAL/32 |
c0H |
Partition NTFT |
c1H |
Partition FAT 12 bits protégée DR DOS 6.0 LOGIN.EXE |
c2H |
Réservé à DR-DOS 7+ |
c2H |
Linux caché |
c3H |
Échange caché de Linux |
c4H |
Partition FAT 16 bits protégée par DR DOS 6.0 LOGIN.EXE |
c5H |
DRDOS/protégé (étendu) |
c6H |
DRDOS/secured (FAT-16, >= 32M)
( DR-DOS 6.0 ajoutera C0H au type de partition pour une partition protégée par LOGIN.EXE afin que l'utilisateur ne puisse pas contourner la vérification du mot de passe en démarrant à partir d'une disquette MS-DOS. Sinon, il semble que les types C1H , C4H , C5H , C6H et D1H , D4H , D5H , D6H soient utilisés exactement comme 1H , 4H , 5H et 6H .) |
c6H |
Ensemble de volumes/bandes FAT16 corrompu (Windows NT)
(NTFS ajoutera C0H au type de partition pour les parties désactivées d'un ensemble tolérant aux pannes. Ainsi, vous obtenez les types C6H , C7H .) |
c7H |
Volume/ensemble de bandes NTFS corrompu sous Windows NT |
c7H |
Botte Syrinx |
c8H |
Officiellement répertorié comme confidentiel |
c9H |
Officiellement répertorié comme confidentiel |
caH |
Officiellement répertorié comme confidentiel |
CBH |
Réservé pour DR-DOS protégé FAT32 |
ccH |
Réservé pour DR-DOS protégé FAT32 (LBA) |
cdH |
Stockage CTOS |
ceH |
Réservé pour DR-DOS protégé FAT16 (LBA) |
d0H |
REAL/32 protège la grande partition
(REAL/32 est une continuation de DR Multi-user DOS.) |
d1H |
Ancien FAT12 protégé par DOS multi-utilisateur |
d4H |
Ancien DOS protégé multi-utilisateur FAT16 <32M |
d5H |
Ancienne partition étendue protégée multi-utilisateur DOS |
d6H |
Ancien DOS protégé multi-utilisateur FAT16 >=32M |
d8H |
CP/M-86 |
Déjà |
Données non FS |
dbH |
Recherche numérique CP/M, CP/M simultané, DOS simultané |
dbH |
CTOS (système d'exploitation des technologies convergentes - Unisys) |
dbH |
Démarrage SCPU de télémétrie KDG
(la télémétrie KDG utilise l' ID DBH pour stocker une image binaire en mode protégé du code à exécuter sur un module CPU de supervision (SCPU) basé sur x86 de la gamme DT800.) |
ddH |
Memdump CTOS caché |
deH |
Utilitaires du serveur Dell PowerEdge (FAT) |
dfH |
Partition du gestionnaire de disques virtuels DG/UX |
dfH |
BootIt EMBRM (Le
gestionnaire de démarrage BootIt gère sa propre table de partition, avec jusqu'à 255 partitions principales.) |
e0H |
Réservé par ST Microelectronics pour un système de fichiers appelé ST AVFS. |
e1H |
Accès DOS ou partition étendue FAT 12 bits SpeedStor
(il s'agit d'une partition SSTOR sur des cylindres supérieurs à 1023.) |
E2H |
DOS en lecture seule |
e3H |
Dimensions de stockage |
e4H |
Partition étendue SpeedStor 16 bits FAT < 1024 cylindres |
e5H |
Officiellement répertorié comme confidentiel |
e5H |
Tandy DOS avec secteurs logiques FAT |
e6H |
Officiellement répertorié comme confidentiel |
ebH |
BeOS BFS (BFS1)
( BeOS est un système d'exploitation qui fonctionne sur les Power PC) |
etH |
Réservé aux Sprytix de Matthias Paul |
HÉ |
Indication que ce MBR hérité est suivi d'un en-tête EFI |
siH |
Partition contenant un système de fichiers EFI |
f0H |
Chargeur de démarrage Linux/PA-RISC |
f1H |
Dimensions de stockage |
f2h-simple |
Partition secondaire DOS 3.3+ |
f2h-simple |
Unisys DOS avec secteurs logiques FAT |
f3H |
Officiellement répertorié comme confidentiel |
f4H |
Grande partition SpeedStor |
F4H |
Partition de prologue en volume unique |
Octet indicateur du système de fichiers en hexadécimal |
Description de la partition/du système de fichiers |
f5H |
Partition multi-volumes Prologue
(Le type de partition F4H contient un volume et n'est plus utilisé. Le type de partition F5H contient 1 à 10 volumes nommés MD0 à MD9 . Il prend en charge un ou plusieurs systèmes. Chaque volume peut avoir le système de fichiers NGF ou le système de fichiers TwinFS comme système de fichiers .) |
f6H |
Officiellement répertorié comme confidentiel |
F6H |
Taille de stockage SpeedStor |
faH |
Émulateur Bochs x86 par MandrakeSoft |
fbh |
Partition du système de fichiers VMware |
fcH |
Partition d'échange VMware
(VMware propose des machines virtuelles pouvant exécuter Linux , Windows , FreeBSD .) |
fdH |
Partition RAID Linux avec détection automatique via superbloc persistant |
feH |
SpeedStor plus de 1024 cylindres |
feH |
Étape LAN |
feH |
Partition IBM PS/2 IML (chargement initial du microcode)
(située à la fin du disque). |
feH |
Partition cachée de l'Administrateur de disque Windows NT
(l'Administrateur de disque Windows NT marque les partitions cachées (partitions présentes mais non accessibles) comme étant de type FEH .) |
feH |
Partition du gestionnaire de volumes logiques Linux (ancienne) |
ffH |
Tableau des blocs défectueux de XENIX |
Enregistrement de démarrage DOS (DBR) / Secteur de démarrage DOS
Après la table de partition, le DOS Boot Record (DBR) ou parfois appelé DOS Boot Sector est la deuxième information la plus importante de votre disque dur. La plupart des applications commerciales de récupération de disque sont capables de régénérer les enregistrements de démarrage détruits.
Le DOS Boot Record (DBR) de la première partition d'un disque dur est généralement situé dans le secteur absolu 63 (le 64e secteur du lecteur de disque) ou sous la forme CHS, nous pouvons dire C–H–S = 0–1–1 pour la plupart des lecteurs.
Cependant, cette position peut varier en fonction du SPT (secteurs par piste) du lecteur. Par exemple, sur un ancien disque de 245 Mo avec seulement 31 SPT, le Boot Record était situé sur le 32e secteur (secteur absolu 31).
Le DBR est créé par la commande DOS FORMAT. Ce programme peut être exécuté à partir d'une disquette DOS (ou directement à partir d'un autre volume, sous réserve de certaines limitations du système d'exploitation) pour créer le DBR après que le partitionnement a été effectué à l'aide de la commande FDISK.
Le secteur sur lequel réside DBR devient le secteur logique 1 de cette partition particulière pour DOS. Le numéro de secteur utilisé par DOS part du secteur physique sur lequel se trouve DBR.
Le premier secteur logique de chaque partition DOS contiendra un enregistrement de démarrage DOS (DBR) ou un secteur de démarrage DOS. La tâche du DBR est de charger le système d'exploitation du disque dur dans la mémoire principale de l'ordinateur et de donner le contrôle du système au programme chargé.
Pour ce faire, le DBR contient un petit programme qui est exécuté par le programme exécutable Master Boot Record (MBR). Toutes les partitions DOS contiennent le code du programme permettant de démarrer la machine, c'est-à-dire de charger le système d'exploitation, mais seule cette partition reçoit le contrôle du Master Boot Record, qui est spécifié comme partition active, dans l'entrée de la table de partition.
Le programme de démarrage dans le DBR recherche les deux fichiers programme IBMBIO.COM ou IO.SYS et IBMDOS.COM ou MSDOS.SYS, dans le répertoire racine de la partition. IBMBIO.COM et IBMDOS.COM sont deux fichiers de programme système cachés sur les systèmes PC-DOS ou les systèmes IBM d'origine. Alors que IO.SYS et MSDOS.SYS sont deux fichiers de programme système cachés sur un système d'exploitation MS-DOS fourni avec les systèmes compatibles IBM.
Après cela, le programme IO.SYS (ou IBMBIO.COM) charge le programme MSDOS.SYS (ou IBMDOS.COM) et le programme COMMAND.COM. Ce processus complet est appelé « démarrage » de votre ordinateur. Si ces fichiers système ne sont pas disponibles dans le répertoire, ce programme MBR affiche des messages d'erreur rassurants tels que :
"Disque système non valide ou erreur d'E/S de disque,
Remplacez le disque, puis appuyez sur n’importe quelle touche…”
L'écran attend que l'utilisateur insère un disque bootable contenant les programmes mentionnés ci-dessus dans le lecteur de disquette et appuie sur une touche.
Comme la disquette n'a pas de partitions, elle ne possède pas de MBR ou de table de partition principale sur son secteur absolu 0, mais elle contient le DBR sur son premier secteur.
Le tableau suivant fournit une carte de disposition simple d'une disquette de 3½ pouces et 1,44 Mo après avoir été formatée avec le système de fichiers FAT12. Affiche l'emplacement du Boot Record, des deux copies du FAT, du répertoire racine et du début de la zone de données :
Carte logique d'une disquette de 3½ pouces, 1,44 Mo, formatée avec le système de fichiers FAT12 et comportant 18 secteurs par piste, 80 pistes, 2 faces et 512 octets par secteur (en utilisant 1 secteur par cluster). |
Secteurs absolus |
Contenu |
0 |
Enregistrement de démarrage |
1 – 9 |
GRAISSE 1 |
10 – 18 |
GRAISSE 2 |
19 – 32 |
Répertoire principal |
33 – 2879 |
Zone de données |
Vous pouvez également créer des sous-répertoires dans la zone de données avec des fichiers qui semblent y être contenus. En réalité, les sous-répertoires ne sont rien de plus qu'un fichier spécial qui répertorie tous les fichiers supposément contenus dans ce répertoire et toutes les données pertinentes sur chaque fichier, telles que l'emplacement du cluster de démarrage de chaque fichier, la date, l'heure et la taille du fichier, etc.
Le DBR contient également des informations importantes sur la géométrie du disque. Ces informations se trouvent dans le premier secteur de chaque partition, sous la forme :
- Code de saut + NOP
- Nom et version OEM
- Octets par secteur
- Secteurs par cluster
- Espaces réservés
- Nombre de copies FAT
- Nombre maximal d'entrées du répertoire racine (mais non disponible pour FAT32)
- Nombre de secteurs dans les partitions inférieures à 32 Mo (donc non disponible pour FAT32)
- Descripteur de média (F8h pour les disques durs)
- Secteurs pour FAT (dans les anciens systèmes FAT et non disponibles pour FAT32)
- Secteurs par piste
- Nombre de têtes
- Nombre de secteurs cachés dans la partition
- Nombre de secteurs dans la partition
- Nombre de secteurs par FAT
- Drapeaux descriptifs des informations FAT
- Version du lecteur FAT32
- Numéro de cluster du début du répertoire racine
- Numéro de secteur du secteur d'informations du système de fichiers
- Numéro de secteur du secteur de démarrage de sauvegarde
- Réservé
- Numéro d'unité logique de la partition
- Signature étendue (29H)
- Numéro de série de la partition
- Nom du volume de partition
- Nom FAT
- Code exécutable
- Marqueur exécutable ou nombre magique (AAH 55H)
Les 3 premiers octets du DBR contiennent une instruction JMP permettant de sauter des informations et de rendre les extensions possibles car le MBR charge ce secteur en mémoire et y transfère l'exécution. Habituellement, ces trois octets sont des nombres hexadécimaux dans un format similaire à E9 XX XX (hexadécimal) ou EB XX 90 (hexadécimal).
Après l’instruction JMP initiale, l’ID OEM est un champ de 8 bits réservé par Microsoft pour l’identification OEM. L'ID OEM décrit le programme qui a créé l'enregistrement de démarrage. Il s'agit souvent de « MSWIN4.0 » pour Windows 95/98/ME, « IBM 20.0 » pour OS/2 et « MSDOS5.0 » pour MS-DOS 4.0 et versions ultérieures.
Le troisième composant majeur du secteur de démarrage est le bloc de paramètres du BIOS (BPB). Le bloc de paramètres du disque est une zone de données très importante pour DOS. Aidez DOS à trouver :
- Octets par secteur
- Secteurs par cluster
- Espaces réservés
- Numéro FAT
- Nombre d'entrées du répertoire racine
Format d'enregistrement de démarrage DOS FAT32 |
Compenser |
Description |
Mesure |
00:00 heures |
Code de saut + NOP |
3 octets |
03h00 |
Nom et version OEM |
8 octets |
0BH |
Octets par secteur |
2 octets |
0DH |
Secteurs par cluster |
1 octet |
0EH |
Espaces réservés |
2 octets |
10h00 |
Nombre de copies FAT |
1 octet |
11h00 |
Nombre maximal d'entrées du répertoire racine (mais non disponible pour FAT32) |
2 octets |
13h00 |
Nombre de secteurs dans les partitions inférieures à 32 Mo (donc non disponible pour FAT32) |
2 octets |
15h00 |
Descripteur de média (F8H pour les disques durs) |
1 octet |
16h00 |
Secteurs pour FAT (dans les anciens systèmes FAT et non disponibles pour FAT32) |
2 octets |
18h00 |
Secteurs par piste |
2 octets |
1AH |
Nombre de têtes |
2 octets |
1 canal |
Nombre de secteurs cachés dans la partition |
4 octets |
20h |
Nombre de secteurs dans la partition |
4 octets |
24 heures |
Nombre de secteurs par FAT |
4 octets |
28 heures |
Drapeau (les bits 0 à 4 indiquent que la copie FAT est active) (le bit 7 indique si la mise en miroir FAT est activée ou désactivée <Clear est activé>) (si la mise en miroir FAT est désactivée, les informations FAT sont écrites uniquement sur la copie indiquée par les bits 0 à 4) |
2 octets |
2AH |
Version du lecteur FAT32 (octet élevé = version majeure, octet faible = version mineure) |
2 octets |
2 canaux |
Numéro de cluster du début du répertoire racine |
4 octets |
30 heures |
Numéro de secteur du secteur d'informations du système de fichiers (référencé au début de la partition) |
2 octets |
32 heures |
Numéro de secteur du secteur de démarrage de sauvegarde (référencé au début de la partition) |
2 octets |
34 heures |
Réservé |
12 octets |
40 heures |
Numéro d'unité logique de la partition |
1 octet |
41 heures |
Non utilisé (peut être l'octet le plus élevé de l'entrée précédente) |
1 octet |
42 heures |
Signature étendue (29H) |
1 octet |
43 heures |
Numéro de série ou ID binaire 32 bits de la partition
(ID binaire 32 bits fourni par le système d'exploitation lui-même) |
4 octets |
47 heures |
Nom du volume de partition |
11 octets |
52 heures |
Nom FAT (FAT32 dans ce cas) |
8 octets |
5AH |
Code exécutable |
420 octets |
1FEH |
Marqueur exécutable ou nombre magique (AAH 55H) |
2 octets |
- Nombre total de secteurs dans le volume logique (petit, pour une taille de volume logique inférieure ou égale à 32 Mo)
- Descripteur de média Octet
- Nombre de secteurs par FA
Ces informations nous aident à trouver l'emplacement de FAT et d'autres valeurs importantes. La saisie d'informations incorrectes ici ou la corruption de ces valeurs rendra impossible le démarrage à partir du disque dur. Parfois, la présence d'informations incorrectes dans le bloc de paramètres du disque empêche le démarrage à partir du lecteur de disque dur et du lecteur de disquette.
Le nombre d'octets par secteur est presque toujours de 512. Sinon, il doit s'agir d'une puissance entière de 2 (par exemple 64, 128 et 256).
Le nombre de secteurs par cluster dépend de la taille du cluster. (Voir la section Cluster fournie plus haut dans ce chapitre.) Le nombre de copies de FAT est presque toujours de 2.
Nombre de répertoires racine : dépend du système de fichiers et de la taille du volume. (Voir les limitations du système de fichiers ci-dessus et la description du répertoire racine ci-dessous.)
Nombre total de secteurs : Hors secteurs cachés. Si la valeur est 0 dans le BPB, le champ dans les informations de l'enregistrement de démarrage étendu est utilisé et vice versa. Notez que vous pouvez déterminer si des informations étendues (DOS 4.0 et versions ultérieures) sont disponibles en examinant l'octet de signature au décalage 26H.
Tous les secteurs avant le secteur de démarrage d'un lecteur logique DOS sont considérés comme des secteurs « cachés ». DOS n'interprète pas les secteurs cachés. Les lecteurs de disquettes normaux n'ont aucun secteur caché. Les partitions du disque dur auront un numéro qui reflète leur emplacement sur le disque. Notez que la totalité de la première tête du premier cylindre est généralement réservée à la table de partition, même si seul le premier secteur est réellement utilisé.
Descripteur de média : utilisé pour fournir une indication du type de média ou de disque. Les valeurs normales sont 0 pour une partition DOS étendue et F8H pour un disque dur. Les valeurs des octets du descripteur de média ont été fournies dans le tableau suivant.
Descripteurs de médias |
Taper |
Capacité |
Taille et type |
F0H |
2,88 Mo |
3,5", 2 côtés, 36 secteurs par piste |
F0H |
1,44 Mo |
3,5", 2 côtés, 18 secteurs par piste |
F9H |
Taille : 720 Ko |
3,5", 2 côtés, 9 secteurs par piste |
F9H |
1,2 Mo |
5,25", 2 côtés, 15 secteurs par piste |
FDH |
360 Ko |
5,25", 2 côtés, 9 secteurs par piste |
FFH |
Taille : 320 Ko |
5,25", 2 côtés, 8 secteurs par piste |
FCH |
Taille : 180 Ko |
5,25", 1 côté, 9 secteurs par piste |
FEH |
Taille : 160 Ko |
5,25", 1 côté, 8 secteurs par piste |
F8H |
--------- |
Disque dur |
Nombre de secteurs FAT : doit être calculé. La méthode de calcul de la taille du FAT a été donnée dans la description du FAT donnée dans le chapitre.
Le DBR d'un système de fichiers FAT32 a été donné dans la figure suivante :
Secteurs FAT
Secteurs par piste (ou secteurs par tête) : Les secteurs par tête sont le nombre de secteurs regroupés sous une même tête. De même, les têtes par cylindre reflètent le nombre de cylindres par tête. Si cette partition est une partition CHS, ces valeurs doivent être les mêmes que celles renvoyées par le BIOS. S'ils ne sont pas identiques, vous devez considérer que le disque a été configuré de manière incorrecte et que la partition peut être inutilisable.
Secteurs cachés : Comme nous l'avons déjà évoqué, il s'agit du nombre de secteurs sur le disque physique qui précèdent le début du volume, avant le secteur de démarrage lui-même. Il est utilisé pendant la séquence de démarrage pour calculer le décalage absolu par rapport au répertoire racine et aux zones de données. Considérez-le comme le nombre de secteurs entre le début de cette partition et la table de partition elle-même.
Ce champ doit être égal au « nombre de secteurs avant la partition » dans la table de partition. Notez qu’il ne s’agit pas nécessairement de l’adresse LBA physique du premier secteur, car des partitions secondaires peuvent exister.
Si les secteurs cachés ne sont pas les mêmes que la table de partition, vous pouvez considérer le secteur de démarrage comme corrompu et la partition inutilisable. Notez également que le mot le plus élevé contient généralement des déchets dans les anciennes versions de DOS.
Si vous pensez qu'un secteur de démarrage est corrompu, vous pouvez vérifier certains des champs répertoriés ci-dessus pour voir si les valeurs qui y figurent ont du sens.
Par exemple, les octets par secteur seront de 512 dans la grande majorité des cas. Vous pouvez également vous attendre à voir des chaînes de texte dans la section de code exécutable du secteur de démarrage qui conviennent au système d'exploitation qui a formaté le disque.
Par exemple, les chaînes de texte typiques sur les volumes FAT au format MS-DOS incluent : « Disque système non valide », « Erreur d'E/S de disque », « Remplacez le disque, puis appuyez sur une touche », « Erreur de disque ou de disque non système », « Remplacez et appuyez sur une touche lorsque vous êtes prêt ». et « Erreur de démarrage du disque ». Les chaînes de texte sur les volumes FAT au format Windows NT incluent : « BOOT : Impossible (ou impossible de) trouver NTLDR », « Erreur d'E/S lors de la lecture du disque ». et « Veuillez insérer un autre disque. »
Mais n’oubliez pas que vous ne devez pas considérer cette liste comme exhaustive. Si vous trouvez d’autres messages dans le secteur de démarrage, cela n’indique pas nécessairement qu’il y a un problème avec le secteur de démarrage. Différentes versions de MS-DOS et de Windows NT peuvent parfois avoir des chaînes de messages légèrement différentes dans leurs secteurs de démarrage.
En revanche, si vous ne trouvez aucun texte, ou si le texte n'est pas clairement lié à MS-DOS ou Windows NT, vous devriez envisager la possibilité que votre secteur de démarrage ait été infecté par un virus ou qu'une autre forme de corruption de données se soit produite.
Pour récupérer un secteur de démarrage infecté par un virus, il est généralement préférable d'utiliser un programme antivirus commercial. De nombreux virus et chevaux de Troie font bien plus que simplement écrire des données sur le secteur de démarrage. Il n'est donc pas recommandé de réparer manuellement le secteur de démarrage, car cela peut ne pas supprimer complètement le virus ou le cheval de Troie et, dans certains cas, peut faire plus de mal que de bien. Cependant, nous aborderons DBR dans la section programmation de ce livre.
Si vous pensez que le secteur de démarrage a été endommagé pour une autre raison, il peut être possible de récupérer les dommages du secteur de démarrage sans reformater le lecteur en modifiant manuellement les champs décrits ci-dessus. Nous allons essayer de surmonter ces problèmes avec la programmation dans les techniques de programmation de récupération dans ce livre.
Table d'allocation de fichiers (FAT)
Après DBR, il y a les tables d'allocation de fichiers. La table d'allocation de fichiers (FAT) a été introduite en 1977 pour stocker des données sur des disquettes pour le Disk Basic autonome de Microsoft. Le FAT a été modifié à plusieurs reprises pour répondre aux besoins croissants. Il a été développé pour répondre aux exigences d'un système rapide et flexible de gestion des données sur des supports amovibles et fixes.
En 1996, FAT32 a été introduit avec Windows 95 OSR2. Comme nous l’avons vu précédemment, Windows 98/ME prend en charge les tailles de disque dur FAT32. Désormais, avec ces systèmes d'exploitation, le système de fichiers FAT32 est couramment utilisé.
Le premier système de fichiers DOS FAT (DOS 1.x) utilisait le système FAT 12 bits, encore utilisé aujourd'hui pour les disquettes. DOS 2.x a ajouté la prise en charge des disques durs et est passé aux entrées FAT 16 bits en raison de volumes plus importants.
Vers 1987, DOS 4.0 a modifié la gestion des secteurs de bas niveau pour utiliser des paramètres 32 bits afin de surmonter le problème de la prise en charge des disques de grande taille, car nous avons déjà discuté des limitations des systèmes de fichiers.
FAT maintient une carte de toute la surface du lecteur de disque afin de savoir quelle zone est libre, quelle zone est endommagée, quelle zone est occupée par quel fichier, etc. Lorsque certaines données stockées sur la surface du disque doivent être consultées, DOS consulte FAT pour déterminer quelles zones de la surface du disque dur contiennent les données.
Le type de FAT à utiliser est déterminé par le programme FDISK lors du partitionnement du disque dur. Mais le FAT réel est écrit par le programme DOS FORMAT.
FAT ne garde pas la trace de chaque secteur individuel sur la surface du disque, mais gère la zone du disque dans un groupe de secteurs appelés « clusters » ou « unités d'allocation » (voir le cluster abordé plus haut dans le même chapitre).
Un cluster est la plus petite unité d'espace disque dur que DOS attribue à un fichier, il se compose d'un ou plusieurs secteurs selon la taille du lecteur. La taille du cluster est déterminée et fixée par le programme DOS FORMAT lors du formatage de haut niveau du disque dur. (Voir la discussion sur la « taille du cluster », fournie ci-dessus.)
En réalité, le FAT est un index de cluster de l'ensemble du volume. Le FAT possède une entrée pour chaque cluster. Les deux premières entrées d'un FAT contiennent des informations sur le FAT. La troisième entrée et les suivantes dans la FAT sont attribuées à des clusters d'espace disque, en commençant par le premier cluster disponible pour l'utilisation par les fichiers.
Parce que FAT est un élément si important, DOS en conserve deux copies : la FAT principale ou FAT1 et la FAT secondaire ou FAT2 (il y a normalement deux copies, cependant de nombreux nouveaux systèmes d'exploitation créent plus de deux copies de FAT).
Chaque FAT occupe des secteurs contigus sur le disque, et le deuxième FAT qui suit immédiatement le premier n'oblige pas DOS à utiliser le deuxième FAT pour corriger le problème ; À l’inverse, lorsque la première FAT est mise à jour, DOS la copie dans la seconde FAT, corrompant également cette dernière au passage.
Cette mise à jour est effectuée chaque fois que DOS détecte que les 1ère et 2ème FAT ne correspondent pas. Ainsi, en cas de corruption du 1er FAT, vous devez immédiatement le réparer à l'aide d'un logiciel d'édition de disque et comparer le 1er FAT avec le 2ème FAT. Cela doit être fait avant que DOS ne copie la FAT corrompue vers la deuxième FAT.
Avec l'introduction de FAT32, les entrées FAT et la numérotation des secteurs sont désormais 32 bits. Cela signifie qu'il existe désormais 4 294 967 296 valeurs 32 bits distinctes multipliées par 512 octets par secteur, ce qui donne 2 téraoctets (2 199 023 255 552 octets) comme taille de disque maximale possible en FAT32.
La taille de l'entrée du répertoire pour chaque fichier dans FAT 32 est de 4 octets pour accueillir la valeur de cluster initiale du fichier au lieu des 2 octets requis dans FAT16. La valeur la plus grande correspond au plus grand nombre de clusters possible.
Traditionnellement, chaque entrée de répertoire est un enregistrement de 32 octets, et cela reste le même. Au milieu de l'enregistrement du répertoire se trouvent 10 octets (octets 12 à 21) que Microsoft a réservés pour sa propre utilisation future. Deux de ces octets sont désormais utilisés pour accueillir les octets supplémentaires nécessaires pour spécifier le cluster de départ dans FAT32.
Comme nous l’avons déjà évoqué, il existe des versions 12 bits, 16 bits et 32 bits de FAT. Alors que FAT 32 bits permet un stockage beaucoup plus efficace, qui peut être jusqu'à 30 % plus efficace, et l'utilisation de disques durs plus grands.
Lorsqu'un système de fichiers du système d'exploitation est appelé par un programme pour rechercher le contenu d'un fichier, la première valeur de cluster dans l'entrée de répertoire de ce fichier est lue et utilisée pour trouver la chaîne FAT. La chaîne FAT est la liste des clusters contenant des données appartenant à un fichier.
Disposition du lecteur FAT32 |
Compenser |
Description |
Début de la partition |
Secteur de démarrage |
Début de la partition + nombre de secteurs réservés |
Tables FAT |
Début de la partition + Nombre de secteurs réservés + (Nombre de secteurs pour FAT * 2)
[En supposant que la mise en miroir FAT est activée, cela est presque toujours vrai] |
Répertoire principal |
Début de la partition + Nombre de secteurs réservés + (Nombre de secteurs pour FAT * 2) + Nombre de secteurs dans le répertoire racine |
Zone de données |
Les entrées FAT peuvent contenir des valeurs indiquant :
- Le cluster suivant dans une chaîne FAT pour un fichier donné
- Clusters libres, c'est-à-dire des clusters qui ne sont utilisés par aucun fichier
- Informations sur les secteurs défectueux, qui sont des clusters contenant un ou plusieurs secteurs physiquement endommagés qui ne doivent pas être utilisés.
- Le dernier groupe d'un fichier
Entrées de la table FAT |
Nombre (hexadécimal) |
Description |
0 |
Cluster gratuit |
???? |
Cluster en cours d'utilisation, cluster suivant dans la chaîne |
FF0-FF6 / FFF0-FFF6 |
Le cluster est réservé |
FF7 /FFF7 |
Le cluster contient des secteurs défectueux |
FF8-FFF / FFF8-FFF |
Fin du fichier |
Chaque entrée FAT représente une adresse de cluster et contient un pointeur vers l'adresse de cluster suivante (entrée FAT) pour le fichier. La dernière entrée FAT d'un fichier contient la valeur finale du cluster au lieu d'un pointeur. Les deux premières entrées d'un FAT contiennent des informations sur le FAT. Ces octets FAT contiennent un octet de descripteur de média. Cet octet peut être utilisé pour trouver le type de support de disque auquel cette entrée FAT est destinée.
La troisième entrée et les suivantes dans la FAT sont attribuées à des clusters d'espace disque, en commençant par le premier cluster disponible pour l'utilisation par les fichiers. Une entrée FAT peut avoir l’une des valeurs indiquées dans le tableau ci-dessus, en fonction des informations qu’elle souhaite transmettre.
Un 000H dans FAT 12 bits ou 0000H dans FAT 16 bits indique que le cluster correspondant à cet emplacement FAT n'est pas alloué ou est vide. Toute valeur comprise entre FF8H et FFFH dans FAT 12 bits ou entre FFF8H et FFFFH dans FAT 16 bits indique que ce cluster est le dernier cluster de la chaîne de clusters d'un fichier.
La valeur de FF0H à FF7H dans FAT 12 bits indique les clusters réservés. Un FF7H dans une FAT 12 bits ou FFF7H dans une FAT 16 bits indique que le cluster correspondant à l'emplacement FAT est un cluster défectueux, c'est-à-dire qu'il s'agit essentiellement d'un cluster contenant des secteurs défectueux. Ce cluster n'est pas utilisé pour le stockage de données.
Toute autre valeur dans la table FAT est un pointeur vers le cluster suivant dans la chaîne d’allocation de fichiers.
Comment Windows détecte un arrêt incorrect
C'est une chose très courante et j'espère que vous l'avez remarqué plusieurs fois lorsque vous utilisez Windows : si votre ordinateur plante pour une raison quelconque comme une panne de courant, une corruption du logiciel, un arrêt accidentel, etc., lorsque vous redémarrez votre ordinateur, le message de plantage apparaîtra sur l'écran pendant le processus de démarrage et le système d'exploitation analysera votre disque à la recherche d'erreurs.
Les deux figures suivantes montrent les 256 octets initiaux d'une FAT 32 bits. Cependant, pour en discuter, nous n'avons besoin que des 8 octets initiaux.
En fait, lorsque le système d'exploitation Windows est chargé en mémoire, c'est-à-dire lorsque Windows est démarré, le huitième octet (ou décalage 7H) de la FAT devient 07H ou F7H à partir de 0FH ou FFH.
Microsoft utilise l’octet 0FH uniquement pour le volume qui contient le système d’exploitation en cours d’exécution et l’octet FFH pour tous les autres volumes auxquels il accède.
Une fois que Windows démarre, le huitième octet est modifié en 07H ou F7H, qui sera réinitialisé à 0FH ou FFH uniquement si Windows est arrêté correctement.
En cas de panne de courant, ou si l'interrupteur d'alimentation de l'ordinateur est accidentellement éteint, ou si le système est redémarré manuellement en raison d'un problème logiciel, cet octet restera à 07H ou F7H, ce qui informe le système d'exploitation Windows au prochain démarrage qu'un arrêt incorrect s'est produit, puis Windows utilise son programme d'analyse de disque (Scandisk) pour vérifier les erreurs.

Répertoire principal
Après le dernier FAT se trouve le répertoire racine. Le répertoire racine est comme un index pour les informations stockées sur votre disque dur. L'emplacement du répertoire racine peut être facilement déterminé en ajoutant les valeurs de l'enregistrement de démarrage, car il est situé après les FAT.
La zone de répertoire stocke des informations sur le nom du fichier, la date et l'heure de création du fichier, l'attribut du fichier, la taille du fichier et le cluster de départ du fichier spécifique. Chaque entrée de répertoire décrivant ces informations sur un fichier est une information de 32 octets.
Le répertoire racine contient des informations sur les fichiers et les répertoires qui partent du répertoire racine. Tous les répertoires suivants sont à leur tour stockés sous forme de fichiers, dans le même format que le répertoire racine. Auparavant, le répertoire racine était de taille fixe et situé à un emplacement fixe sur le disque, mais il est désormais libre de croître selon les besoins, car il est désormais traité comme un fichier.
Le nombre de fichiers pouvant être stockés dans le répertoire racine dépend du type de FAT utilisé. Par exemple, pour une disquette 3½ pouces de 1,44 Mo avec FAT 12 bits, elle est limitée à 224 entrées ; si vous essayez de stocker le 225e fichier, DOS affichera une « Erreur de création de fichier ». Lorsque vous utilisez un FAT 16 bits, vous pouvez avoir 512 entrées au total dans le répertoire racine. Chaque répertoire principal sur une disquette ou un disque dur sert également d’entrée de répertoire racine.
Le tableau suivant répertorie les limites d’entrée racine pour différents supports et FAT :
Description du support et du système de fichiers |
Nombre maximal d'entrées du répertoire racine |
FDD simple face 5¼" 180K |
64 |
Lecteur de disquettes à double face 5¼ pouces 320K |
64 |
Lecteur de cartes à mémoire flash double face 5¼ pouces 360K |
112 |
Lecteur de disquettes à double face 3½" 720K |
112 |
Disque dur à mémoire flash double face 5¼ pouces de 1,2 mégaoctet |
224 |
Lecteur de disquette double face 3½ pouces 1,44 mégaoctet |
224 |
Disques au format DMF double face de 3½ pouces, 1,68 mégaoctet (c'est pourquoi Microsoft a créé les fichiers CAB !) |
16 |
FDD double face 3½ pouces 2,88 mégaoctets |
240 |
Disques durs (FAT12 et FAT16) |
512 |
Disques durs avec FAT 32 (car il traite le répertoire de routage comme un fichier) |
65 536 |
Cela ne signifie pas qu'avec FAT 16 bits, vous êtes limité au stockage de seulement 512 fichiers sur votre disque dur. Les sous-répertoires peuvent être utilisés pour stocker n'importe quel nombre de fichiers limité uniquement par la taille du disque.
N'oubliez pas que le nom du volume d'une disquette est généralement stocké dans le secteur de démarrage, mais que le nom du volume d'un disque dur est stocké en tant qu'entrée de répertoire racine et que l'espace réservé dans le secteur de démarrage est laissé vide avec des espaces. La commande DOS DIR renvoie celui du répertoire s'il est présent, ou celui du secteur de démarrage s'il ne l'est pas.
Les entrées du répertoire contiennent l’entrée dans la chaîne de cluster et le nom du fichier. Par conséquent, les entrées de répertoire les plus importantes sont celles du répertoire racine, car il contient des index de cluster qui pointent vers tous les sous-répertoires.
Tous les répertoires contiennent deux entrées, « . ». pour le répertoire courant (Ce sous-répertoire) et ".." pour le répertoire parent (Répertoire parent de ce sous-répertoire). Nous pouvons suivre ces entrées facilement car elles seront toujours placées au début d'un cluster si le cluster contient un répertoire. Le tableau suivant montre le format d’une entrée de répertoire dans le répertoire racine. Le tableau suivant montre comment les 32 octets de l'entrée de répertoire d'un fichier dans le répertoire racine sont divisés pour stocker diverses informations à ce sujet :
Compenser |
Mesure |
Description |
00:00 heures |
8 octets |
Nom de fichier
(Voir également le tableau suivant pour la signification particulière du premier caractère du nom de fichier) |
08h00 |
3 octets |
Extension |
0BH |
1 octet |
Attributs du fichier (voir le tableau des attributs du fichier) |
0CH |
10 octets |
Réservé |
16h00 |
2 octets |
Heure de création ou dernière mise à jour (voir le tableau des formats date-heure) |
18h00 |
2 octets |
Date de création ou dernière mise à jour (voir tableau des formats date-heure) |
1AH |
2 octets |
Cluster initial ou premier cluster de fichiers
(la valeur 0000H est utilisée dans les entrées du répertoire parent (' .. ') pour indiquer que le répertoire parent est le répertoire racine) |
1 canal |
4 octets |
Taille du fichier en octets. |
Le nom du fichier contient le nom en majuscules et si le nom du fichier comporte moins de 8 caractères, les espaces sont remplis avec des caractères d'espacement du numéro de code ASCII 32. Le champ Extension contient l'extension du fichier, en majuscules.
Si le nom de fichier comporte plus de 8 caractères, Windows crée un nom de fichier court à partir d'un nom de fichier long, en le tronquant à six caractères majuscules et en ajoutant « ~1 » à la fin du nom de fichier de base.
Si un autre nom de fichier avec les mêmes six premiers caractères existe déjà, le numéro est incrémenté. L'extension reste inchangée et tous les caractères qui étaient illégaux dans les versions précédentes de Windows et DOS sont remplacés par un trait de soulignement.
Les noms de fichiers longs sont stockés dans des entrées de répertoire de noms de fichiers longs (LFN) de 32 octets spécialement formatées, marquées par des octets d'attribut définis sur 0FH. Pour un fichier ou un sous-répertoire donné, un groupe d'une ou plusieurs entrées de répertoire de nom de fichier long précède immédiatement l'entrée de répertoire 8.3 unique sur le disque.
Chaque entrée de répertoire LFN contient jusqu'à 13 caractères du nom de fichier long, et le système d'exploitation en joint autant que nécessaire pour former un nom de fichier long complet.
C'est pourquoi les noms de fichiers longs diminuent le nombre maximal possible d'entrées de répertoire racine dans un système de fichiers. Nous verrons en détail plus loin dans ce chapitre comment Windows prend en charge les noms de fichiers longs.
Le premier octet du nom du fichier peut également contenir des informations importantes sur le fichier. Les informations fournies par cet octet peuvent être l'une de celles fournies dans le tableau suivant :
Premier caractère du nom du fichier |
Valeur |
Sens |
00:00 heures |
Indique que cette entrée de répertoire n'est pas utilisée. |
05h00 |
Cela indique que le premier caractère du nom du fichier est le caractère E5H, mais en réalité le fichier n'a pas été supprimé. (Voir la signification de E5H) |
E5H |
Le fichier a été supprimé et cette entrée de répertoire est l'entrée de répertoire d'un fichier supprimé. La zone de données précédemment occupée par ce fichier est désormais libre pour l'allocation d'un autre nouveau fichier. |
2EH |
Ceci est un sous-répertoire. Le champ de numéro de cluster de cette entrée contiendra le nombre de clusters dans le répertoire. |
2EH 2EH |
Deux 2EH dans une entrée de répertoire indiquent l’entrée de répertoire parent d’un sous-répertoire. Le numéro de cluster de cette entrée contiendra le numéro de cluster du répertoire parent de ce répertoire. Le numéro de cluster sera zéro 0000H si le répertoire parent est le répertoire racine. |
Les attributs sont un champ codé en binaire sur 8 bits. Le tableau suivant décrit l'état de l'indicateur d'attribut pour le fichier spécifié :
Bits d'attribut |
Attribut |
Mordre |
Pistes |
Hexagone |
Drapeau de fichier en lecture seule |
0 |
.......? |
01H |
Signaler un fichier caché |
1 |
......?. |
02h00 |
Drapeaux de fichiers système |
2 |
.....?.. |
04h00 |
Indicateur d'étiquette de volume
(indique que l'entrée est une étiquette de volume) |
3 |
....?... |
08h00 |
Sous-répertoire
(au même format que le répertoire) |
4 |
...?.... |
10h00 |
Bit d'archive
(fichier modifié depuis la dernière sauvegarde) |
5 |
..?..... |
20h |
Réservé (contient 0) |
6 |
.0...... |
- |
Réservé (contient 0) |
7 |
0....... |
- |
Un fichier peut avoir plusieurs attributs. Par exemple, un même fichier peut être à la fois en lecture seule et en fichier caché, ou un même fichier peut avoir les deux attributs, le fichier système et le fichier caché. (Voir l'exemple fourni ci-dessous pour le codage des entrées de répertoire.)
L'heure et la date sont un champ spécialement codé de 32 bits (16 bits pour l'heure et 16 bits pour la date). La division de ces codages de bits pour composer l'heure de création ou la dernière mise à jour et la date de création ou la dernière mise à jour d'un fichier, a été donnée dans le tableau suivant :
L'entrée pour l'heure de création ou de dernière mise à jour du fichier, qui correspond au 16e et au 17e octet de l'entrée du répertoire, a le format indiqué dans le tableau ci-dessus. Le codage est le suivant :
- H est le nombre binaire de l'heure, qui peut aller de 0 à 23
- M est un nombre binaire pour les minutes, qui peut aller de 0 à 59
- S est un nombre binaire pour les secondes par incréments de 2 secondes
- L'entrée pour la création du fichier ou la dernière mise à jour des données, qui est la 18e et
- Le 19e octet de l'entrée du répertoire a le format suivant :
- Y est un nombre binaire compris entre 0 et 127 ou l'année de 1980 à 2107
- M est le nombre binaire du mois, il peut aller de 1 à 12
- D est un nombre binaire pour la date, il peut aller de 1 à 31
Cette entrée de répertoire est liée à l’entrée FAT en fonction de la première valeur de cluster. Une fois que DOS dispose de la valeur de cluster initiale de n'importe quel fichier du répertoire, DOS peut découvrir le fichier complet à l'aide de FAT. Le cluster d’entrées de la chaîne est le premier cluster qui compose le fichier. Si l'indicateur de répertoire d'attributs est défini, ce champ pointe vers une nouvelle entrée de répertoire.
La taille du fichier d'entrée est de 4 octets. Avec cela, nous pouvons calculer comment FAT32 prend en charge la taille maximale d'un fichier jusqu'à 4 294 967 295 octets, soit environ 4 Gio. 4 octets ont 32 bits et la taille maximale possible du fichier composé de n'importe quel binaire 32 bits pourrait être,
= 11111111 11111111 11111111 11111111 (B) Octets
= 4 294 967 295 (D) octets
~ 4 Go
Par conséquent, FAT32 prend en charge une taille de fichier maximale de 4 Gio.
Entrée du répertoire racine
La taille du fichier et le cluster initial du fichier peuvent être une ressource précieuse pour la récupération de données lors de la récupération de fichiers corrompus, car nous pouvons calculer le nombre de clusters dont le fichier doit être composé.
La figure ci-dessus montre l’entrée du répertoire racine pour sept fichiers différents. Le codage de ces entrées est fourni dans le tableau suivant :
Nom de fichier long (LFN)
Comme nous l'avons déjà évoqué précédemment dans la discussion sur le répertoire racine, auparavant le répertoire racine avait une taille fixe et était situé à un emplacement fixe sur le disque, mais il peut désormais croître librement selon les besoins car il est traité comme un fichier.
Ceci est très important pour les noms de fichiers longs car chaque nom de fichier long utilise plusieurs entrées de répertoire. L’ajout de la prise en charge des noms de fichiers longs à un système d’exploitation qui utilise des noms de fichiers 8.3 n’est pas aussi simple que d’étendre les entrées de répertoire pour qu’elles contiennent plus de 11 caractères.
Si ce nouveau système d'exploitation renvoie des noms de fichiers de 255 caractères, de nombreuses applications plus anciennes, qui s'attendent à ne pas recevoir plus de 11 caractères, planteraient car un programme doit réserver de la mémoire pour stocker les noms de fichiers qu'il lit, et s'il réserve 16 octets pour un nom de fichier et que le système d'exploitation copie (disons) 32 caractères dans cet espace, alors d'autres données sont écrasées. Un moyen infaillible de tuer une application est de copier des données aléatoires dans son espace de données.
Pour surmonter ce problème, Windows 95 a trouvé une solution intelligente qui prenait en charge les noms de fichiers longs tout en maintenant la compatibilité avec les versions antérieures des applications DOS et Windows.
Lorsque la plupart des applications (à l'exception des utilitaires de disque de bas niveau comme Norton Disk Doctor) interrogent le système pour connaître les noms de fichiers et de sous-répertoires, elles ne le font pas en lisant les entrées de répertoire directement à partir du disque, mais en utilisant des fonctions d'énumération intégrées au système d'exploitation.
Comme nous le savons, une entrée de répertoire est marquée avec la combinaison des attributs Bit en lecture seule, caché, système et d'étiquette de volume. Vraisemblablement, si l'octet d'attribut d'entrée de répertoire contient la valeur 0FH, les fonctions d'énumération intégrées à toutes les versions existantes de DOS et à toutes les versions de Windows antérieures à Windows 95 ignoreront cette entrée de répertoire comme si elle n'était pas là.
La solution consistait donc à stocker deux noms pour chaque fichier et sous-répertoire, un nom court visible par toutes les applications et un nom long visible uniquement par les applications Windows 95 (et versions ultérieures) et les applications qui ont été réécrites pour ajouter la prise en charge des noms de fichiers longs. Les noms de fichiers courts sont stockés dans des formats 8.3 dans des entrées de répertoire conventionnelles de 32 octets.
Nous avons déjà expliqué que Windows crée un nom de fichier court en prenant un nom de fichier long, en le tronquant à six caractères majuscules et en ajoutant « ~1 » à la fin du nom de fichier de base.
Si un autre nom de fichier avec les mêmes six premiers caractères existe déjà, le numéro est incrémenté. L'extension reste inchangée et tous les caractères qui étaient illégaux dans les versions précédentes de Windows et DOS sont remplacés par un trait de soulignement.
Les noms de fichiers longs sont stockés dans des entrées de répertoire de noms de fichiers longs (LFN) de 32 octets spécialement formatées, marquées par des octets d'attribut définis sur 0FH. Pour un fichier ou un sous-répertoire donné, un groupe d'une ou plusieurs entrées de répertoire avec un nom de fichier long précède immédiatement l'entrée de répertoire unique 8.3 sur le disque.
Chaque entrée dans le répertoire Nom de fichier long contient jusqu'à 13 caractères du nom de fichier long, et le système d'exploitation en joint autant que nécessaire pour constituer un nom de fichier long complet.
Pour une entrée de répertoire avec un nom de fichier long, les noms de fichiers sont enregistrés au format Unicode, ce qui nécessite 2 octets par caractère au lieu de 1 octet ASCII. Les caractères du nom de fichier sont répartis entre trois champs distincts :
- Les 10 premiers octets (cinq caractères) de longueur,
- Les 12 octets suivants (six caractères),
- Les 4 troisièmes octets (deux caractères).
- Les cinq bits les plus bas du premier octet de l’entrée du répertoire contiennent un numéro de séquence qui identifie la position de l’entrée du répertoire par rapport aux autres entrées.
- Entrées de répertoire avec des noms de fichiers longs associés au même fichier.
Si un nom de fichier long nécessite trois entrées de répertoire LFN, le numéro de séquence du premier sera 1, le numéro de séquence du deuxième sera 2 et le numéro de séquence du troisième sera 3, et le bit 6 du premier octet de la troisième entrée est défini sur 1 pour indiquer qu'il s'agit de la dernière entrée de la séquence.
Le champ d'attribut apparaît au même emplacement dans les entrées du répertoire LFN que dans les entrées du répertoire 8.3, car le système de fichiers ne sait pas à quel type d'entrée de répertoire il a affaire jusqu'à ce qu'il examine l'octet d'attribut. Le champ du numéro de cluster initial apparaît également à la même position, mais dans les entrées du répertoire LFN, sa valeur est toujours 0. Le champ indicateur de type contient également 0 dans chaque nom de fichier long.
L’un des problèmes avec les noms de fichiers longs est qu’ils consomment plus d’espace disque que les noms courts. Ce n'est pas un gros problème lorsque des noms longs sont stockés dans des sous-répertoires, car tant que l'espace disque est disponible, les sous-répertoires peuvent s'agrandir pour accueillir des entrées de répertoire ajoutées, mais le nombre maximal d'entrées de répertoire disponibles dans le répertoire racine est fixe, et les noms de fichiers longs gaspillent de l'espace dans le répertoire racine qui est limité en taille.
Par exemple, si le répertoire racine d'un disque dur contient un maximum de 512 entrées de répertoire, étant donné qu'un nom de 128 caractères nécessite 11 entrées, 10 pour le nom long et 1 pour le nom court, seuls 46 fichiers et sous-répertoires pourraient être créés dans le répertoire racine si chacun recevait un nom de 128 caractères.
Le problème disparaît également pour FAT32 car le répertoire racine dans FAT32 peut également croître, car dans le système FAT32, le répertoire racine est traité comme un fichier dont la taille peut croître.
Zone de données (ou zone de fichiers)
Après le répertoire racine commence la zone de données (ou zone de fichiers). Nous pouvons plutôt dire que le reste du volume après le répertoire racine est la zone de données.
La zone de données contient les données réelles stockées sur la surface du disque. DOS utilise le numéro de cluster 2 pour le premier secteur de la zone de données, nous devons donc garder à l'esprit lors de l'exécution de divers calculs que le numéro de cluster doit commencer à partir de 2.
Lorsque nous formatons un disque dur, la commande DOS FORMAT ne détruit ni n'écrase les données dans la zone de données. La commande FORMAT supprime uniquement l'entrée du répertoire et les entrées FAT et ne touche pas la zone de données réelle.
Cela permet de récupérer un disque dur formaté accidentellement, ce qui n'est pas possible dans tous les cas de disquettes formatées accidentellement. Comme dans le format Windows complet, la zone de données de la disquette est remplie avec les caractères F6H et toutes les informations sont écrasées.
DOS utilise un pointeur 16 bits/32 bits appelé pointeur « Dernier cluster utilisé » (LCU) pour stocker le dernier numéro de cluster utilisé. Initialement, la valeur de ce pointeur est zéro ; lorsque certaines informations sont écrites dans un cluster particulier, ce numéro de cluster est stocké dans le pointeur LCU.
Après cela, chaque fois que de nouvelles informations doivent être écrites, DOS recherche un cluster libre à partir du numéro LCU. Cela oblige les nouvelles données écrites sur le disque à rester contiguës tandis que les données sont écrites dans la nouvelle zone inutilisée.
Désormais, la compréhension des données en cas de suppression accidentelle serait beaucoup plus facile puisque le fichier est situé dans une zone contiguë sur le disque. Une fois la fin du disque atteinte ou le système réinitialisé, la valeur du pointeur LCU est réinitialisée à zéro.
Mais le problème ne s’arrête pas là. Il est pratiquement impossible de créer uniquement de nouveaux fichiers sur votre disque et de ne jamais supprimer ou modifier les fichiers précédemment stockés. L'utilisation de LCU uniquement présente des problèmes si vous créez et supprimez de nombreux fichiers, car cela forcera les nouvelles données à se déplacer de plus en plus loin dans les pistes internes du disque dur.
Par conséquent, si un fichier stocké sur le disque est déplacé ou supprimé, les clusters de la zone de données qui étaient occupés par le fichier sont désormais définis comme des clusters non alloués disponibles dans la zone de données et prêts à recevoir de nouvelles données. De cette façon, le système d’exploitation n’a pas besoin de déplacer toutes les données vers les pistes internes du disque.
Cependant, la suppression et la création de nombreux fichiers fragmentent les données sur le disque, provoquant leur fragmentation.
Données fragmentées et défragmentées
Nous avons déjà discuté du fait que chaque fichier sur le disque est stocké sous forme de liste chaînée de clusters, grâce à laquelle les données contenues dans un fichier peuvent être localisées n'importe où sur le disque. Si vous avez un fichier de 10 Mo stocké sur un disque utilisant des clusters de 4 096 octets, il utilise 2 560 clusters. Ces clusters peuvent se trouver sur différentes pistes, différents plateaux du disque, en fait, ils peuvent être n'importe où.
Bien qu’un fichier puisse être distribué sur l’ensemble du disque, cela est loin d’être la situation préférée. La raison est la lenteur indésirable des performances. Les disques durs sont des appareils relativement lents, principalement parce qu’ils contiennent des pièces mécaniques à l’intérieur. Chaque fois que le disque dur doit déplacer ses têtes vers une piste différente, cela prend l’équivalent de milliers et de milliers de cycles de processeur.
Par conséquent, nous souhaitons minimiser le degré de distribution de chaque fichier sur le disque. Dans le cas idéal, chaque fichier serait en fait complètement contigu. Cela signifie que chaque cluster utilisé serait placé l'un après l'autre sur le disque. Cela permettrait de lire l'intégralité du fichier, si nécessaire, sans trop de mouvement mécanique de la part du disque dur.
En réalité, le système de fichiers a initialement tous ou la plupart de ses fichiers contigus, mais à mesure que les fichiers sont créés et supprimés au fil du temps, les données sur le disque deviennent de plus en plus fragmentées.
Considérons un exemple simple pour comprendre la fragmentation. Le tableau ci-dessous représente l'utilisation des 12 clusters. Au départ, le tableau est vide :
groupe 1 |
groupe 2 |
groupe 3 |
groupe 4 |
groupe 5 |
groupe 6 |
groupe 7 |
groupe 8 |
groupe 9 |
groupe 10 |
groupe 11 |
groupe 12 |
Maintenant, disons que nous créons quatre fichiers, les fichiers A, B, C et D sur ce disque. Le fichier A occupe 1 cluster, le fichier B en occupe 4, le fichier C en occupe 2 et le fichier D en occupe 3. Nous les stockons dans l'espace libre disponible et au début, ils sont tous contigus comme le montre la figure suivante :
Après un certain temps, nous supprimons le fichier C et ce faisant, les deux clusters qui étaient occupés par le fichier C sont désormais libres ou non alloués. Cela laisse le disque semblable à la figure suivante :
Maintenant, créons un nouveau fichier E qui nécessite 3 clusters. Mais, comme il n'y a plus de blocs contigus sur le disque qui soient longs de 3 clusters, nous devons diviser E en deux fragments, en utilisant une partie de l'espace précédemment occupé par C. Maintenant, notre disque ressemblera à la figure suivante :
UN |
B |
B |
B |
B |
ET |
ET |
D |
D |
D |
ET |
|
Après un certain temps, nous supprimons les fichiers A et E et créons le fichier F qui occupe 5 clusters. Le disque apparaît maintenant comme dans la figure ci-dessous :
Nous voyons maintenant que le fichier F finit par être divisé en trois fragments. Ce type de données sur le disque est appelé données fragmentées. L'exemple donné ci-dessus est un exemple très simplifié de fragmentation, car les disques réels contiennent des milliers de fichiers et des milliers de clusters, donc le problème est amplifié. Cela vous donne une idée générale de ce qui se passe.
Un programme de défragmentation (tel que le programme DEFRAG de Microsoft ou SpeedDisk de Norton) réorganise le disque pour ramener les fichiers sous une forme contiguë. Après avoir exécuté l'utilitaire de défragmentation de disque, les données défragmentées sur le disque dont nous parlions apparaîtront comme dans la figure ci-dessous :
Dans de nombreux cas, les données fragmentées et défragmentées jouent une grande importance lors de la récupération des données.
Disons que nous avons deux disques bloqués pour la récupération de données, l'un avec des données fragmentées et l'autre qui a été récemment défragmenté. Et vous devez effectuer la récupération des données en collectant les données de la surface des deux disques, car les informations FAT et Root des fichiers sont corrompues. Dans ce type de cas, le pourcentage de récupération sera proportionnel à la défragmentation des données sur le disque.
Bien sûr, la récupération de données à partir d'un disque défragmenté sera facile et le taux de récupération des données sera élevé, mais d'un autre côté, la récupération de données à partir d'un disque fragmenté sera difficile et prendra du temps, et le taux de récupération des données sera décevant.
Identifier la cause de la corruption des données
Il existe certaines étapes spécifiques qui, si elles sont suivies dans l’ordre, peuvent nous aider à trouver la zone de corruption. Ces étapes ont été décrites avec la procédure de récupération comme suit :
Démarrer le système avec une disquette bootable
Démarrez votre système avec une disquette ou un CD bootable du système d’exploitation que vous utilisiez. Essayez de lire les lecteurs logiques C: ou D: ou tout autre. Si le(s) lecteur(s) sont accessibles, copiez toutes les données du lecteur. Vous pouvez maintenant comprendre pourquoi votre disque ne démarre pas correctement, avec moins de stress.
Vérifier les informations MBR
La première et la plus importante donnée du disque dur est le MBR et la table qu'il contient, la table de partition. Le petit outil d'édition de disque appelé « TTEDITOR.EXE » était fourni sur le disque inclus avec ce livre. Ou vous pouvez utiliser n’importe quel autre programme pour analyser votre disque dur.
Diskedit sera le programme le plus approprié pour analyser le disque à des fins de récupération de données. Eh bien, quel que soit le programme que vous trouvez facile à utiliser, il est à votre disposition. Essayez de lire le MBR et en particulier sa table de partition.
Comme vous l'avez vu dans la description du MBR, discutée dans ce chapitre, dans la seconde moitié du MBR, il y a du texte lisible qui est affiché comme message d'erreur, si quelque chose ne va pas. Ces messages texte ressemblent à ceci :
Si ces messages d'erreur ne sont pas disponibles, cela indique une corruption du MBR. Il peut également y avoir un message illégal à la place, tel que « Votre système a été piraté par... » ou tout autre message inattendu. Cela indique qu'il y a un problème grave avec le MBR et que cela est probablement dû à une infection VIRALE.
Vérifiez maintenant la table de partition MBR après les 446 octets initiaux. Si la table de partition est vide, vous ne verrez aucun message d'erreur au démarrage. DOS ignore un lecteur non partitionné. S'il n'y a pas de disquette bootable dans le lecteur A:, le système vous demandera d'insérer une disquette bootable dans le lecteur A:.
La chose importante à noter ici est que la table de partition ne doit pas être vide sur un lecteur qui fonctionnait auparavant, donc quelque chose l'a supprimé. Si la table de partition est vide, restaurez le MBR à partir de la sauvegarde.
Si la sauvegarde échoue, même après la fin réussie du processus de restauration, il y a des dommages physiques sur ce secteur. Essayez les techniques de programmation de récupération de données fournies dans les chapitres suivants pour récupérer les données. Si vous n’êtes pas du tout un programmeur, il est préférable de vous rendre dans un bon centre de récupération de données.
Si vous n’avez aucune sauvegarde du MBR, essayez d’écrire manuellement la table de partition avec un outil d’édition de disque, tel que Diskedit ; Cependant, dans certains cas, il est très difficile de le faire.
Pour les utilisateurs qui ne sont pas programmeurs et n'ont aucune sauvegarde, vous pouvez utiliser la méthode que j'utilise depuis l'époque où je développais mon projet de récupération de données, à l'université.
Ce que vous devez faire est de trouver un ordinateur près de chez vous qui possède à peu près la même taille de disque, le même nombre de partitions et, surtout, le même système d'exploitation que celui qui se trouvait sur votre ordinateur.
Cependant, cela fonctionne parfaitement, la plupart du temps. Mais sinon, au moins cela peut vous aider à accéder à la première partition de votre disque. Votre système d'exploitation démarrera également normalement, s'il a été installé dans la première partition et si les autres informations ne sont pas corrompues.
Si le MBR est correct, vérifiez le DBR
Si le MBR est OK, vérifiez le DBR (DOS Boot Record). Comme nous l'avons déjà évoqué, il s'agit du premier secteur de la partition DOS et contient un petit programme qui charge les fichiers cachés et démarre le système d'exploitation.
DBR contient également de nombreuses informations importantes sur FAT, le cluster du répertoire racine et la taille de la partition, etc. Utilisez un utilitaire de type Diskedit pour lire les informations DBR si le DBR est corrompu ou contient des informations illégales pour restaurer le DBR à partir de la sauvegarde.
Tous les logiciels professionnels de récupération de données peuvent réécrire le DBR. Nous discuterons de la manière de réécrire la partition DBR par programmation dans les prochains chapitres du livre.
Il est également possible de réécrire la partition DBR à l'aide de Diskedit, en spécifiant les informations appropriées.
Il existe également un moyen très simple de découvrir la zone de corruption. Les messages d’erreur qui apparaissent sur votre écran ont une cause spécifique pour s’afficher. La description de certains messages d'erreur importants est la suivante :
Message |
Description |
« Secteur non trouvé lors de la lecture du lecteur » |
Ce message peut apparaître lors de n'importe quelle opération DOS. En général, cela est dû à la décoloration ou à la perte d'un identifiant de secteur. |
« Erreur de données lors de la lecture du lecteur » |
Ce message peut apparaître lors de n'importe quelle opération DOS. Cela est dû à un échec de vérification des données – CRC (Cyclic Redundancy Check) ou ECC (Error Correction Code). Ce « contrôle des données » fait référence au mécanisme utilisé pour vérifier si les données lues sur le disque sont fiables. |
"0 disques durs trouvés" |
Cela apparaît si le disque dur n'est pas détecté par le BIOS de l'ordinateur. Vérifiez les connexions du câble d’alimentation et de données du disque dur. Si les connexions sont correctes, le problème peut être dû à une défaillance matérielle du disque dur. |
« Erreur de disque dur, appuyez sur F1 pour continuer » |
Comme ci-dessus |
« Spécification de lecteur non valide » |
Cela apparaît lorsque le système ne reconnaît pas le matériel, qu'il n'y a pas d'informations de partition ou que le pilote de périphérique du lecteur est manquant. |
« Configuration invalide, appuyez sur F1 pour continuer » |
Si le disque dur est disponible, soit la batterie de la carte mère est morte et le système a perdu les informations de configuration SETUP, soit le disque ne répond pas. |
« Table de partition non valide » |
Ceci est le message d'erreur MBR. Cela se produit lorsque la table de partition MBR ne contient pas d'informations de partition valides. |
« Erreur lors du chargement du système d'exploitation » |
Ceci est le message d'erreur MBR. Cela semble dû à une sorte de corruption des informations MBR. |
« Système d’exploitation manquant » |
Comme ci-dessus. |
« Erreur de démarrage du disque » |
Il s'agit d'un message d'erreur DBR. En règle générale, le disque dur doit être accessible si vous démarrez à partir d’une disquette. Bien qu'il ne soit pas amorçable, cela ne devrait pas affecter l'accès aux données sur le disque. |
« disque non système ou erreur de disque » |
Comme ci-dessus. |
« Interpréteur de commandes non valide ou manquant » |
Ce message apparaît en raison d'un interpréteur de commandes cassé ou manquant. Par exemple, si le système d’exploitation ne trouve pas command.com dans le chemin actuel ou si command.com est corrompu. |