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 soixante 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 sept 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 fichiers
FAT16.) La même chose est valable pour Windows 3.11, WfWG et Windows NT 3.*.
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
.