Page suivantePage pr�c�denteTable 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 demarrer 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;      /* numero de secteur sur 32 bits (en commencant a 0) */
 int length;     /* nombre de secteurs sur 32 bits */
};
(avec CHS qui signifie Cylinder/Head/Sector -- Cylindre/T�te/Secteur).

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 douze 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 cinq 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 �tendues 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.

6.1 Le dernier cylindre

Un nombre important de vieux IBM PS/2 utilisent des disques durs avec une carte des d�faillances �crite � la fin du disque (le bit 0x20 dans le mot de controle de la table de param�trage du disque est positionn�). De ce fait, FDISK n'utilisera pas le dernier cylindre. Pour se pr�munir d'�ventuel probl�me le BIOS donne souvent un taille inf�rieure d'un cylindre par rapport celle r�elle du disque, ce qui peut faire en tout, deux cylindres de perdus. Les disques r�cents ont plusieurs fonctions permettant de donner leur taille qui, en interne, s'apellent les unes les autres. Quand les deux retirent 1 pour ce cylindre r�serv� et quand FDISK le fait aussi, alors trois cylindres peuvent �tre perdus. De nos jours tout ceci n'a plus de sens mais peut fournir une explication quand on utilise diff�rents utilitaires qui donnent des valeurs diff�rentes pour la taille du disque dur.

6.2 Limites du cylindre

La croyance populaire racconte que les partitions doivent commencer et finir aux fronti�res des cylindres.

Puisque la g�om�trie des disques est quelque chose qui n'a pas de r�elle existence, des syst�mes d'exploitation diff�rents inventeront des g�om�tries diff�rentes pour le m�me disque. On voit souvent un syst�me d'exploitation utiliser une g�om�trie apr�s conversion de */255/63 et un autre utiliser une g�om�trie avant conversion de */16/63. Du coup, il devrait �tre impossible d'aligner les partitions sur les limites des cylilndres, si l'on se fie � l'id�e que chaque syst�me d'exploitation a de la g�om�trie du disque. De plus, le fait d'activer ou non le BIOS d'une carte SCSI peut changer la fausse g�om�trie des disques SCSI connect�s.

Par chance, pour Linux les alignements ne sont pas n�cessaires (sauf pour quelques logiciels d'installation boiteux qui aiment bien �tre s�r que tout est d'aplomb ; ce qui peut emp�cher d'installer une RedHat 7.1 sur un disque aux partitions non align�es, DiskDruid n'�tant pas content).

Des personnes rapportent qu'il est facile de cr�er des partitions non align�es sous Windows NT, sans qu'il n'y ait de probl�me apparent.

MSDOS 6.22 par contre, n�cessite un alignement. Les secteurs sur partitions �tendues qui ne sont pas sur la fronti�re d'un cylindre son ignor�es par son FDISK. Le syst�me lui-m�me se satisfait de n'importe quel alignement mais interpr�te les adresses de d�but relatives, comme si elles �taient relatives � une adresse align�e. L'adresse de d�part d'une partition logique est donn�e relativement, non pas � l'adresses de la partition �tendue qui la d�crit, mais au d�but du cylindre qui contient ce secteur (il n'est donc pas �tonnant que, m�me PartitionMagic, n�cessite un alignement).

Quelle est la d�finition de l'alignement ? FDISK de MSDOS 6.22 se comportera comme suit : 1. Si le premier secteur d'un cylindre est un secteur de table de partition, alors le reste de la piste sera inutilis� et la partition commencera � la prochaine piste. Ceci s'applique au secteur 0 (le MBR) et aux secteurs de table de partition pr�c�dant les partitions logiques. 2. Sinon la partition commence sur le premier secteur du cylindre. De plus, les partitions �tendues commencent sur une fronti�re de cylindre. La page de manuel de cfdisk explique que les vieilles versions de DOS n'alignaient pas les partitions.

L'utilisation de partitions de type 85 pour les partitions �tendues les rend invisible � DOS, ce qui assure que seul Linux pourra regarder ce qui s'y trouve.

Une petite apart� : sur une Sparc, la partition d'amor�age doit commencer sur une fronti�re de cylindre (mais rien n'est requis pour la fin).


Page suivantePage pr�c�denteTable des mati�res

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 18:01:42