Pourquoi n'y a-t-il que quatre partitions principales sur un disque MBR?

23

Je lis les documents sur CentOS.org .

Dans la section 25.1.2. Partitions: transformer un disque en plusieurs , voici l'énoncé suivant:

La table de partition est divisée en quatre sections ou quatre partitions principales. Une partition principale est une partition sur un disque dur qui ne peut contenir qu'un seul lecteur logique (ou section). Chaque section peut contenir les informations nécessaires pour définir une seule partition, ce qui signifie que la table de partition ne peut pas définir plus de quatre partitions.

Je ne comprends pas pourquoi il ne peut y avoir que quatre partitions. Est-ce juste ainsi qu'il a été conçu au début? Ne peut-il vraiment y avoir que 4 partitions principales?

Jongosi
la source

Réponses:

36

Est-ce juste ainsi qu'il a été conçu au début? Ne peut-il vraiment y avoir que 4 partitions principales?

Oui, c'est exactement ça. La table de partition à l'avant d'un disque MBR (par opposition à un disque de style GPT) a une structure de données très stricte qui date des années 1980, lorsque l'espace était une chose précieuse et précieuse. À l'époque, la décision de conception consistait à n'autoriser que quatre partitions, mais à autoriser l'une d'entre elles à être une partition `` étendue '' qui était un pointeur vers un autre emplacement sur le disque pouvant contenir beaucoup plus de partitions `` logiques ''.

(C'est la même raison pour laquelle les disques formatés MBR ont des problèmes avec les disques de 2 To +. Clusters de taille 512 octets et champs 32 bits contenant des décomptes de cluster pour la taille de la partition = taille de disque maximale de 2 To. )

GPT est une méthode mise à jour de gestion du partitionnement qui ne présente pas ces limitations.

sysadmin1138
la source
1
Ce n'est également qu'une restriction sur les disques de type IDE. SCSI, par exemple, en a 8, la troisième par convention étant une partition de chevauchement qui couvre tout le périphérique.
MadHatter prend en charge Monica
18
@MadHatter la table de partition en elle-même est indépendante du type de stockage. Il semble que vous décriviez les tranches Solaris, qui sont un concept légèrement différent.
le-wabbit du
3
Je n'ai pas pensé que ce soit le cas, mais vous avez parfaitement raison de dire que la plupart de mon expérience de partitionnement SCSI provient de Solaris. Je m'incline devant votre correction et merci!
MadHatter prend en charge Monica le
4
En fait, les partitions étendues sont venues beaucoup plus tard ; IBM PC DOS 2.0 a introduit le MBR dans le cadre de sa prise en charge du disque dur en mars 1983, mais ce n'est qu'en 3.3 (avril 1987) que des partitions étendues sont devenues disponibles .
un CVn du
En fait, la "partition étendue" pointe simplement vers une autre table de partition de style MBR, qui à son tour ne peut également contenir que 4 entrées (chacune pouvant être une entrée de partition étendue qui pointe vers une autre table de partition, qui peut également contenir 4 entrées ( dont chacun pourrait être une partition étendue…)) En réalité, certains systèmes d'exploitation n'autorisent que les partitions étendues dans l'emplacement 4 et s'il y en a un, les emplacements 2 et 3 doivent être vides, donc ce que vous vous retrouvez dans la pratique est un seul- liste liée de tables de partition avec un primaire dans l'emplacement 1 et un lien vers la table suivante dans l'emplacement 4.
Jörg W Mittag
25

Il n'y en a que quatre car les structures de données de la table de partition MBR n'autorisent que quatre enregistrements décrivant exactement les partitions:

Vous pouvez créer des tables de partitions supplémentaires imbriquées dans des définitions de ce qu'on appelle une "partition étendue", mais les partitions qui y sont définies sont traditionnellement appelées partitions "logiques". Gardez à l'esprit qu'il s'agit d'une limitation de cette implémentation spécifique. D'autres types de partition, comme la table de partition GUID , ne partagent pas cette limitation.

le-wabbit
la source
3

Une partition principale est un concept de bas niveau - elle concerne le processus de démarrage initial de la machine et est basée sur un ensemble de spécifications bien définies. Il est donc vraiment assez difficile de changer le nombre de partitions primaires, car beaucoup de fabricants de disques et de cartes mères devraient accepter de mettre en œuvre une nouvelle norme.

En pratique, cependant, c'est un point discutable - il est pertinent au moment du démarrage pour démarrer votre système d'exploitation en premier lieu, mais c'est à peu près tout. Il existe des partitions étendues, qui permettent plus de partitions sur votre disque. Mais vous ne pouviez pas les démarrer.

Plus fondamentalement - la plupart des systèmes d'exploitation fonctionnent avec plus d'abstraction de disque - les gestionnaires de volumes logiques - ce qui signifie que la topologie réelle sur le disque est largement hors de propos. (Et en effet, il n'est souvent pas souhaitable de segmenter votre pool de stockage)

Sobrique
la source
1
Je pense que vous avez tort de ne pas pouvoir en démarrer un; Je pense que GRUB démarrera volontiers Linux à partir d'une partition étendue. A part ça, je suis surtout d'accord avec vous.
MadHatter prend en charge Monica
GRUB lui-même doit cependant être sur une partition principale - le bootstrap de bas niveau démarre grub, qui vous permet ensuite de choisir.
Sobrique
1
Le chargeur de l'étape 1 ne devrait pas du tout être sur une partition; il devrait être dans le MBR. Le reste du code vit à l'intérieur de la /bootpartition, et comme je l'ai dit, je pense que cela peut heureusement être une partition étendue.
MadHatter prend en charge Monica
C'est suffisant. Je vais lire et faire mes devoirs. Mais je suppose que cela soutient toujours le cas selon lequel bien que les partitions primaires soient limitées, cette limite est largement hors de propos maintenant.
Sobrique
1
"... parce que beaucoup de fabricants de disques et de cartes mères devraient accepter de mettre en œuvre une nouvelle norme." Quelle? Comment ça? Cela n'a absolument rien à voir avec le disque, et même la carte mère ne devrait pas avoir à s'en soucier. Tout ce que la carte mère doit faire est de lire le secteur 0 et d'exécuter son code. La reconnaissance des partitions est le travail de ce code.
glglgl
0

Je ne sais pas si je suis en retard à la fête, mais voilà:

La taille de la table de partition est conçue pour être de 64 octets et chaque table de partition est de 16 octets. 16 * 4 = 64 et donc il n'y a plus d'espace pour aucune autre entrée dans la table de partition.

Afin de contourner cela, la quatrième entrée a une disposition pour une entrée de partition étendue qui peut avoir des pointeurs séquentiels vers d'autres partitions étendues.

https://docs.microsoft.com/en-us/windows/win32/fileio/basic-and-dynamic-disks

Gourou
la source