Page suivante Page précédente Table des matières

6. Géométrie du disque dur, partitions et `overlap'

Si vous avez plusieurs systèmes d'exploitation sur vos disques durs, alors chacun utilise une ou plusieurs partitions. Un désaccord sur la localisation de ces partitions peut avoir des conséquences catastrophiques.

Le MBR contient une table des partitions qui décrit où se situent les partitions (primaires). Il y a 4 entrées à la table, pour 4 partitions primaires, et chacune ressemble à :

struct partition {
        char active;    /* 0x80 : on peut démarrer avec, 0 : on ne peut pas */
        char begin[3];  /* CHS pour le premier secteur */
        char type;
        char end[3];    /* CHS pour le dernier secteur */
        int start;      /* numéro de secteur sur 32 bits (en commençant à 0) */
        int length;     /* nombre de secteurs sur 32 bits */
};
(avec CHS qui signifie Cylinder/Head/Sector).

Cette information est redondante : la position de la partition est donnée à la fois par les champs begin et end codés sur 24 bits, et par les champs start et length codés sur 32 bits.

Linux ne se sert que des champs start et length, et ne peut de ce fait que prendre en compte des partitions qui ne comportent pas plus de 2^32 secteurs, c'est-à-dire, des partitions d'au plus 2 Tio. Cette capacité est des centaines de fois plus grande que celle des disques durs que l'on peut trouver de nos jours, alors peut-être que cela sera suffisant pour, environ, les huit prochaines années. (Donc, les partitions peuvent être très grandes, mais il y a une sérieuse restriction avec le système de fichiers ext2 quand il est utilisé sur des machines avec des entiers codés sur 32 bits : la taille maximale d'un fichier est limitée à 2 Gio.)

DOS utilise les champs begin et end, et se sert des appels INT13 du BIOS pour accéder aux disques durs ; il ne peut gérer de ce fait que des disques dont la taille ne dépasse pas 8,4 Go, même avec un BIOS qui fait des conversions. (La taille des partitions ne peut pas excéder 2,1 Go à cause des restrictions du système de fichier FAT16.) La même chose est valable pour Windows 3.11, WfWG, Windows NT 3.* et Novel NetWare.

Windows 95 intègre la gestion des interfaces INT13 Etendues, et utilise des types de partition spéciaux (c, e, f à la place de b, 6, 5) pour indiquer que l'on doit accéder à la partition de cette manière. Quand ces types de partition sont utilisés, les champs begin et end contiennent des informations factices (1023/255/63). Windows 95 OSR2 introduit le système de fichier FAT32 (types de partition b ou c), qui permet d'avoir des partitions d'au plus 2 Tio.

Qu'est-ce que c'est que ce message insensé que vous rapporte fdisk au sujet de partitions qui se chevauchent : `overlapping', quand pourtant tout est en ordre ? En fait, il y a quelque chose de `problématique' : si vous voyez les champs begin et end de telles partitions, comme DOS le fait, il y a chevauchement. (Et cela ne peut pas être corrigé, parce que ces champs ne peuvent pas stocker des numéros de cylindre plus grands que 1024 : il y aura toujours `chevauchement' dès que vous aurez plus de 1024 cylindres.) Cependant, si vous voyez les champs start et length, comme les voit Linux, et également Windows 95 dans le cas de partitions typées c, e ou f, alors tout apparaît comme étant en ordre. Donc, ne tenez pas compte de ces avertissements quand cfdisk ne se plaint pas et que vous avez un disque dur avec uniquement Linux dessus. Soyez prudents quand le disque dur est partagé avec DOS. Servez-vous des commandes cfdisk -Ps /dev/hdx et cfdisk -Pt /dev/hdx pour voir la table des partitions du disque /dev/hdx.


Page suivante Page précédente Table des matières