Chapitre – 3
Approche logique des disques et du système d'exploitation
Le disque dur ne peut pas exécuter son matériel lui-même et a besoin de deux logiciels de base pour exécuter ses opérations, le BIOS (Basic Input Output System) et le DOS (ou système d'exploitation). Le système d'exploitation du disque ne communique pas directement avec le matériel de l'ordinateur et du disque dur, mais il a besoin du BIOS entre les deux. C'est pourquoi le BIOS a joué un rôle important dans l'ordinateur.
BIOS
Le travail de base du BIOS est de fournir une interface standard entre le matériel ou les périphériques connectés à l'ordinateur et le DOS. Le BIOS du système est l'interface de niveau le plus bas entre le matériel de votre système et le logiciel qui s'exécute dessus. Il joue plusieurs rôles importants dans le contrôle de l'accès aux disques durs, tels que
- Routines d'interruption du BIOS
- Détection et configuration du disque dur
- Prise en charge du mode d'interface de disque dur
Pour assurer l'interopérabilité de divers produits matériels et logiciels, le BIOS du système est adapté aux besoins de son matériel et fournit un moyen standard de laisser le logiciel s'adresser au matériel. Ceux-ci sont appelés services BIOS et sont utilisés par de nombreux systèmes d'exploitation et programmes d'application. Ils fournissent une interface uniforme 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 peuvent détecter les disques IDE/ATA modernes pour déterminer ces paramètres et les configurer automatiquement. Le BIOS contrôle les types de modes d'interface pouvant être utilisés avec le disque dur, en collaboration avec le chipset système de la carte mère et le bus d'E/S système.
L'interface INT 13H et les extensions INT 13H
L'interface principale du BIOS est l'interruption logicielle 13H, généralement connue sous le nom de INT 13H , où INT signifie interruption et 13H est le nombre 19 en notation hexadécimale.
Nous apprendrons et discuterons en détail de l'utilisation des interruptions dans la programmation dans la phase de programmation de ce livre. L'interface Int13H prend en charge de nombreuses commandes différentes qui peuvent être transmises au BIOS, qui les transmet ensuite au disque dur. L'interruption 13H comprend la plupart des tâches que nous devons effectuer avec le disque telles que la lecture, l'écriture, le formatage, etc.
L'utilisation et le travail avec Int13H nécessitent que le programme appelant connaisse les paramètres spécifiques du disque dur et fournisse l'adressage exact de la tête, du cylindre et du secteur aux routines pour permettre l'accès au disque.
Le BIOS utilise la géométrie du disque dur telle qu'elle est configurée dans le programme de configuration du BIOS. L'interface Int13H alloue 24 bits pour la spécification de la géométrie du lecteur, répartis comme suit :
- 10 bits pour le numéro de cylindre, soit un total de 1 024 cylindres.
- 8 bits pour le numéro de tête, soit un total de 256 têtes.
- 6 bits pour le numéro de secteur, soit un total de 63 secteurs.
Ainsi, le nombre maximum possible de secteurs sur le disque peut être
= 1024 * 256 * 63
= 16515072
Comme nous le voyons ici, l'interface INT 13H peut prendre en charge des disques contenant jusqu'à 16515072 secteurs avec 512 octets par secteur. Ainsi, la taille maximale du disque peut être,
= 16515072 * 512
= 8455716864 Bytes
~ 8.456 GB
Ainsi, l'interface INT 13H peut prendre en charge une taille de disque d'environ 8,456 Go (ou 7,875 Gio).
Aujourd'hui, la plupart des utilisateurs d'ordinateurs utilisent des disques durs dont la capacité est bien supérieure à 8 Go. C'est pourquoi l'interface INT 13H a finalement atteint la fin de son utilité dans les systèmes informatiques modernes et a été remplacée par une plus récente. interface appelée extensions INT 13H, cependant INT 13H peut toujours être utilisé par DOS et certains autres systèmes d'exploitation plus anciens, et à d'autres fins de compatibilité.
Extensions internationales 13H
C'est vraiment une histoire intéressante que lorsque l'interface INT 13H a été développée, personne ne s'attendait à obtenir la taille de 8 Go sur le disque dur. Cependant, aujourd'hui, nous pouvons ressentir un disque dur de 8 Go de capacité beaucoup plus petite, même pour l'ordinateur personnel d'un utilisateur à domicile.
L'ancienne norme présente une limitation importante : elle utilise 24 bits d'informations d'adressage et, en tant que telle, ne peut gérer que des disques contenant jusqu'à 1 6515 072 secteurs avec 512 octets par secteur, ce qui donne une capacité maximale de 8,456 Go (ou 7,875 Gio).
Ainsi, le problème était d'élargir le chemin d'accès de 24 bits à quelque chose de plus grand, mais il n'était pas possible d'étendre l'interface BIOS INT13H existante car si nous essayions de le faire, beaucoup de matériel et de logiciels plus anciens cesseraient de fonctionner. Et pratiquement, il n'y a aucun espoir d'obtenir la 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 * 10 21 octets, soit 9,4 billions de gigaoctets.
Nous apprendrons l'utilisation des deux extensions INT 13H et INT 13H dans la section de programmation de ce livre. Il existe un certain nombre d'autres limitations de taille qui ont eu lieu dans les premiers jours. Certaines des limites logiques et physiques les plus courantes sont 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 donne le nombre de cylindres. Ce nombre peut donc être au maximum de 111111111111B (Maximum possible 12-Bit Binary Number) ce qui équivaut à 4095. Ainsi la taille maximale du disque avec 16 têtes, accessible, sera de :
= 4095 * 16 * 63 * 512 Bytes
= 2113413120 Bytes are accessible.
La limite de 33,8 Go
Cette barrière de taille de disque dur a été remarquée au début de 1999. Les grands disques rapportent 16 têtes, 63 secteurs/pistes et 16383 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 conduit à un nombre de cylindres supérieur à 65 535. Dans ce cas particulier, certaines versions de Award BIOS ne peuvent pas gérer les disques de plus de 65 535 cylindres. Maintenant, le BIOS plante ou se bloque. Étant donné que les paramètres du disque dur utilisent généralement 16 têtes et 63 secteurs, cela correspond à une capacité d'environ 33,8 Go ou 31,5 Gio avant que le problème ne survienne.
La solution consiste à mettre à niveau le BIOS ou à utiliser un cavalier pour faire apparaître le disque plus petit.
Spécification ATA pour les disques IDE - La limite de 137 Go
L'ancienne spécification ATA n'autorise 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 la taille du disque a été générée avec la combinaison d'au plus 65536 cylindres comptant de 0 à 65535, 16 têtes comptant de 0 à 15 et 255 secteurs par piste comptant de 1 à 255, la capacité totale maximale du disque,
= 65535 * 16 * 255 Sectors
= 267386880 Sectors
= 136902082560 Bytes (Sector of 512 Bytes Each)
~ 137 GB
Prise en charge de l'IDE BIOS à 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 soit au moment de la configuration, soit dynamiquement à chaque démarrage de la machine, selon le BIOS.
Le BIOS du système fournit une prise en charge native des disques durs IDE/ATA. Par conséquent, un certain nombre de paramètres peuvent être définis pour indiquer au BIOS quels disques durs se trouvent 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 dans le cas de systèmes informatiques plus anciens, mais l'utilisateur peut toujours définir manuellement certains paramètres du lecteur.
Voici les paramètres que l'on trouve normalement dans le programme de configuration du BIOS pour configurer les disques durs IDE/ATA. Bien que sur les systèmes modernes, certains des paramètres de compatibilité les plus anciens puissent ne plus être présents :
- Type de disque : il était à l'origine utilisé pour permettre à l'utilisateur de choisir son disque dur dans une liste prédéfinie, mais il est maintenant utilisé pour contrôler la configuration automatique ou manuelle des paramètres du lecteur.
- Taille : taille du disque dur en mégaoctets décimaux. Il est calculé à partir des autres paramètres tels que Cylindres, Têtes et Secteurs, etc.
- Cylindres : le nombre de cylindres logiques sur le disque.
Têtes : nombre de têtes logiques sur le disque.
- Secteurs : le nombre de secteurs logiques de 512 octets chacun, dans chaque piste logique du disque. Habituellement, les disques durs modernes ont 63 secteurs sur une seule piste.
- Précompensation d'écriture : il s'agit d'un paramètre de compatibilité qui spécifie à quel numéro de cylindre les ajustements d'écriture doivent être effectués pour les disques beaucoup plus anciens.
- Landing Zone (Parking Heads) : Landing Zone 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 éteint. Comme les disques durs modernes garent automatiquement leur tête, cela est rarement nécessaire aujourd'hui.
- Mode de traduction : le 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 par blocs.
- Mode E/S programmé (DMA) : le mode E/S programmé 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 plus performants.
Limitations dans les systèmes de fichiers
Chaque système de fichiers prend en charge une taille de volume maximale, une taille de fichier et un nombre de fichiers par volume.
Maintenant par exemple, généralement, les volumes FAT16 et FAT32 sont limités à 4 Go et 32 Go (généralement) respectivement. Il existe certaines limitations liées aux systèmes de fichiers FAT que vous devez connaître, indiqué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 utilise un binaire 12 bits pour contenir les numéros de cluster. Un volume formaté en FAT12 peut contenir un maximum de 4 086 clusters, ce qui équivaut à 2 12 moins quelques valeurs réservées à utiliser en FAT. (Nous en discuterons en détail dans la structure logique du disque donnée plus loin dans ce chapitre). Par conséquent, FAT12 est le plus approprié pour les petits volumes. Il est utilisé sur les disquettes et les partitions de disque dur inférieures à environ 16 Mo.
- FAT16 : Le 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 à utiliser en FAT. (Nous en discuterons en détail dans la structure logique du disque donnée plus loin dans ce chapitre). FAT16 est utilisé pour les volumes de disque dur dont la taille varie de 16 Mo à 2 048 Mo. Les volumes FAT16 supérieurs à 2 Go ne sont pas accessibles à partir d'ordinateurs exécutant MS-DOS, Windows 95/98/ME et de nombreux autres systèmes d'exploitation. Cette limitation se produit car 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 clusters donnée plus loin dans ce chapitre).
- FAT32 : En théorie, les volumes FAT32 maximum peuvent aller jusqu'à 2 048 Go (environ 2 téraoctets). Le 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 28 bits (rappelez-vous ! pas 32, car 4 des 32 bits sont "Réservés"). Ainsi, théoriquement, FAT32 peut gérer des volumes avec plus de 268 millions de clusters (en fait 268 435 456 clusters) et prendra en charge des disques jusqu'à 2 To. Cependant, pour ce faire, la taille de la FAT devient très importante. (Nous allons en discuter dans les sujets donnés plus loin dans ce chapitre).
La comparaison des types de FAT a été donnée ensuite, dans le tableau.
NTFS : NTFS signifie New Technology File System. Il est utilisé par Windows 2000/XP. En théorie, la taille de partition NTFS maximale est de (2 64 – 1) clusters.
La description détaillée du système de fichiers NTFS dépasse les limites de ce livre, mais certaines limitations ont été données dans le tableau suivant :
Description
|
Limit |
Maximum file size
|
16 Exabytes – 1 KB (2 64 Bytes – 1 KB) |
Maximum volume size
|
(2 64 – 1) clusters |
Files (and Folders) per volume
|
4,294,967,295 (2 32 – 1 ) Flies and Folders |
Groupe
La plus petite unité d'espace sur le disque dur pour l'allocation à laquelle tout logiciel peut accéder est le secteur , qui contient 512 octets. Il est possible d'avoir un système d'allocation pour le disque où chaque fichier se voit attribuer autant de secteurs individuels qu'il en a besoin. Par exemple, un fichier de 1 Mo nécessiterait environ 2 048 secteurs individuels pour stocker ses données.
En cas de 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 performance à cela. Lorsque DOS écrit des informations sur le disque dur, il n'alloue pas l'espace 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 n'est pas capable de gérer des secteurs individuels. À la place, 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 la raison pour laquelle 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 ces nombreuses informations prend du temps et des ressources. Cependant, certains systèmes d'exploitation allouent de l'espace aux fichiers par secteur, mais ils nécessitent une intelligence avancée pour le faire correctement.
Les clusters sont l'espace minimum alloué par le DOS lors du stockage d'informations sur le disque. Même pour stocker des informations d'un seul octet sur le disque, il faut au moins une zone de cluster sur la surface du disque.
Si un cluster peut stocker 512 octets d'informations, pour stocker 513 octets, vous aurez besoin de deux clusters. Chaque fichier doit se voir allouer 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, donc 4 096 octets sur le disque, mais un fichier de 4 097 octets utilise deux clusters, donc 8 192 octets sur le disque.
C'est la raison pour laquelle la taille du cluster est si importante pour vous assurer de maximiser l'utilisation efficace du disque. Ainsi, nous pouvons comprendre que plus la taille des clusters 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 composé d'un ou plusieurs secteurs. Cela dépend du type de disque utilisé. Comme un cluster peut être constitué de plusieurs secteurs, l'utilisation de clusters comme unité d'allocation réduit la taille de la table d'allocation de fichiers que DOS utilise pour contenir les informations sur l'espace disque utilisé et vide.
La taille du cluster est principalement déterminée par la taille du volume de disque. Si ce n'est pas à proprement parler, les volumes généralement plus importants utilisent 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 d'une taille d'un seul secteur. Les secteurs d'un cluster sont continus, de sorte que chaque cluster est un bloc d'espace continu sur le disque.
La taille du cluster et donc la taille de la partition ou du volume, car elles sont directement liées, ont un impact important sur les performances et l'utilisation du disque. La taille du cluster est déterminée lorsque le volume de disque est partitionné.
Certains utilitaires comme Partition Magic sont disponibles et peuvent modifier la taille de cluster d'une partition existante dans les limites de conditions spécifiques, mais pour les cas généraux, une fois que la taille de la partition et la taille du cluster sont sélectionnées, elles sont corrigées.
Comme nous l'avons vu 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 dont vous devez vous souvenir est que le premier numéro de groupe est toujours considéré comme 2.
Taille de cluster
Les clusters sont utilisés pour allouer la zone de stockage à la zone de données uniquement. 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 le DOS pour différents formats de disques. Cependant, la taille du cluster peut être différente de la taille par défaut dans certaines circonstances :
Floppy Disk Drive (FDD) |
Drive Types |
Sectors/Cluster |
Total Cluster size in bytes (Sectors of 512 bytes Each) |
5.25” 360Kb FDD |
2 sectors |
1,024 |
5.25”1.2Mb FDD |
1 sector |
512 |
3.5” 720Kb FDD |
2 sectors |
1,024 |
3.5”1.44Mb FDD |
1 sector |
512 |
3.5”2.88MB FDD |
2 sectors |
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 a un nombre maximum 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 du 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 et. 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.
Noter : Ici, 1 KiB a été écrit pour 1 kilooctet binaire, ce qui signifie que 1 KiB est de 1024 octets ou nous pouvons dire que deux secteurs de 512 octets équivalent à 1KiB.
À mesure que la taille de la partition FAT16 augmente, le gaspillage d'espace disque augmente également. L'utilisation de FAT32 réduit la taille des clusters et fournit ainsi un stockage efficace. Bien que FAT32 permette l'utilisation de disques durs plus grands et de tailles de cluster considérablement réduites, l'utilisation de FAT32 présente un facteur de performances important, à savoir que les énormes disques durs avec des dizaines de gigaoctets ont rendu FAT32 essentiel pour les systèmes plus récents. Nous pouvons plutôt 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 configurée sous FAT16, il en résultera une table d'allocation de fichiers contenant 65 526 clusters, chaque cluster occupant 32 Kio d'espace disque.
La grande taille du cluster entraînera en effet un gros gaspillage d'espace disque. Par conséquent, il sera recommandé d'utiliser FAT32 sur cette partition, ce qui entraînera une réduction de la taille du cluster de 32 Kio à 4 Ko.
En fait, cela réduira considérablement la marge sur le disque, qui peut atteindre 30 %, et libérera potentiellement des centaines de mégaoctets d'espace disque précédemment gaspillés. C'est généralement la bonne chose à faire dans cette situation. Cependant, il a un autre côté. Nous n'obtenons pas cette taille de cluster réduite gratuitement.
Étant donné que chaque cluster est plus petit, il doit y en avoir plus 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 de 4 octets) alors que les entrées de FAT16 sont de 16 bits (entrée de 2 octets chacune). Le résultat final est que la taille de la FAT est 16 fois plus grande pour FAT32 que pour FAT16. Le tableau suivant résume :
FAT 16 and FAT 32 for 2,048 MB Disk Volume |
FAT Type |
FAT16 |
FAT32 |
Cluster Size |
32 KiB |
4 KiB |
Number of FAT Entries |
65,526 |
524,208 |
Size of FAT |
131052 Bytes
(~ 128 KiB) |
2096832 Bytes
(~ 2 MiB) |
Si nous augmentons la taille du volume FAT32 de 2 Go à 8 Go, la taille de la FAT passe d'environ 2 Mio à 8 Mio. L'importance de ceci n'est pas le fait que le volume FAT32 devra gaspiller plusieurs mégaoctets d'espace sur le disque pour contenir la FAT. Parce que ce n'est qu'en faisant cela qu'il économise beaucoup plus d'espace que cela en réduisant la taille de FAT. Le vrai problème est que le FAT contient tous les pointeurs de cluster pour chaque fichier du volume. L'augmentation considérable de la taille de la FAT peut avoir un impact négatif sur la vitesse du système.
Pour cette raison, il est important de limiter la taille du tableau d'allocation de fichiers à un nombre raisonnable. En fait, dans la plupart des cas, il s'agit de trouver un équilibre entre la taille du cluster et la taille de la FAT. Les sélections de taille de cluster effectuées par FAT32 lui-même en sont une bonne illustration.
Étant donné que FAT32 peut gérer environ 268 millions de clusters maximum, la taille de cluster de 4 Kio 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 serait alors supérieure à 1 Go selon 268 millions de fois 4 octets par entrée.
Pour cette raison, FAT32 n'utilise que des clusters de 4 Kio pour les volumes d'une taille maximale de 8 Gio, puis des clusters plus grands sont utilisés, comme indiqué dans le tableau 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 :
- MBR (enregistrement de démarrage principal)
- DBR (enregistrement de démarrage DOS)
- FAT (tableaux d'allocation de fichiers)
- Répertoire racine
- Zone de données
La figure suivante représente l'arrangement conceptuel de ces termes logiques formant la structure logique d'un disque dur :
Le Master Boot Record (MBR) ou parfois appelé la table de partition principale (MPT), contient un petit programme pour charger et démarrer la partition active (ou amorçable) à partir du disque dur. L'enregistrement de démarrage principal contient des informations sur les quatre partitions principales du disque dur, telles que le secteur de départ, le secteur de fin, la taille de la partition, etc.
Le MBR est situé au secteur absolu 0 ou nous pouvons dire au cylindre 0, à la tête 0 et au secteur 1 et s'il y a plus d'une partition présente sur le disque, il y a des enregistrements de démarrage principaux étendus, situés au début de chaque volume de partition étendu (Voir la figure ci-dessous).
Le MBR est créé sur le disque dur en exécutant la commande FDISK.EXE de DOS. Cependant, de nombreux autres logiciels sont disponibles pour effectuer la même tâche. En utilisant le 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 au démarrage du système. Étant donné que la disquette n'a pas de partitions, il n'y a donc pas de MBR sur une disquette.
Étant donné que le DOS utilise un seul alphabet majuscule pour nommer une partition, le nombre maximum de tous les types de partitions ensemble autorisé par le 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 y a plus d'un disque dur physique, le nombre total de partitions de tous les disques ne peut pas dépasser 24.
Après le Power-On Self Test (POST), le BIOS charge le MBR (Master Boot Record) du disque dur dans la mémoire, puis l'exécute. Tout d'abord, le MBR vérifie le disque dur pour 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 dans Mémoire.
Format d'enregistrement de démarrage principal
Nous pouvons partitionner le disque dur en plusieurs lecteurs logiques qui reçoivent généralement leur propre lettre de lecteur par DOS. Une seule partition à la fois peut être marquée comme partition active (ou amorçable).
Le Master Boot Record a la limite de quatre entrées dans la Master Partition Table. Cependant, l'emplacement de l'enregistrement de démarrage principal étendu peut être obtenu à l'aide de l'enregistrement de démarrage principal qui contient des tables de partition étendues, dont le format est exactement le même que celui de 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. Tous les 512 octets de l'enregistrement de démarrage principal sont brisés comme suit, indiqués dans le tableau :
Offset |
Description |
Size |
000H |
Initial Program Loader (IPL) , Executable Code (Provides very first booting to the Computer) |
446 Bytes |
1BEH |
First Partition Entry (See Next Table) |
16 Bytes |
1CEH |
Second Partition Entry |
16 Bytes |
1DEH |
Third Partition Entry |
16 Bytes |
1EEH |
Fourth Partition Entry |
16 Bytes |
1FEH |
Executable Marker or Bootable Sector Signature or Magic Number (AAH 55H) |
2 Bytes |
Total = 512 Bytes |
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 une partition normale et la seconde comme une autre partition étendue si elle existe. Ainsi, à l'aide d'une table de partition principale, nous pouvons obtenir l'emplacement d'une autre table de partition principale étendue à côté, si elle est présente.
Format d'entrée de table de partition
Le format d'entrée de la table de partition de toute partition dans le 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 :
Boot Type Indicator Byte (1 Byte) : 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 une partition amorçable . Bien que la présence de tout autre octet ne soit pas attendue, s'il y a un autre octet, cela peut être dû à une corruption de la table de partition ou à une attaque VIRUS dans la table de partition.
Cylindre de départ - Tête - Numéro de secteur de la partition (3 octets) : Lorsque nous calculons le CHS (Cylindre, Tête et Secteur) de n'importe quel disque, le CHS physique est compté 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 de tête de départ dans le système hexadécimal pour la partition.
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 (en tant que deux bits les plus significatifs) plus 8 bits d'un autre octet au décalage 03H (les 8 bits les moins significatifs restants sur les 10 -Bit Number) font le nombre de cylindres de départ de la partition.
Offset |
Meaning |
Size |
Description |
00H |
Boot Type Indicator Byte |
1 Byte |
If Byte is 00H, the Partition is Inactive and if Byte is 80H , The Partition is Active (or Bootable) |
01H |
Head Number of Beginning of the Partition |
1 Byte |
Starting Head number of the Partition in Hexadecimal System |
02H |
Sector and Cylinder Number of Beginning of the Partition |
2 Bytes |
6 Bits of First Byte make Starting Sector Number and Combination of remaining 2 Bits (as Two Most Significant Bits) plus 8 Bits of another Byte (Rest 8 least Significant Bits of the 10-Bit Number ) make the Starting Cylinder Number of the Partition |
04H |
File System indicator Byte |
1 Byte |
File System Indicator Byte in Hexadecimal system (See the Table given next for Indicators) |
05H |
Head Number of End of the Partition |
1 Byte |
Ending Head Number of the Partition in Hexadecimal System |
06H |
Sector and Cylinder Number of End of the Partition |
2 Bytes |
6 Bits of First Byte make Ending Sector Number and Combination of remaining 2 Bits (as Two Most Significant Bits) plus 8 Bits of another Byte (Rest 8 least Significant Bits of the 10-Bit Number ) make the Ending Cylinder Number of the Partition |
08H |
Relative Sector number of Beginning of the Partition |
4 Bytes |
Number of Sectors Between the MBR and the First Sector in the Partition |
0CH |
Number of Sectors of the Partition |
4 Bytes |
Number of Sectors in the Partition |
Total = 16 Bytes |
Le codage du cylindre et du secteur a été donné dans l'exemple d'un exemple d'étude de table de partition réalisée ensuite.
Octet d'indicateur de système de fichiers (1 octet) : l'octet d'indicateur de système de fichiers à l'offset 04H représente le système de fichiers de cette partition. Le tableau, répertoriant l'octet d'indicateur de système de fichiers pour divers systèmes de fichiers, a été donné ensuite dans ce chapitre.
Cylindre de fin – Tête – Numéro de secteur de la partition (3 octets) : L'encodage est le même que pour Cylindre de début – Tête – Numéro de secteur de la partition.
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 en système hexadécimal.
Nombre de secteurs de la partition (4 octets) : nombre de secteurs dans la partition en système hexadécimal.
Il ne faut jamais oublier 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 grands disques durs (supérieurs à 8,4 Go), les valeurs CHS peuvent être invalides. Ces valeurs doivent généralement être ignorées et les valeurs de secteur absolues sont utilisées à la place.
La figure ci-dessous montre le MBR d'un disque avec des partitions FAT32. La zone en surbrillance de 64 octets à la fin de la figure représente la table de partition principale du MBR.
L'encodage pour le CHS de début et de fin est le suivant :
- Au décalage 00H, 80 (Hex) indique que la partition est une partition active.
- Au décalage 01H, 01 (Hex) représente le numéro de tête de départ = 1.
- La combinaison de deux octets à l'offset 02H et 03H forme le secteur de départ
et le numéro de cylindre de la partition selon l'encodage indiqué ci-après :
Ainsi Démarrage C-H-S de la partition= 0-0-1.
De même, le numéro de tête pour la fin de la partition est FE (Hex), 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 :
Ainsi, la terminaison C-H-S de la partition = 701-254-63.
L'octet 0B (Hex) au décalage 04H est l'octet indicateur du système de fichiers pour la partition. L'octet 0B (H) indique que la partition utilise le système de fichiers FAT32. Le tableau des différents systèmes de fichiers et leurs octets indicateurs de système de fichiers ont été donnés ci-dessous :
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
00H |
Unused/Empty Partition-Table Entry
(Remember this is not used to designate unused area on the disk, but marks an unused partition table entry) |
01H |
DOS 12-bit fat
(The type 01H is for partitions up to 15 MB) |
02H |
XENIX: root file system |
03H |
XENIX /usr file system (obsolete)
(XENIX is an old part of Unix V7. Microsoft XENIX Operating System was announced in August 1980. It was a portable and commercial version of the Unix operating system for the Intel 8086, Zilog Z8000, Motorola M68000 and Digital Equipment PDP-11. Microsoft introduced XENIX 3.0 in April 1983. SCO delivered its first XENIX for 8088/8086 in 1983.) |
04H |
16-bit FAT, DOS 3.0+ (Partition size < 32M)
(Some old DOS versions have had a bug which required this partition to be located in the 1st physical 32 MB of the hard disk ) |
05H |
DOS Extended (DOS 3.3+ Extended Volume)
Supports at most 8.4 GB disks. With this type 05H DOS/Windows will not use the extended BIOS call, even if it is available.) |
06H |
16-bit FAT, DOS Big, DOS 3.31+ (Partition Size >= 32M)
(Partitions are at most 2 GB for DOS and Windows 95/98 with maximum 65536 clusters with each cluster, at most 32 KB. Windows NT can create up to 4 GB FAT16 partition using 64 KB clusters.) |
07H |
OS/2 IFS (Installable File System) (HPFS is the best known example of this file system. OS/2 only looks at partitions with ID 7 for any installed IFS this is the reason that EXT2 IFS packet includes a special "Linux partition filter" device driver to fool OS/2 into thinking Linux partitions have ID 07). |
07H |
Advanced Unix |
07H |
Windows NT NTFS |
07H |
QNX2.x (pre-1988)
(For the actual file system of partition type 07H, one should inspect the partition boot record) |
08H |
OS/2 (v1.0 to v1.3 only) |
08H |
AIX boot partition
[AIX (Advanced Interactive Executive) is the IBM's version of Unix] |
08H |
SplitDrive |
08H |
DELL partition spanning multiple drives |
08H |
Commodore DOS |
08H |
QNX 1.x and 2.x
("qny" according to QNX partitions) |
09H |
AIX data partition |
09H |
Coherent file system
[Coherent was a UNIX like Operating System for the 286-386-486 systems, marketed by Mark Williams Company led by Bob Swartz. It was renowned for its good documentation. It was introduced in 1980 and died 1 Feb 1995. The last versions are V3.2 for 286-386-486 and V4.0 (May 1992, using protected mode) for 386-486 only. It sold for $99 a copy and it is rumored that 40000 copies have been sold. A Coherent partition has to be primary. ] |
09H |
QNX 1.x and 2.x ("qnz" according to QNX Partitions) |
0aH |
OS/2 Boot Manager
(OS/2 is the operating system designed by Microsoft and IBM to be the successor of MS-DOS) |
0aH |
Coherent swap partition |
0aH |
OPUS
(Open Parallel Unisys Server) |
0bH |
WIN95 OSR2 32-bit FAT
(OSR2 stands for Microsoft’s “OEM Service Release 2”. It is for Partitions up to 2047GB. Almost always, Windows 95/98/ME have the same File system which is FAT-32, within the same partitions limits) |
0cH |
LBA-mapped WIN95 OSR2 32-bit FAT
(It is using Logical Block Addressing – mode of Interrupt 13H extensions therefore we can say that this is the Extended INT 13H equivalent of 0BH. Almost always, Windows 95/98/ME have the same File system which is FAT-32, within the same partitions limits) |
0eH |
LBA-mapped WIN95: DOS 16-bit FAT or Logical Block Addressable VFAT
(It is same as 06H but using LBA-mode of INT 13H) |
0fH |
LBA-mapped WIN95: Extended partition or Logical Block Addressable VFAT
(It is same as 05H but using LBA-mode of INT 13H. Windows 95 uses 0EH and 0FH as the extended INT13H equivalents of 06H and 05H. Windows NT does not recognize the four Windows 95/98/ME types 0BH, 0CH, 0EH and 0FH) |
10H |
OPUS
(Octal Program Updating System) |
11H |
Hidden DOS 12-bit FAT or OS/2 Boot Manager hidden 12-bit FAT partition or DOS Seen From OS/2 (When OS/2 Boot manager boots a DOS partition, it will hide all primary DOS partitions except the one that is booted, by changing its ID and 01H, 04H, 06H and 07H becomes 11H, 14H, 16H and 17H, respectively. |
12H |
Compaq Configuration/diagnostics partition
(It is used by Compaq for their configuration utility partition. It is a FAT-compatible partition that boots into their utilities, and can be added to a LILO menu as if it were MS-DOS. ) |
14H |
(Hidden DOS 16-bit FAT or OS/2 Boot Manager Hidden DOS 16-bit FAT) <32M Partition
(Partition size is less than 32M. ID 14H is resulted from using Novell DOS 7.0 FDISK to delete Linux Native partition. ) |
15H |
Hidden DOS-Extended |
16H |
(Hidden DOS 16-bit FAT or OS/2 Boot Manager hidden 16-bit FAT ) >=32M Partition |
17H |
OS/2 Boot Manager hidden HPFS partition or Hidden IFS (e.g., HPFS) |
17H |
Hidden NTFS partition |
18H |
AST SmartSleep Partition or AST special Windows swap file ("Zero-Volt Suspend" partition)
[AST Research, Inc. (named from first initials of the founders, Albert Wong, Safi Qureshey and Thomas Yuen). Ascentia laptops have a “Zero – Volt Suspend Partition” or `SmartSleep Partition' of size 2MB+memory size.] |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
19H |
Willowtech Photon COS
(Code 19H is Claimed for Willowtech Photon COS by Willow Schlanger. |
1bH |
Hidden WIN95 OSR2 32-bit FAT or Hidden Windows 95 FAT32 Partition |
1cH |
LBA-mapped Hidden WIN95 OSR2 32-bit FAT
(It is hidden Windows95 FAT32 partition using LBA-mode of INT 13H Extensions) |
1eH |
LBA-mapped Hidden WIN95 16-bit FAT or Hidden LBA VFAT partition |
1FH |
LBA mapped Hidden WIN95 Extended or Hidden Extended LBA VFAT Partition |
20H |
OFSI
(Willowsoft Overture File System ) |
21H |
Officially listed as Reserved
(HP Volume Expansion, SpeedStor variant.) |
21H |
FSO2
(Claimed for FSO2 (Oxygen File System) by Dave Poirier) |
22H |
FSO2 Extended Partition
(Claimed for Oxygen Extended Partition by Dave Poirier) |
23H |
Officially listed as Reserved |
24H |
NEC DOS 3.x |
26H |
Officially listed as Reserved |
31H |
Officially listed as Reserved |
32H |
NOS (Network Operating System)
(32H is being used by the operating system NOS, being developed by Alien Internet Services in Melbourne Australia. The id 32H was chosen not only because of it was one of the few that are left available but also 32k is the size of the EEPROM the OS was originally targeted for. |
33H |
Officially listed as Reserved |
34H |
Officially listed as Reserved |
35H |
JFS on OS/2 or eCS
[35H is used by OS/2 Warp Server for e-Business, OS/2 Convenience Pack (aka version 4.5) and eComStation (eCS, an OEM version of OS/2 Convenience Pack) for the OS/2 implementation of JFS (IBM AIX Journaling File System)] |
36H |
Officially listed as Reserved |
38H |
THEOS v3.2 (2GB partition) |
39H |
Plan 9 partition
(Plan 9 is an operating system developed at Bell Labs for many architectures. Originally Plan 9 used an unallocated portion at the end of the disk. 3rd edition of Plan 9 uses partitions of type 39H, subdivided into sub partitions described in the Plan 9 partition table in the second sector of the partition.) |
39H |
THEOS v4 spanned partition |
3aH |
THEOS v4 (4GB partition) |
3bH |
THEOS v4 Extended partition
(THEOS is a multi-user multitasking Operating System for PCs founded by Timothy Williams in 1983.) |
3cH |
PartitionMagic recovery partition
(When a PowerQuest product like Partition Magic or Drive Image makes changes to the disk, it first changes the type flag to 3CH so that the Operating System will not try to modify it. At the end of the process, it is changed back to what it was at first. Therefore the only time you can see a 3CH type flag, is if the process was interrupted somehow such as power off, user reboot etc. If you change it back manually with a partition table editor or any disk editing program then most of the time everything is okay.) |
3dH |
Hidden NetWare |
40H |
Venix 80286
(It is a very old Unix-like operating system for PCs.) |
41H |
Linux/MINIX (sharing disk with DR-DOS)
(DR-DOS stands for Digital Research-Disk Operating System.) |
41H |
Personal RISC Boot |
41H |
PPC PReP (Power PC Reference Platform) Boot Partition |
42H |
Linux swap (sharing disk with DR-DOS) |
42H |
SFS (Secure File System)
(SFS is an encrypted file System driver for DOS on 386+ PCs, written by Peter Gutmann.) |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
42H |
Windows 2000 Dynamic Extended Partition Marker
(If a partition table entry of type 42H is present in the legacy partition table, then Windows 2000 ignores the legacy partition table and uses a proprietary partition table and a proprietary partitioning scheme (LDM or DDM). Pure dynamic disks (those not containing any hard-linked partitions) have only a single partition table entry, type 42H to define the entire disk. Dynamic disks store their volume configuration in a database located in a 1-MB private region at the end of each dynamic disk.) |
43H |
Linux native (sharing disk with DR-DOS) |
44H |
GoBack partition
(GoBack is a utility that records changes made to the disk, allowing you to view or go back to some earlier state. It takes over disk I/O like a Disk Manager would, and stores its logs in its own partition.) |
45H |
Boot-US boot manager
(Boot-US (Ulrich Straub) boot manager can be installed to MBR, a separate primary partition or diskette. When installed to a primary partition this partition gets the ID 45H. This partition does not contain a file system, it contains only the boot manager and occupies a single cylinder (below 8.4 GB). ) |
45H |
Priam |
45H |
EUMEL/Elan |
46H |
EUMEL/Elan |
47H |
EUMEL/Elan |
48H |
EUMEL/Elan
(EUMEL, later known as Ergos L3, are the multi-user multitasking systems developed by Jochen Liedtke at GMD, using Elan programming Language. It was used at German schools for the computer science education.) |
4aH |
AdaOS Aquila |
4aH |
ALFS/THIN lightweight filesystem for DOS |
4cH |
Oberon partition |
4dH |
QNX4.x |
4eH |
QNX4.x 2nd partition |
4fH |
QNX4.x 3rd partition
(QNX is a POSIX (Portable Operating System Interface for Unix)-certified, microkernel, distributed, fault-tolerant Operating System for the 386 and later, including support for the 386EX in embedded applications.) |
4fH |
Oberon boot/data partition |
50H |
OnTrack Disk Manager (older versions), Read-Only Partition (Disk Manager is a program of OnTrack to enable people to use IDE disks that are larger than 504MB under DOS. Linux kernel versions older than 1.3.14 do not coexist with DM.) |
50H |
Lynx RTOS (Real-Time Operating System)
(Lynx RTOS gives users the ability to place up to 14 partitions of 2 GB each on both SCSI and IDE drives, for a total of up to 28 GB of file system space.) |
50H |
Native Oberon |
51H |
OnTrack Disk Manager (DM6.0 Aux1), Read/Write Partition |
51H |
Novell |
52H |
CP/M |
52H |
Microport SysV/AT or Microport System V/386 |
53H |
OnTrack Disk Manager (DM6.0 Aux3), Write-Only partition |
54H |
OnTrack Disk Manager 6.0 Dynamic Drive Overlay |
55H |
EZ-Drive Partition
(EZ-Drive is another disk manager like program developed by MicroHouse in 1992. Now It is marketed by StorageSoft.) |
56H |
Golden Bow VFeature Partitioned Volume.
(This is also a Disk Manager like Utility software. This is a Non-Standard DOS Volume.) |
56H |
DM converted to EZ-BIOS |
57H |
DrivePro
(DrivePro was developed by MicroHouse in 1992. Now It is marketed by StorageSoft.) |
57H |
VNDI Partition |
5cH |
Priam EDisk Partitioned Volume
(Priam EDisk is Disk Manager type utility software. This is a Non-Standard DOS Volume.) |
61H |
SpeedStor
(Storage Dimensions SpeedStor Partitioned Volume. This is a Non-Standard DOS Volume. It is Disk Manager type utility software.) |
63H |
Unix System V/386, 386/ix, SCO, ISC Unix, UnixWare, Mach, MtXinu BSD 4.3 on Mach, GNU Hurd |
64H |
Novell NetWare 286, 2.xx |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
64H |
PC-ARMOUR protected partition
(64H is used by PC-ARMOUR disk protection by Dr. A. Solomon, intended to keep the disk inaccessible until the right password was given and then an INT 13H hook was loaded above top-of-memory that showed C-H-S = 0-0-2, with a copy of the real partition table, when 0-0-1 was requested). |
65H |
Novell NetWare 3.86, 3.xx or 4.xx
(Novell Netware 3.0 and later versions use one partition per drive. It allocates logical Volumes inside these partitions. The volumes can be split over several drives. The file system used is called Turbo FAT and it only very vaguely resembles the DOS FAT file system. Novell Netware used to be the main Network Operating System available. Netware 68 or S-Net (1983) was for a Motorola 68000, Netware 86 for an Intel 8086 or 8088. Netware 286 was for an Intel 80286 and existed in various versions that were later merged to Netware 2.2. Netware 386 was a rewrite in C for the Intel 386 which was later renamed to Netware 3.x (3.0, 3.1, 3.10, 3.11 and 3.12 etc) versions. Its successor Netware 4.xx had versions 4.00, 4.01, 4.02, 4.10 and 4.11. Then came Intranetware) |
66H |
Novell Netware SMS Partition
(SMS stands for Storage Management Services. It is not used now.) |
67H |
Novell |
68H |
Novell |
69H |
Novell Netware 5+ and Novell Netware NSS Partition
(NSS stands for Novell Storage Services.) |
70H |
DiskSecure Multi-Boot |
71H |
Officially listed as reserved |
73H |
Officially listed as reserved |
74H |
Officially listed as reserved |
74H |
Scramdisk partition
(Scramdisk is a disk encryption software. It supports container files, dedicated partitions type 74H and disks hidden in WAV audio files.) |
75H |
IBM PC/IX |
76H |
Officially listed as reserved |
77H |
M2FS/M2CS partition |
77H |
QNX 4.x |
78H |
XOSL File System
(XOSL Boot loader file system) |
78H |
QNY 4.x |
79H |
QNZ 4.x |
7EH |
F.I.X. |
7Fh |
Alt-OS-Development Partition Standard |
80H |
Old MINIX, MINIX v1.1 to v1.4a |
81H |
MINIX 1.4b and Later
(MINIX is a Unix-like operating system written by Andy Tanenbaum and students at the Vrije University, Amsterdam, around 1989-1991. It runs on PCs (8086 and up), Macintosh, Atari, Amiga, Sparc. |
81H |
Early Linux |
81H |
Mitac Advanced Disk Manager |
82H |
Prime |
82H |
Solaris x86
(Solaris creates a single partition with ID 82H and then uses Sun disk labels within the partition to split it further.) |
82H |
Linux Swap partition |
83H |
Linux Native Partition or Linux native file system or Linux Ext2fs
(Linux is a Unix-like operating system written by Linus Torvalds and many others on the internet since 1991. It runs on PCs 386 and later and a variety of other hardware. It is distributed under GPL (General Public License) . Various file system types like xiafs, ext2, ext3, reiserfs, etc. all use ID 83H.) |
84H |
OS/2 hidden C: drive or OS/2-renumbered type 04 partition.
(OS/2-renumbered type 04h partition is related to hiding DOS C: drive) |
84H |
Hibernation partition
(Reported for various laptop models, e.g., used on Dell Latitudes (with Dell BIOS) that use the MKS2D utility.) |
85H |
Linux Extended partition |
86H |
Old Linux RAID partition super block |
86H |
FAT16 volume/stripe set (Windows NT) or NTFS volume set
(It is Legacy Fault Tolerant FAT16 volume.) |
87H |
HPFS Fault-Tolerant mirrored partition or NTFS volume set or NTFS volume/stripe set
(Legacy Fault Tolerant NTFS volume. HPFS Fault-Tolerant mirrored partition. ) |
8aH |
Linux Kernel Partition
(It is used by AiR-BOOT) |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
8bH |
Legacy Fault Tolerant FAT32 volume |
8cH |
Legacy Fault Tolerant FAT32 volume using BIOS Extended INT 13H. |
8dH |
Free FDISK hidden Primary DOS FAT12 partition
(Free FDISK is the FDISK used by FreeDOS. It hides types 01H, 04H, 05H, 06H, 0BH, 0CH, 0EH and 0FH by adding decimal Number 140 (8CH).) |
8eH |
Linux Logical Volume Manager partition |
90H |
Free FDISK hidden Primary DOS FAT16 partition |
91H |
Free FDISK hidden DOS extended partition |
92H |
Free FDISK hidden Primary DOS large FAT16 partition |
93H |
Hidden Linux native partition |
93H |
Amoeba file system |
94H |
Amoeba bad block table
(Amoeba is a distributed operating system written by Andy Tanenbaum, together with Frans Kaashoek, Sape Mullender, Robert van Renesse and others since 1981. It runs on PCs (386 and up), Sun3, Sparc, 68030. It is free for universities for research and teaching purposes.) |
95H |
MIT EXOPC native partition |
97H |
Free FDISK hidden Primary DOS FAT32 partition |
98H |
Free FDISK hidden Primary DOS FAT32 partition (LBA) |
99H |
Mylex EISA SCSI or DCE376 logical drive
(It is used by the Mylex DCE376 EISA SCSI adaptor for partitions which are beyond the 1024 cylinder of a drive.) |
9aH |
Free FDISK hidden Primary DOS FAT16 partition (LBA) |
9bH |
Free FDISK hidden DOS extended partition (LBA) |
9fH |
BSD/OS |
a0H |
Phoenix NoteBIOS Power Management "Save-to-Disk" partition or Laptop hibernation partition
(It is Reported for various laptops like IBM Thinkpad, Phoenix NoteBIOS, Toshiba under names like zero-volt suspend partition, suspend-to-disk partition, save-to-disk partition, power-management partition, hibernation partition, usually at the start or end of the disk area.) |
a1H |
Laptop hibernation partition
(Used as "Save-to-Disk" partition on a NEC 6000H notebook. Types A0H and A1H are used on systems with Phoenix BIOS. The Phoenix PHDISK utility is used with these.) |
a1H |
HP Volume Expansion (SpeedStor variant) |
a3H |
Officially listed as Reserved |
a4H |
Officially listed as Reserved |
a5H |
BSD/386, 386BSD, NetBSD, FreeBSD
(386BSD is a Unix-like operating system, a port of 4.3BSD Net/2 to the PC done by Bill Jolitz around 1991.) |
a6H |
OpenBSD
(OpenBSD, led by Theo de Raadt, split off from NetBSD. It tries to emphasize on security.) |
a7H |
NEXTSTEP
(NEXTSTEP is Based on Mach 2.6 and features of Mach 3.0. It is a true object-oriented operating system and user environment. |
a8H |
Mac OS-X
(Apple's OS-X uses this type for its file system partition) |
a9H |
NetBSD |
aaH |
Olivetti Fat 12 1.44MB Service Partition
(It Contains a bare DOS 6.22 and a utility to exchange types 06H and AAH in the partition table.) |
abH |
Mac OS-X Boot partition
(Apple's OS-X (Darwin Intel) uses this type for its boot partition.) |
abH |
GO! partition |
aeH |
ShagOS file system |
afH |
ShagOS swap partition |
b0H |
BootStar Dummy
(The boot manager BootStar manages its own partition table, with up to 15 primary partitions. It fills unused entries in the MBR with BootStar Dummy values.) |
b1H |
Officially listed as Reserved |
b3H |
Officially listed as Reserved |
b4H |
Officially listed as Reserved |
b6H |
Officially listed as Reserved |
B6H |
Windows NT mirror set (master), FAT16 file system |
b7H |
BSDI file system (secondarily swap), BSDI BSD/386 file system |
B7H |
Windows NT mirror set (master), NTFS file system |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
b8H |
BSDI BSD/386 swap partition (secondarily file system)
(BSDI (Berkeley Software Design, Inc.) was founded by former CSRG (UCB Computer Systems Research Group) members. Their operating system, based on Net/2, was called BSD/386.) |
bbH |
Boot Wizard hidden |
beH |
Solaris 8 boot partition |
c0H |
DR-DOS/Novell DOS secured partition |
C0H |
CTOS |
c0H |
REAL/32 secure small partition |
c0H |
NTFT Partition |
c1H |
DR DOS 6.0 LOGIN.EXE-secured 12-bit FAT partition |
c2H |
Reserved for DR-DOS 7+ |
c2H |
Hidden Linux |
c3H |
Hidden Linux swap |
c4H |
DR DOS 6.0 LOGIN.EXE-secured 16-bit FAT partition |
c5H |
DRDOS/secured (Extended) |
c6H |
DRDOS/secured (FAT-16, >= 32M)
(DR-DOS 6.0 will add C0H to the partition type for a LOGIN.EXE - secured partition so that User can not avoid the password check by booting from an MS-DOS floppy. Otherwise it seems that the types C1H, C4H, C5H, C6H and D1H, D4H, D5H, D6H are used precisely like 1H, 4H, 5H, and 6H.) |
c6H |
Corrupted FAT16 volume/stripe set (Windows NT)
(NTFS will add C0H to the partition type for disabled parts of a Fault Tolerant set. Thus, one gets types C6H, C7H.) |
c7H |
Windows NT corrupted NTFS volume/stripe set |
c7H |
Syrinx boot |
c8H |
Officially listed as Reserved |
c9H |
Officially listed as Reserved |
caH |
Officially listed as Reserved |
cbH |
Reserved for DR-DOS secured FAT32 |
ccH |
Reserved for DR-DOS secured FAT32 (LBA) |
cdH |
CTOS Memdump |
ceH |
Reserved for DR-DOS secured FAT16 (LBA) |
d0H |
REAL/32 secure big partition
(REAL/32 is a continuation of DR Multi-user DOS.) |
d1H |
Old Multi-user DOS secured FAT12 |
d4H |
Old Multi-user DOS secured FAT16 <32M |
d5H |
Old Multi-user DOS secured extended partition |
d6H |
Old Multi-user DOS secured FAT16 >=32M |
d8H |
CP/M-86 |
daH |
Non-FS Data |
dbH |
Digital Research CP/M, Concurrent CP/M, Concurrent DOS |
dbH |
CTOS (Convergent Technologies OS -Unisys) |
dbH |
KDG Telemetry SCPU boot
(KDG Telemetry uses ID DBH to store a protected-mode binary image of the code to be run on a 'x86-based SCPU (Supervisory CPU) module from the DT800 range.) |
ddH |
Hidden CTOS Memdump |
deH |
Dell PowerEdge Server utilities (FAT) |
dfH |
DG/UX virtual disk manager partition |
dfH |
BootIt EMBRM
(The boot manager BootIt manages its own partition table, with up to 255 primary partitions.) |
e0H |
Reserved by ST Microelectronics for a file system called ST AVFS. |
e1H |
DOS access or SpeedStor 12-bit FAT extended partition
(It is a SSTOR partition on cylinders more than 1023.) |
E2H |
DOS Read-Only |
e3H |
Storage Dimensions |
e4H |
SpeedStor 16-bit FAT extended partition < 1024 cylinders |
e5H |
Officially listed as Reserved |
e5H |
Tandy DOS with logical sectored FAT |
e6H |
Officially listed as Reserved |
ebH |
BeOS BFS (BFS1)
(BeOS is an operating system that runs on Power PCs) |
edH |
Reserved for Matthias Paul’s Sprytix |
eeH |
Indication that this legacy MBR is followed by an EFI Header |
efH |
Partition that contains an EFI file system |
f0H |
Linux/PA-RISC boot loader |
f1H |
Storage Dimensions |
f2H |
DOS 3.3+ secondary partition |
f2H |
Unisys DOS with logical sectored FAT |
f3H |
Officially listed as Reserved |
f4H |
SpeedStor large partition |
F4H |
Prologue single-volume partition |
File system Indicator Byte in Hexadecimal |
Partition/ File system Description |
f5H |
Prologue multi-volume partition
(The type F4H partition contains one volume, and is not used anymore. The type F5H partition contains 1 to 10 volumes called MD0 to MD9. It supports one or more systems. Each volume can have as file system the NGF file system or TwinFS file system. ) |
f6H |
Officially listed as Reserved |
F6H |
Storage Dimensions SpeedStor |
faH |
MandrakeSoft's Bochs x86 emulator |
fbH |
VMware File System partition |
fcH |
VMware Swap partition
(VMware offers virtual machines in which one can run Linux, Windows, FreeBSD.) |
fdH |
Linux raid partition with auto detect using persistent super block |
feH |
SpeedStor more than 1024 cylinders |
feH |
LANstep |
feH |
IBM PS/2 IML (Initial Microcode Load) partition
(It is located at the end of the disk.) |
feH |
Windows NT Disk Administrator hidden partition
(Windows NT Disk Administrator marks hidden partitions, i.e. present but not to be accessed, as type FEH.) |
feH |
Linux Logical Volume Manager partition (old) |
ffH |
XENIX Bad Block Table |
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 sur 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
L'enregistrement de démarrage DOS (DBR) pour la première partition sur un disque dur se trouve généralement au secteur absolu 63 (le 64e secteur sur le lecteur de disque) ou sous forme CHS, nous pouvons dire C–H–S = 0–1–1 pour la plupart des lecteurs.
Cependant, cet emplacement peut varier en fonction du SPT (secteurs par piste) du lecteur. Par exemple, sur un ancien lecteur de 245 Mo n'ayant que 31 SPT, l'enregistrement de démarrage était situé sur le 32e secteur (secteur absolu 31).
Le DBR est créé par la commande FORMAT du DOS. Ce programme peut être exécuté à partir d'une disquette DOS (ou directement à partir d'un autre volume, en respectant certaines limites du système d'exploitation) pour créer le DBR après le partitionnement à l'aide de la commande FDISK.
Le secteur sur lequel réside DBR devient le secteur logique 1 de cette partition particulière pour le DOS. Le numéro de secteur utilisé par DOS commence par le 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. Le travail 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 de programme pour démarrer la machine, c'est-à-dire charger le système d'exploitation, mais seule cette partition est contrôlée par le Master Boot Record qui est spécifié comme partition active, dans l'entrée de la table de partition.
Le programme Boot 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 des 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 l'ordinateur. Si ces fichiers système ne sont pas disponibles dans le répertoire, ce programme MBR affiche des messages d'erreur apaisants comme,
"Disque système non valide ou erreur d'E / S de disque,
Remplacez le disque, puis appuyez sur n'importe quelle touche…”
Sur l'écran et attend que l'utilisateur place une disquette amorçable avec les programmes mentionnés ci-dessus dans le lecteur de disquette et appuie sur une touche.
Puisque la disquette n'a pas de partitions, elle n'a donc pas de MBR ou de table de partition principale sur son secteur 0 absolu, à la place, elle contient le DBR sur son tout premier secteur.
Le tableau suivant donne une carte simple de la disposition d'une disquette de 3½ pouces, 1,44 Mo après avoir été formatée avec le système de fichiers FAT12. Il indique où se trouvent le Boot Record, les deux copies du FAT, le répertoire racine et le début de la zone de données :
Logical Map of 3½ Inches, 1.44 MB floppy disk, Formatted with the FAT12 File System and having 18 Sectors Per Track, 80 Tracks, 2 Sides and 512 bytes per Sector (using 1 Sector per Cluster). |
Absolute Sectors |
Contents |
0 |
Boot Record |
1 – 9 |
FAT 1 |
10 – 18 |
FAT 2 |
19 – 32 |
Root Directory |
33 – 2879 |
Data Area |
Vous pouvez également créer des sous-répertoires dans la zone de données avec des fichiers qui semblent être contenus à l'intérieur. En fait, les sous-répertoires ne sont rien de plus qu'un fichier spécial qui répertorie tous les fichiers apparemment contenus dans ce répertoire et toutes les données pertinentes sur chaque fichier telles que l'emplacement du cluster de départ 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 sont situées dans le premier secteur de chaque partition, telles que :
- Code d'accès + NOP
- Nom et version OEM
- Octets par secteur
- Secteurs par cluster
- Secteurs réservés
- Nombre de copies de FAT
- Nombre maximal d'entrées dans le répertoire racine (mais non disponible pour FAT32)
- Nombre de secteurs dans la partition inférieur à 32 Mo (donc non disponible pour FAT32)
- Descripteur de média (F8h pour les disques durs)
- Secteurs par 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
- Indicateurs de descripteur d'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 de disque logique de la partition
- Signature étendue (29H)
- Numéro de série de la partition
- Nom du volume de la partition
- Nom FAT
- Code exécutable
- Marqueur exécutable ou numéro magique (AAH 55H)
Les 3 premiers octets de DBR contiennent une instruction JMP pour ignorer les informations et rendre les extensions possibles car le MBR charge ce secteur en mémoire et lui transfère l'exécution. Habituellement, ces trois octets sont des nombres hexadécimaux au format quelque chose comme E9 XX XX (Hex) ou EB XX 90 (Hex).
Après l'instruction initiale de JMP, 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 BIOS Parameter Block (BPB). Le bloc de paramètres de disque est une zone de données très importante pour DOS. Cela aide le DOS à trouver :
- Octets par secteur
- Secteurs par cluster
- Secteurs réservés
- Nombre de FAT
- Nombre d'entrées du répertoire racine
FAT32 DOS Boot Record Format |
Offset |
Description |
Size |
00H |
Jump Code + NOP |
3 Bytes |
03H |
OEM Name and Version |
8 Bytes |
0BH |
Bytes Per Sector |
2 Bytes |
0DH |
Sectors Per Cluster |
1 Byte |
0EH |
Reserved Sectors |
2 Bytes |
10H |
Number of Copies of FAT |
1 Byte |
11H |
Maximum Root Directory Entries (but Not Available for FAT32) |
2 Bytes |
13H |
Number of Sectors in Partition Smaller than 32MB (Therefore Not Available for FAT32) |
2 Bytes |
15H |
Media Descriptor (F8H for Hard Disks) |
1 Byte |
16H |
Sectors Per FAT (In Older FAT Systems and Not Available for FAT32) |
2 Bytes |
18H |
Sectors Per Track |
2 Bytes |
1AH |
Number of Heads |
2 Bytes |
1CH |
Number of Hidden Sectors in Partition |
4 Bytes |
20H |
Number of Sectors in Partition |
4 Bytes |
24H |
Number of Sectors Per FAT |
4 Bytes |
28H |
Flags (Bits 0-4 Indicate Active FAT Copy) (Bit 7 Indicates whether FAT Mirroring is Enabled or Disabled <Clear is Enabled>) (If FAT Mirroring is Disabled, the FAT Information is only written to the copy indicated by bits 0-4) |
2 Bytes |
2AH |
Version of FAT32 Drive (High Byte = Major Version, Low Byte = Minor Version) |
2 Bytes |
2CH |
Cluster Number of the Start of the Root Directory |
4 Bytes |
30H |
Sector Number of the File System Information Sector (Referenced from the Start of the Partition) |
2 Bytes |
32H |
Sector Number of the Backup Boot Sector (Referenced from the Start of the Partition) |
2 Bytes |
34H |
Reserved |
12 Bytes |
40H |
Logical Drive Number of Partition |
1 Byte |
41H |
Unused (Could be High Byte of Previous Entry) |
1 Byte |
42H |
Extended Signature (29H) |
1 Byte |
43H |
Serial Number or 32 – Bit Binary ID of Partition
(Binary ID of 32 Bits provided by the OS itself) |
4 Bytes |
47H |
Volume Name of Partition |
11 Bytes |
52H |
FAT Name (FAT32 in this case) |
8 Bytes |
5AH |
Executable Code |
420 Bytes |
1FEH |
Executable Marker or Magic Number (AAH 55H) |
2 Bytes |
- Total des secteurs dans le volume logique (petit, pour une taille de volume logique inférieure ou égale à 32 Mo)
- Octet de descripteur de média
- Nombre de secteurs par FA
Ces informations nous aident à trouver l'emplacement de FAT et d'autres valeurs importantes. Mettre des informations erronées ici ou corrompre ces valeurs rend impossible le démarrage à partir du disque dur. Parfois, avoir des informations erronées dans le bloc de paramètres du disque empêchera le démarrage à partir du disque dur ainsi que du lecteur de disquette.
Les octets par secteur sont presque toujours 512. Si ce n'est pas le cas, 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 Clusters donnée dans ce chapitre plus haut). Le nombre de copies de FAT est presque toujours de 2.
Nombre de répertoires racine : Cela dépend du système de fichiers et de la taille du volume. (Voir les limites du système de fichiers données avant et la description du répertoire racine donnée ensuite).
Nombre total de secteurs : exclut les secteurs masqués. Si c'est 0 dans le BPB, le champ dans les informations d'enregistrement de démarrage étendu est utilisé et vice versa. Notez qu'il est possible de déterminer si les informations étendues (DOS 4.0 et versions ultérieures) sont disponibles en examinant l'octet de signature au décalage 26H.
Tous les secteurs situés avant le secteur de démarrage d'un lecteur logique DOS sont considérés comme des secteurs "cachés". Le DOS n'interprète pas les secteurs cachés. Les lecteurs de disquettes normaux ont 0 secteurs cachés. Les partitions du disque dur auront un numéro reflétant leur emplacement sur le disque. Notez que toute la première tête du premier cylindre est généralement réservée à la table de partition, même si ce n'est que le premier secteur qui est réellement utilisé.
Descripteur de média : utilisé pour donner 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 de Media Descriptor Bytes ont été données dans le tableau suivant.
Media Descriptors |
Type |
Capacity |
Size and type |
F0H |
2.88 MB |
3.5", 2-Sided, 36 Sectors per Track |
F0H |
1.44 MB |
3.5", 2-Sided, 18 Sectors per Track |
F9H |
720 KB |
3.5", 2-Sided, 9 Sectors per Track |
F9H |
1.2 MB |
5.25", 2-Sided, 15 Sectors per Track |
FDH |
360 KB |
5.25", 2-Sided, 9 Sectors per Track |
FFH |
320 KB |
5.25", 2-Sided, 8 Sectors per Track |
FCH |
180 KB |
5.25", 1-Sided, 9 Sectors per Track |
FEH |
160 KB |
5.25", 1-Sided, 8 Sectors per Track |
F8H |
--------- |
Fixed Disk |
Number of Sectors of FAT: It must be calculated. The method of calculating the size of FAT has been given in the description of FAT given in the chapter.
Le DBR d'un système de fichiers FAT32 a été donné dans la figure ci-dessous :
Secteurs par piste (ou secteurs par tête) : les secteurs par tête correspondent au nombre de secteurs regroupés sous une tête. De même, Têtes par cylindre reflète le nombre de cylindres par tête. Si cette partition est une partition CHS, ces valeurs doivent être identiques à celles renvoyées par le BIOS. S'ils ne sont pas identiques, vous devez considérer que le disque a été mal configuré et que la partition est peut-être inutilisable.
Secteurs cachés : comme nous l'avons déjà mentionné, il s'agit du nombre de secteurs sur le disque physique précédant le démarrage du volume, avant le secteur de démarrage lui-même. Il est utilisé pendant la séquence de démarrage afin de calculer le décalage absolu vers le répertoire racine et les 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 le même que le "nombre de secteurs précédant la partition" dans la table des partitions. 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 dans la table de partition, vous pouvez considérer le secteur de démarrage comme corrompu et la partition inutilisable. Notez également que le mot haut contient généralement des déchets dans les anciennes versions de DOS.
Si vous soupçonnez qu'un secteur de démarrage est devenu corrompu, vous pouvez vérifier plusieurs des champs répertoriés ci-dessus pour voir si les valeurs qui y sont répertoriées ont un 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 sont appropriées pour le système d'exploitation qui a formaté le disque.
Par exemple, les chaînes de texte typiques sur les volumes FAT formatés par MS-DOS incluent : "Disque système non valide.", "Erreur d'E/S de disque.", "Remplacez le disque, puis appuyez sur n'importe quelle touche", "Disque non système ou erreur de disque", "Remplacez et appuyez sur n'importe quelle touche lorsque vous êtes prêt." et "Échec de démarrage du disque." Les chaînes de texte sur les volumes FAT formatés par Windows NT incluent : "BOOT : Impossible de (ou n'a pas pu) trouver NTLDR", "Erreur d'E/S lors de la lecture du disque." et "Veuillez insérer un autre disque".
Mais rappelez-vous que vous ne devez pas considérer cette liste comme étant exhaustive. Si vous trouvez d'autres messages dans le secteur d'amorçage, cela n'indique pas nécessairement qu'il y a un problème avec le secteur d'amorçage. Différentes versions de MS-DOS et Windows NT peuvent parfois avoir des chaînes de message légèrement différentes dans leurs secteurs de démarrage.
D'autre part, si vous ne trouvez aucun texte, ou si le texte n'est manifestement pas lié à MS-DOS ou Windows NT, vous devez envisager la possibilité que votre secteur de démarrage ait été infecté par un virus ou que certains une autre forme de corruption de données peut avoir eu lieu.
Pour récupérer d'un secteur de démarrage qui a été 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 feront bien plus que simplement écrire des données dans le secteur de démarrage. La réparation manuelle du secteur de démarrage n'est donc pas recommandée, car elle peut ne pas éliminer complètement le virus ou le cheval de Troie et, dans certains cas, peut faire plus de mal que de bien. Cependant, nous allons traiter de DBR dans la section programmation de ce livre.
Si vous pensez que le secteur d'amorçage a été endommagé pour une autre raison, il peut être possible de récupérer des dommages du secteur d'amorçage sans reformater le disque en modifiant manuellement les champs décrits ci-dessus. Nous essaierons de surmonter ces problèmes avec la programmation dans les techniques de programmation de récupération dans ce livre.
Tableau d'allocation de fichiers (FAT)
DBR suit les tableaux 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 Microsoft Disk Basic autonome. 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 supports amovibles et fixes.
En 1996, le FAT32 a été introduit avec Windows 95 OSR2. Comme nous l'avons vu précédemment, Windows 98/ME prend en charge FAT32 avec la taille des disques durs. 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 qui est encore utilisé aujourd'hui pour les disquettes. DOS 2.x a ajouté la prise en charge des disques durs, déplacé vers les 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 résoudre le problème de prise en charge des disques volumineux, car nous avons déjà discuté des limites des systèmes de fichiers.
FAT conserve une carte de la surface complète du lecteur de disque tel que, quelle zone est libre, quelle zone est mauvaise, quelle zone est occupée par quel fichier, etc. Lorsque certaines données stockées sur la surface du disque doivent être accessibles , le DOS consulte la FAT pour connaître les zones de la surface du disque dur qui contiennent les données.
Le type de FAT à utiliser est décidé par le programme FDISK lors de la partition du disque dur. Mais le FAT réel est écrit par le programme FORMAT de DOS.
Le FAT ne garde pas une trace de chaque secteur sur la surface du disque au lieu de cela, il gère la zone du disque dans un groupe de secteurs appelé "cluster" ou "unité d'allocation" (voir le cluster discuté auparavant, dans le même chapitre) .
Un cluster est la plus petite unité d'espace disque dur que DOS alloue à un fichier, il se compose d'un ou plusieurs secteurs en fonction de la taille du disque. La taille du cluster est décidée et fixée par le programme DOS FORMAT lors du formatage de haut niveau du disque dur. (Voir la discussion sur la "taille des clusters", donnée précédemment)
En fait, le FAT est un index des clusters du volume entier. Le FAT a une entrée pour chaque cluster. Les deux premières entrées d'une FAT contiennent des informations sur la FAT. La troisième entrée et les suivantes de la FAT sont attribuées à des groupes d'espace disque, en commençant par le premier groupe disponible pour être utilisé par les fichiers
Parce que la FAT est un élément si important, DOS conserve deux copies de la FAT, la FAT primaire ou FAT1 et la FAT ou FAT2 secondaire (il y a normalement deux copies, mais de nombreux nouveaux systèmes d'exploitation créent plus de deux copies de FAT).
Chaque FAT occupe des secteurs contigus sur le disque, le 2e FAT suivant immédiatement le 1er FAT ne fait pas que le DOS utilise le 2e FAT pour corriger le problème, mais lorsque le 1er FAT est mis à jour, le DOS le copie sur le 2e FAT, corrompant le 2ème FAT également, en cours de route.
Cette mise à jour est effectuée chaque fois que DOS trouve que la 1ère et la 2ème FAT ne correspondent pas. Ainsi, en cas de corruption de la 1ère FAT, il faut immédiatement effectuer la réparation en utilisant un logiciel d'édition de disque et en comparant la 1ère FAT avec la 2ème FAT. Cela doit être fait avant que DOS ne copie la FAT corrompue sur la seconde FAT.
Avec l'introduction de FAT32, les entrées FAT et la numérotation des secteurs sont désormais en 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 sous FAT32.
La taille de l'entrée de répertoire pour chaque fichier en FAT 32 est de 4 octets pour contenir la valeur du cluster de départ du fichier plutôt que les 2 octets nécessaires sous FAT16. La valeur la plus élevée correspond au plus grand nombre de clusters possibles.
Traditionnellement, chaque entrée de répertoire est un enregistrement de 32 octets, et cela reste le même. Au milieu de l'enregistrement de répertoire, il y a 10 octets (octets 12 à 21) que Microsoft a réservés pour son propre usage futur. Deux de ces octets sont maintenant utilisés pour accueillir les octets supplémentaires nécessaires pour spécifier le cluster de départ sous FAT32.
Comme nous l'avons déjà mentionné, il existe des versions 12 bits, 16 bits et 32 bits de FAT. Alors que la FAT 32 bits permet un stockage beaucoup plus efficace qui peut être jusqu'à 30 % plus efficace et l'utilisation de disques durs plus volumineux.
Lorsque le système de fichiers d'un système d'exploitation est appelé par un programme pour trouver 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 qui contiennent des données appartenant à un fichier.
FAT32 Drive Layout |
Offset |
Description |
Start of Partition |
Boot Sector |
Start of Partition + Number of Reserved Sectors |
FAT Tables |
Start of Partition + Number of Reserved Sector + (Number of Sectors Per FAT * 2)
[Assuming that FAT Mirroring is Enabled, this is almost always true] |
Root Directory |
Start of Partition + Number of Reserved Sectors + (Number of Sectors Per FAT * 2) + Number of Sectors in root directory |
Data Area |
Les entrées FAT peuvent contenir des valeurs indiquant :
- Le cluster suivant dans une chaîne FAT pour un fichier donné
- Les clusters libres, c'est-à-dire les clusters qui ne sont utilisés par aucun fichier
- Les informations sur les secteurs défectueux, c'est-à-dire le cluster contenant un ou plusieurs secteurs qui sont physiquement endommagés et ne doivent pas être utilisés.
- Le cluster final d'un fichier
Entries of FAT Table |
Number (Hex.) |
Description |
0 |
Free cluster |
???? |
Cluster in use, next cluster in chain |
FF0-FF6 / FFF0-FFF6 |
Cluster is reserved |
FF7 /FFF7 |
Cluster contains bad sectors |
FF8-FFF / FFF8-FFFF |
End of file |
Chaque entrée FAT représente une adresse de cluster et contient un pointeur vers la prochaine adresse de cluster (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'une FAT contiennent des informations sur la FAT. Ces octets de la FAT contiennent un octet de descripteur de média. Cet octet peut être utilisé pour trouver le type de support disque auquel appartient cette entrée FAT.
La troisième entrée et les suivantes de la FAT sont attribuées à des clusters d'espace disque, en commençant par le premier cluster disponible pour être utilisé par les fichiers. Une entrée FAT peut avoir n'importe laquelle des valeurs indiquées dans le tableau ci-dessus, en fonction des informations qu'elle souhaite transmettre.
Un 000H en FAT 12 bits ou 0000H en 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 en FAT 12 bits ou FFF8H et FFFFH en FAT 16 bits indique que ce cluster est le dernier cluster d'une chaîne de clusters d'un fichier.
Valeur de FF0H à FF7H en 12 – Le bit FAT indique des clusters réservés. Un FF7H dans une FAT 12 bits ou un FFF7H dans une FAT 16 bits indique que le cluster correspondant à l'emplacement de la FAT est un mauvais cluster, 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 le mauvais - Arrêt
C'est une chose très courante et j'espère que vous l'avez remarqué à plusieurs reprises lors de l'utilisation de Windows. redémarrez ensuite votre ordinateur, le message d'Improper - Shutdown s'affiche à l'écran pendant le processus de démarrage et le système d'exploitation analyse le disque à la recherche d'erreurs.
Les deux figures suivantes montrent les 256 octets du début d'une FAT de 32 bits, mais nous n'avons besoin que des 8 octets initiaux pour en discuter.
En fait, lorsque le système d'exploitation Windows s'est chargé en mémoire, c'est-à-dire que Windows a démarré, le 8e octet (ou décalage 7H) de 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 tout autre volume auquel il accède.
Une fois que Windows démarre le démarrage, le 8e octet est remplacé par 07H ou F7H qui sera redéfini sur 0FH ou FFH uniquement si Windows est correctement arrêté.
S'il y a une 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 sous la forme 07H ou F7H qui informe le système d'exploitation Windows lors de la prochaine fois qu'il est démarré qu'il y a eu une sorte d'arrêt incorrect, puis Windows utilise son programme d'analyse de disque (Scandisk) pour vérifier le disque pour les erreurs.
Répertoire racine
Après le dernier FAT se trouve le répertoire racine. Le répertoire racine est comme une table des matières pour les informations stockées sur le disque dur. L'emplacement du répertoire racine peut être facilement établi en additionnant les valeurs de l'enregistrement de démarrage, car il est positionné à la suite des FAT.
La zone de répertoire conserve les informations sur le nom du fichier, la date et l'heure de la création du fichier, l'attribut du fichier, la taille du fichier et le cluster de départ du fichier particulier. 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 issus du répertoire racine. Tous les autres répertoires sont eux-mêmes stockés sous forme de fichiers, au même format que le répertoire racine. Auparavant, le répertoire racine avait une taille fixe et était situé à une position fixe sur le disque, mais il est désormais libre de s'agrandir autant que nécessaire car il est désormais traité comme un fichier.
Le nombre de fichiers que l'on peut stocker dans le répertoire racine dépend du type de FAT utilisé. Par exemple, pour une disquette 3½ pouces 1,44 Mo avec FAT 12 bits, elle est limitée à 224 entrées, si l'on essaie de stocker le 225e fichier, le DOS affichera une « erreur de création de fichier ». Lorsqu'une FAT 16 bits est utilisée, on peut avoir un total de 512 entrées dans le répertoire racine. Chaque répertoire principal sur une disquette ou un disque dur agit également comme une entrée de répertoire racine.
Le tableau suivant répertorie les limites des entrées racine pour différents supports et FAT :
Media and File System Description |
Maximum Root Directory Entries |
Single-sided 5¼ Inch 180K FDD |
64 |
Double-sided 5¼ Inch 320K FDD |
64 |
Double-sided 5¼ Inch 360K FDD |
112 |
Double-sided 3½ Inch 720K FDD |
112 |
Double-sided 5¼ Inch 1.2-megabyte FDD |
224 |
Double-sided 3½ Inch 1.44-megabyte FDD |
224 |
Double-sided 3½ Inch 1.68-megabyte DMF format disks (This is why Microsoft created CAB Files!) |
16 |
Double-sided 3½ Inch 2.88-megabyte FDD |
240 |
Hard Drives (FAT12 & FAT16) |
512 |
Hard Drives with FAT 32 (As it treats the route directory as a file) |
65,536 |
Cela ne signifie pas qu'avec 16-Bit FAT on est limité à stocker seulement 512 fichiers sur le disque dur. On peut utiliser des sous-répertoires pour stocker n'importe quel nombre de fichiers limité uniquement par la taille du lecteur.
N'oubliez pas que le nom de volume d'une disquette est généralement stocké dans le secteur de démarrage, mais le nom de 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 DIR du DOS renvoie celle du répertoire si elle est présente, ou celle du secteur d'amorçage sinon.
Les entrées de répertoire contiennent l'entrée dans la chaîne de clusters 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 facilement suivre ces entrées car elles seront toujours positionné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 ci-dessous montre comment les 32 octets d'entrée de répertoire d'un fichier dans le répertoire racine sont découpés en tranches pour stocker les diverses informations le concernant :
Offset |
Size |
Description |
00H |
8 Bytes |
Filename
(Also see the next table for the special meaning of first character of file name) |
08H |
3 Bytes |
Extension |
0BH |
1 Byte |
File attributes(See The Table Of File Attributes) |
0CH |
10 Bytes |
Reserved |
16H |
2 Bytes |
Time Created or Last Updated (See Date–Time Format Table) |
18H |
2 Bytes |
Date Created or Last Updated (See Date–Time Format Table) |
1AH |
2 Bytes |
Starting or First cluster of file
(The value 0000H is used in Parent Directory ('..') entries to indicate that the Parent Directory is the Root Directory) |
1CH |
4 Bytes |
File size in Bytes. |
Le nom de fichier contient le nom en majuscule et si la taille du nom de fichier est inférieure aux 8 caractères, les espaces sont remplis avec des caractères d'espacement du numéro ASCII 32. Le champ d'extension contient l'extension du fichier, en majuscule.
Si le nom de fichier dépasse les 8 caractères, Windows crée un nom de fichier court à partir d'un long en le tronquant à six caractères majuscules et en ajoutant "~1" à la fin du nom de fichier de base.
S'il existe déjà un autre nom de fichier avec les mêmes six premiers caractères, le nombre est incrémenté. L'extension reste la même et tout caractère illégal dans les versions antérieures de Windows et DOS est remplacé par un trait de soulignement.
Les noms de fichiers longs sont stockés dans des entrées de répertoire LFN (Long File Name) spécialement formatées de 32 octets, marquées avec 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 unique 8.3 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 associe autant que nécessaire pour constituer un nom de fichier long complet.
C'est la raison pour laquelle les noms de fichiers longs diminuent le nombre maximum possible d'entrées de répertoire racine dans un système de fichiers. Comment Windows prend en charge les noms de fichiers longs, nous en discuterons en détail plus loin dans ce chapitre.
Le premier octet du nom de fichier peut également contenir des informations importantes sur le fichier. Les informations données par cet octet peuvent être celles données dans le tableau suivant :
First Character of File Name |
Value |
Meaning |
00H |
Indicates that this directory entry is unused. |
05H |
Indicates that 1st character of filename is character E5H But actually the file has not been deleted. (See the Meaning of E5H) |
E5H |
The file has been Erased and this directory entry is a deleted file’s directory entry. The data area previously occupied by that file is now free for allocation for another new file. |
2EH |
This is a Sub-directory. The cluster number field of this entry will contain the cluster number of the directory. |
2EH 2EH |
Two 2EH in a directory entry indicate the parent directory entry of a Sub–Directory. The cluster number of this entry will contain the cluster number of the parent directory of this directory. The cluster number will be zero 0000H if the parent directory is root directory. |
Les Attributs sont un champ codé en binaire de 8 bits. Le tableau suivant indique le statut de l'indicateur des attributs pour le fichier donné :
Attribute Bits |
Attribute |
Bit |
Binary |
Hex |
Read Only File Flag |
0 |
.......? |
01H |
Hidden File Flag |
1 |
......?. |
02H |
System File Flag |
2 |
.....?.. |
04H |
Volume Label Flag
(Indicates that the entry is a volume label) |
3 |
....?... |
08H |
Sub–directory
(in same format as directory) |
4 |
...?.... |
10H |
Archive Bit
(File Modified Since Last Backup) |
5 |
..?..... |
20H |
Reserved (Contains 0) |
6 |
.0...... |
- |
Reserved (Contains 0) |
7 |
0....... |
- |
Un fichier peut avoir plusieurs attributs. Par exemple, un seul fichier peut être un fichier en lecture seule ainsi qu'un fichier caché ou un seul fichier peut avoir les deux attributs, le fichier système et le fichier caché. (Voir l'exemple donné ensuite pour le codage des entrées de répertoire).
L'heure et la date sont des champs spécialement codés de 32 bits (16 bits pour l'heure et 16 bits pour la date). La répartition de ces Bits d'encodage pour composer l'Heure de création ou de dernière mise à jour et la Date de création ou de dernière mise à jour pour 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 est le 16e et le 17e octet dans l'entrée de répertoire, a le format indiqué dans le tableau ci-dessus. L'encodage est le suivant :
- H est un nombre binaire pour l'heure, qui peut aller de 0 à 23
- M est un nombre binaire pour minute, qui peut aller de 0 à 59
- S est un nombre binaire pour les secondes par incrément de 2 secondes
- L'entrée pour les données de création ou de dernière mise à jour du fichier, qui est le 18e et
- 19e octet dans l'entrée de répertoire, a le format suivant :
- Y est un nombre binaire entre 0 et 127 ou l'année 1980 à 2107
- M est un nombre binaire pour le mois, cela peut aller de 1 à 12
- D est un nombre binaire pour la date, cela peut aller de 1 à 31
Cette entrée de répertoire est liée à l'entrée FAT basée sur la première valeur de cluster. Une fois que le DOS a la valeur de cluster de départ de n'importe quel fichier du répertoire, le DOS peut trouver le fichier complet en utilisant le FAT. Le cluster d'entrée dans la chaîne est le premier cluster qui compose le fichier. Si l'indicateur de répertoire des attributs est défini, ce champ pointe vers une nouvelle entrée de répertoire.
L'entrée de la taille du fichier est de 4 octets. Par 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. Les 4 octets ont 32 bits et la taille de fichier maximale possible composée d'un binaire de 32 bits peut être,
= 11111111 11111111 11111111 11111111 (B) Bytes
= 4,294,967,295 (D) Bytes
~ 4 GiB
Ainsi, le FAT32 prend en charge la taille de fichier maximale jusqu'à 4 Gio.
La taille du fichier et le cluster de départ du fichier peuvent être une ressource précieuse pour la récupération de données lors de la récupération de fichiers endommagés, car nous pouvons calculer le nombre de clusters dont le fichier est censé être composé.
La figure ci-dessus montre l'entrée du répertoire racine pour sept fichiers différents. L'encodage de ces entrées a été donné dans le tableau suivant :
Nom de fichier long (LFN)
Comme nous l'avons déjà discuté plus tôt dans la discussion sur le répertoire racine, auparavant, le répertoire racine avait une taille fixe et était situé à une position fixe sur le disque, mais maintenant il est libre de croître autant que nécessaire car il est maintenant 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 contenir 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, planteront car un programme doit réserver de la mémoire pour stocker les noms de fichiers qu'il lit, et s'il met de côté 16 octets pour un nom de fichier et le système d'exploitation copie (disons) 32 caractères dans cet espace, puis les autres données sont écrasées. Un moyen sûr de casser une application consiste à copier des données aléatoires dans son espace de données.
Pour surmonter ce problème, une solution astucieuse a été trouvée dans Windows 95, au problème de la prise en charge des noms de fichiers longs tout en préservant la compatibilité avec les versions précédentes des applications DOS et Windows.
Lorsque la plupart des applications (à l'exception des utilitaires de disque de bas niveau tels que Norton Disk Doctor) interrogent le système pour obtenir des 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 dans le système d'exploitation.
Comme nous savons qu'une entrée de répertoire est marquée avec la combinaison de Bits d'attributs en lecture seule, masqués, système et d'étiquette de volume. Probablement, si l'octet d'attribut de l'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 antérieures à Windows 95 de Windows ignoreront cette entrée de répertoire comme si elle n'y était pas.
Ensuite, la solution consistait à 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 au format 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 à partir d'un nom long en le tronquant à six caractères majuscules et en ajoutant "~1" à la fin du nom de fichier de base.
S'il existe déjà un autre nom de fichier avec les mêmes six premiers caractères, le nombre est incrémenté. L'extension reste la même et tout caractère illégal dans les versions antérieures de Windows et DOS est remplacé par un trait de soulignement.
Les noms de fichiers longs sont stockés dans des entrées de répertoire de nom de fichier long (LFN) spécialement formatées de 32 octets, marquées avec 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 unique 8.3 sur le disque.
Chaque entrée de répertoire de nom de fichier long contient jusqu'à 13 caractères du nom de fichier long, et le système d'exploitation en associe autant que nécessaire pour constituer un nom de fichier long complet.
Pour une entrée de répertoire de nom de fichier long, les noms de fichiers sont stockés au format Unicode, qui nécessite 2 octets par caractère au lieu de 1 octet en ASCII. Les caractères du nom de fichier sont répartis dans trois champs distincts :
- Les 10 premiers octets (cinq caractères) de longueur,
- Les 12 secondes octets (six caractères),
- Le troisième 4 octets (deux caractères).
- Les cinq bits les plus bas du premier octet de l'entrée de répertoire contiennent un numéro de séquence qui identifie la position de l'entrée de répertoire par rapport aux autres
- Entrées de répertoire de nom de fichier long associées 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, celui du second sera 2, et le numéro de séquence du troisième sera 3 et le Bit 6 du premier Octet du troisième entrée est définie 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 de répertoire LFN que dans les entrées de répertoire 8.3 car le système de fichiers ne sait pas à quel type d'entrée de répertoire il a affaire tant qu'il n'a pas examiné l'octet d'attribut. Le champ du numéro de cluster de départ apparaît également au même emplacement, mais dans les entrées du répertoire LFN, sa valeur est toujours 0. Le champ de l'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 les 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 maximum d'entrées de répertoire disponibles dans le répertoire racine est fixe et les noms de fichiers longs sont gaspillés. espace dans le répertoire racine qui est limité en taille.
Maintenant par exemple, si le répertoire racine d'un disque dur contient au plus 512 entrées de répertoire, car un nom de 128 caractères nécessite 11 entrées, 10 pour le nom long et 1 pour le nom court, vous ne pouvez créer que 46 fichiers et sous-répertoires dans le répertoire racine si chacun a reçu un nom de 128 caractères.
Le problème disparaît également pour FAT32 car le répertoire racine sous FAT32 peut également grandir car dans le système FAT32, le répertoire racine est traité comme un fichier dont la taille peut augmenter.
Zone de données (ou zone de fichiers)
Après le répertoire racine, la zone de données (ou zone de fichiers) démarre. 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 FORMAT de DOS ne détruit ni n'écrase les données de la zone de données. La commande FORMAT supprime uniquement l'entrée de répertoire et les entrées FAT et ne touche pas la zone de données réelle.
Cela rend possible la récupération d'un disque dur formaté accidentellement, ce qui n'est pas possible dans tous les cas de disquette formatée accidentellement. Comme dans le formatage complet de Windows, la zone de données de la disquette est remplie de caractères F6H et toutes les informations sont écrasées.
DOS utilise un pointeur 16 bits/32 bits appelé pointeur "Last Cluster Used" (LCU) pour stocker le dernier numéro de cluster utilisé. Initialement, cette valeur de pointeur est zéro, lorsque certaines informations sont écrites sur 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 force les nouvelles données écrites sur le disque à rester contiguës pendant que les données sont écrites dans la nouvelle zone inutilisée.
Maintenant, la compréhension des données en cas de suppression accidentelle serait beaucoup plus facile car le fichier se trouve dans une zone contiguë sur le disque. Une fois que la fin du disque est atteinte ou que le système est réinitialisé, la valeur du pointeur LCU est remise à zéro.
Mais le problème ne dure pas ici. Il n'est pratiquement pas possible que vous ne créiez que de nouveaux fichiers sur votre disque et que vous ne supprimiez ou ne modifiiez jamais aucun fichier parmi ceux précédemment stockés. Utiliser uniquement LCU pose des problèmes si vous créez et supprimez beaucoup de 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. sur eux. En faisant cela, le système d'exploitation n'a pas besoin de déplacer toutes les données vers les pistes internes du disque.
Mais beaucoup de suppressions et de créations de fichiers fragmentent les données sur le disque et cela provoque la fragmentation des données.
Données fragmentées et défragmentées
Nous avons déjà expliqué que chaque fichier sur le disque est stocké sous la forme d'une liste chaînée de clusters par lesquels les données contenues dans un fichier peuvent être situé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 être sur différentes pistes, différents plateaux du disque, en fait, ils peuvent être n'importe où.
Bien qu'un fichier puisse être réparti sur tout le disque, c'est loin d'être la situation préférée. La raison en 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. Chaque fois que le disque dur doit déplacer les têtes vers une piste différente, cela prend un temps équivalent à des milliers et des milliers de cycles de processeur.
Par conséquent, nous souhaitons minimiser le degré de propagation de chaque fichier sur le disque. Dans le cas idéal, chaque fichier serait en fait complètement contigu. Cela signifie que chaque cluster qu'il utilise serait situé l'un après l'autre sur le disque. Cela permettrait de lire l'intégralité du fichier, si nécessaire, sans trop de mouvements mécaniques du disque dur.
En fait, le système de fichiers démarre avec la totalité ou la plupart de ses fichiers contigus, mais à la suite de la création et de la suppression de fichiers sur une période de temps, les données sur le disque deviennent de plus en plus fragmentées.
Prenons un exemple simple pour comprendre la fragmentation. Le tableau ci-dessous représente l'utilisation des 12 clusters. Initialement, la table est vide :
cluster 1 |
cluster 2 |
cluster 3 |
cluster 4 |
cluster 5 |
cluster 6 |
cluster 7 |
cluster 8 |
cluster 9 |
cluster 10 |
cluster 11 |
cluster 12 |
Supposons maintenant que nous créons quatre fichiers, Fichier A, B, C et D sur ce disque. Le fichier A prend 1 cluster, le fichier B en prend 4, le fichier C en prend 2 et le fichier D en prend 3. Nous les stockons dans l'espace libre disponible, et ils commencent tous contigus comme indiqué dans la figure suivante :
Après un certain temps, supprimons le fichier C et, ce faisant, les deux clusters qui étaient occupés par le fichier C sont maintenant libres ou non alloués. Cela laisse le disque ressemblant à la figure suivante :
Maintenant, nous créons un nouveau fichier E qui a besoin de 3 clusters. Mais, comme il n'y a plus de blocs contigus sur le disque qui font 3 clusters de long, nous devons donc diviser E en deux fragments, en utilisant une partie de l'espace anciennement occupé par C. Maintenant, notre disque va ressembler à la figure donnée ensuite :
Après une tranche de temps, supprimons les fichiers A et E et créons le fichier F qui occupe 5 clusters. Le disque ressemble maintenant à 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é les données fragmentées. L'exemple donné ci-dessus est un exemple très simplifié de fragmentation, car les vrais disques ont des milliers de fichiers et des milliers de clusters, donc le problème est amplifié. Cela vous donne cependant une idée générale de ce qui se passe.
Ce qu'un programme de défragmentation (comme le programme DEFRAG de Microsoft, SpeedDisk de Norton) réorganise le disque pour remettre 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 ressembleront à la figure ci-dessous :
Les données fragmentées et défragmentées ont beaucoup d'importance lors de la récupération des données, dans de nombreux cas.
Considérons que nous avons deux disques en panne pour la récupération de données, l'un contient des données fragmentées et l'autre a été défragmenté récemment. Et vous devez effectuer une récupération de données en collectant les données de la surface des deux disques car les informations FAT et Root des fichiers sont endommagées. Dans ce type de cas, le pourcentage de récupération sera proportionnel à la défragmentation des données sur le disque.
Évidemment, la récupération de données à partir du disque défragmenté sera facile et le pourcentage de récupération de données sera également élevé, mais d'un autre côté, la récupération de données à partir du disque fragmenté sera difficile et prendra du temps ainsi que le pourcentage de les données récupérées seront également décevantes.
Identifier la cause de la corruption des données
Certaines étapes spécifiques, si elles sont suivies dans l'ordre, peuvent nous aider à trouver le domaine de la corruption. Ces étapes ont été décrites avec la procédure de récupération comme suit :
Démarrez le système avec une disquette amorçable
Démarrez votre système avec une disquette ou un CD amorçable du système d'exploitation que vous utilisiez. Essayez de lire les lecteurs logiques C: ou D: ou autre. Si le ou les lecteurs sont accessibles, copiez simplement toutes les données du lecteur. Vous pouvez maintenant comprendre pourquoi le disque ne démarre pas correctement, avec moins de stress.
Vérifier les informations du MBR
Le premier et le plus important élément de données sur le disque dur est le MBR et la table qu'il contient, la table de partition. Le petit outil d'édition de disque nommé "TTEDITOR.EXE" a été donné dans le disque inclus avec ce livre. Ou vous pouvez utiliser n'importe quel autre programme pour analyser le 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 vous sentez facile à utiliser, c'est à vous de le faire. Essayez de lire le MBR et surtout sa table de partition.
Comme vous l'avez vu dans la description de MBR, discutée dans ce chapitre, dans la seconde moitié de MBR, il y a du texte lisible qui s'affiche comme message d'erreur, s'il y a quelque chose qui ne va pas. Ces messages texte s'affichent comme :
“Invalid partition table, Setup can not continue”
“Error loading operating system, Setup can not continue”
Si ces messages d'erreur ne sont pas disponibles, cela indique la corruption du MBR. Il peut également y avoir un message illégal à la place de celui-ci, comme "Votre système a été piraté par… .." ou tout autre message inattendu. Cela indique qu'il y a quelque chose qui ne va vraiment pas avec le MBR, et très probablement, cela est dû à une infection VIRALE
Vérifiez maintenant la table de partition du 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 amorçable dans le lecteur A :, le système demandera l'insertion d'une disquette amorçable 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 effacée. Si la table de partition est vide, restaurez le MBR à partir de la sauvegarde.
Si la sauvegarde ne fonctionne pas, même après la réussite 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, données dans les chapitres suivants pour récupérer les données. Si vous n'êtes pas du tout programmeur, mieux vaut vous rendre dans n'importe quel bon centre de récupération de données.
Si vous n'avez aucune sauvegarde du MBR, essayez d'écrire la table de partition manuellement avec un outil d'édition de disque, comme Diskedit, mais il est très difficile de le faire dans certains cas.
Pour les utilisateurs qui ne sont pas les programmeurs et qui n'ont pas non plus de sauvegarde, peuvent utiliser la méthode que j'utilise depuis le temps de développement de mon projet de récupération de données, à l'époque où j'étais à l'université.
Ce que vous devez faire, c'est simplement rechercher l'ordinateur près de chez vous, qui a presque la même taille de disque, avec le même nombre de partitions et le plus important, le même système d'exploitation qui était sur votre ordinateur.
Cependant, cela fonctionne complètement, la plupart du temps. Mais si ce n'est pas le cas, cela peut au moins vous aider à accéder à la première partition de votre disque. Même 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 correct, vérifiez le DBR (DOS Boot Record). Comme nous en avons déjà discuté, 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.
Le DBR contient également de nombreuses informations importantes sur le FAT, les clusters de répertoires racine et la taille de la partition, etc. Utilisez un utilitaire tel que Diskedit pour lire les informations du DBR si le DBR est corrompu ou contient des informations illégales. .
Tous les logiciels professionnels de récupération de données sont capables de réécrire le DBR. Nous discuterons de la manière de réécrire le DBR de la partition avec programmation, dans les prochains chapitres du livre.
Vous pouvez également réécrire le DBR de la partition à l'aide de Diskedit en fournissant les informations appropriées.
Il existe également un moyen très simple de découvrir le domaine de la corruption. Les messages d'erreur affichés à l'écran ont une cause spécifique à afficher. La description de certains messages d'erreur importants est la suivante :
Message |
Description |
“Sector not found reading drive” |
This message can appear during any DOS operation. Generally, it is caused either by fading or the loss of a sector ID. |
“Data error reading drive” |
This message can appear during any DOS operation. It is caused by failing the data check – CRC (Cyclic Redundancy Check) or ECC (Error Correction Code). This “Data check” refers to the mechanism used to check whether the data read from the disk is reliable. |
“ 0 hard disk(s) found" |
It is displayed if the hard disk is not detected by the BIOS of the computer. Check the power and data cable connections of the hard disk. If connections are all right, the problem may be due to some hardware error of hard disk. |
“Hard Drive failure, press F1 to continue” |
Same as above |
“Invalid drive specification” |
It is displayed in the condition when either the system does not recognize the hardware, or there is no partition information, or the device driver of the drive is missing. |
“Invalid configuration press F1 to continue” |
If the hard disk is available, Either the battery in the motherboard is dead, and the system has lost its configuration SETUP information or the disk is not responding. |
“Invalid partition table” |
This is the MBR error message. It is displayed when the partition table of the MBR does not have the valid partition information. |
“Error loading operating system” |
This is the MBR error message. It is displayed due to any type of MBR information corruption. |
“Missing operating system” |
Same as above. |
“Disk boot failure” |
It is the DBR error message. Normally, The Hard drive should be accessible if you boot from the floppy. Though it is not bootable but that should not affect the access to the data of the drive. |
“non system disk or disk error” |
Same as above. |
“Bad or missing command interpreter” |
This message is displayed due to Bad or Missing Command Interpreter. For example if the operating do not find the command.com in current path or the command.com is corrupted. |
Page modifiée le: 09/03/2022