Cours sur le Disque Dur |
| Par Frédéric Heissler |
Le système d'exploitation utilise une structure logique du disque sur la base de la structure physique précédemment décrite. Le programme FDISK permet de diviser le disque dur en unités logiques ou disques logiques.
Les versions anciennes de DOS (avant 3.3) ne pouvaient gérer que 32 Mo dans une même partition. Les disques durs de capacité plus importante devaient par conséquent être subdivisés en plusieurs lecteurs logiques. Même si l'on ne possédait qu'un seul disque dur physiquement parlant, on pouvait accéder à plusieurs lecteurs (C:, D:, etc.).
Depuis la version 4.0 du DOS, les disques durs d'une capacité de 2 Go peuvent être gérés sous la forme d'une seule partition, c'est-à-dire d'un seul disque logique (C:). Du fait justement de ces grandes capacités, il est souvent nécessaire de subdiviser le disque dur en plusieurs lecteurs logiques. Avec les versions actuelles de DOS, ainsi qu'avec Windows 95, il est possible d'installer plusieurs disques logiques sur un même disque dur.Malheureusement, une des contraintes de FDISK n'est pas encore levée: les disques durs déclarés dans le BIOS selon le principe CHS n'acceptent comme taille maximale que 504 Mo. Les disques d'une capacité supérieure sont ramenés à cette valeur. DOS et Windows 95 ne savent gérer en guise de nombre de cylindres, de têtes et de secteurs que les valeurs maximales 1024, 16 et 63.Avec une capacité par secteur de 512 octets, le calcul de capacité aboutit à :
512 * 1024 * 16 * 63 = 528 482 304 octets soit 504 Mo
Ceci est le maximum, il n'y a pas moyen d'aller au-delà et tout ce qui dépasse est invariablement tronqué.
En ce qui concerne les disques plus grands, la seule solution est de les piloter comme périphérique de bloc ou "Block Device". Dans ce cas, les entrées de BIOS n'interviennent pas, le disque dur et sa capacité sont déclarés au système par une autre instance.
Sur la base de la première répartition en disques DOS logiques, le système d'exploitation effectue ensuite une structuration logique à l'intérieur de chacun des disques. Cette structure est réalisée à l'aide de la commande FORMAT du DOS.Le DOS divise chaque disque logique en unités d'allocation. Ces unités d'allocation, également appelées "clusters ", représentent la plus petite unité du disque dur accessible au système d'exploitation. Chaque disque logique contient une table d'allocation des fichiers (FAT = File Allocation Table). Chaque fichier créé sur le disque dur est affecté à l'une au moins de ces unités d'allocation. Ce procédé permet de reconstituer, par exemple, un fichier volumineux dont les blocs de données sont dispersés sur l'ensemble du disque. Les fichiers correspondent à chaque unité d'allocation sont répertoriés dans la FAT.A partir de la version 5.0 de DOS, les disques logiques sont gérés par l'intermédiaire d'une FAT à 16 bits. Cela signifie que chaque FAT peut gérer au maximum 2 puissance 16 soit 65536 entrées ou unités d'allocation communément appelée cluster.
| FAT 16 bits | FAT 32 bits | |
| Nombre d'unités d'allocation | 216 = 65536 entrées | 232 = 4 294 967 296 entrées |
| Capacité avec un cluster de 32768 octets | 2 147 483 648 octets = 2 Go | 131 072 Go = 128 To (Teraoctet) |
La définition de la taille des unités d'allocation va de pair avec la définition de la taille du disque logique. La plus petite unité d'allocation possible sous DOS 5.0 correspond à un espace de stockage de 2048 octets. A partir d'une taille de disque égale ou supérieure à 128 Mo ( Méga Octect ), la table d'allocation des fichiers ne pourrait plus gérer cette taille de clusters.
Rappel : 1 Téra octect = 1 To = 1024 Go = 1 048 576 Mo
| Taille d'une partition en FAT 16 | Taille minimale d'un cluster | Taille d'une partition en FAT 32 |
| 128 Mo | 2 048 octets | 8 To |
| 256 Mo | 4 096 octets | 16 To |
| 512 Mo | 8 192 octets | 32 To |
| 1 024 Mo | 16 384 octets | 65 To |
| 2 048 Mo | 32 768 octets | 128 To |
Le DOS effectue une régulation automatique de ces rapports lors du formatage. Puisque chaque fichier, indépendamment de sa taille, reçoit une unité d'allocation, cela veut dire que les fichiers ayant une taille inférieure à 4 096 octets occuperont sur le disque effectivement 4096 octets. Un fichier AUTOEXEC.BAT de 250 octets occupe ainsi un espace 16 fois plus grand qu'il ne devrait. Il est évident que l'on gaspille ainsi beaucoup de place dans le cas de petits fichiers.
C'est d'autant plus vrai que les unités d'allocation sont plus grandes. Il est donc préférable de diviser les gros disques durs en plusieurs lecteurs logiques.
ATTENTION : Bien que le système de fichier permette de gérer des partitions de 128 To, cela ne signifie pas que vous pouvez créer des partitions de cette taille. En effet, ce n'est qu'à partir des interfaces ATA/133 que l'on a put gérer des disques de plus de 128 Go. Voir le cours sur les interfaces.