Por que existem apenas quatro partições primárias em um disco MBR?

23

Estou lendo os documentos no CentOS.org .

Na seção 25.1.2. Partições: Transformando uma unidade em muitas , há a seguinte declaração:

A tabela de partição é dividida em quatro seções ou quatro partições principais. Uma partição primária é uma partição em um disco rígido que pode conter apenas uma unidade lógica (ou seção). Cada seção pode conter as informações necessárias para definir uma única partição, o que significa que a tabela de partições pode definir não mais que quatro partições.

Não entendo por que só pode haver quatro partições. Foi assim que foi projetado no começo? Realmente pode haver apenas 4 partições primárias?

Jongosi
fonte

Respostas:

36

Foi assim que foi projetado no começo? Realmente pode haver apenas 4 partições primárias?

Sim, é exatamente isso. A tabela de partição na frente de um disco MBR (em oposição a um disco no estilo GPT) possui uma estrutura de dados muito rígida que data dos anos 80, quando o espaço era algo precioso e precioso. A decisão de design da época era permitir apenas quatro partições, mas permitir que uma delas fosse uma partição 'estendida' que fosse um ponteiro para outro local no disco que pudesse conter muito mais partições 'lógicas'.

(Esse é o mesmo motivo pelo qual os discos formatados em MBR têm problemas com discos de 2 TB +. Clusters de tamanho de 512 bytes e campos de 32 bits que contêm contagens de cluster para o tamanho da partição = tamanho máximo do disco de 2 TB. )

O GPT é um método atualizado de lidar com o particionamento que não possui essas limitações.

sysadmin1138
fonte
1
Também é apenas uma restrição em discos do tipo IDE. O SCSI, por exemplo, possui 8, sendo o terceiro por convenção uma partição de sobreposição que abrange todo o dispositivo.
MadHatter apoia Monica
18
@ MadHatter a tabela de partição por si só é independente do tipo de armazenamento. Parece que você está descrevendo o Solaris Slices, que é um conceito ligeiramente diferente.
o-wabbit
3
Não achei que fosse esse o caso, mas você está certo de que a maior parte da minha experiência de particionamento SCSI é do Solaris. Eu me curvo à sua correção e obrigado!
MadHatter apoia Monica
4
Na verdade, partições estendidas vieram muito depois ; O IBM PC DOS 2.0 introduziu o MBR como parte de seu suporte a HDD em março de 1983, mas foi apenas no 3.3 (abril de 1987) que as partições estendidas se tornaram disponíveis .
um CVn
Na verdade, a "partição estendida" simplesmente aponta para outra tabela de partição no estilo MBR, que por sua vez também pode conter apenas 4 entradas (cada uma pode ser uma entrada de partição estendida que aponta para outra tabela de partição, que também pode conter 4 entradas ( cada um dos quais poderia ser uma partição estendida…)) Realmente, alguns sistemas operacionais permitem apenas partições estendidas no slot 4 e, se houver, os slots 2 e 3 precisam estar vazios; portanto, o que você acaba praticando é um lista de tabelas de partição associada com um primário no slot 1 e um link para a próxima mesa no slot 4.
Jörg W Mittag
25

Existem apenas quatro porque as estruturas de dados da tabela de partições MBR permitem apenas exatamente quatro registros que descrevem partições:

Você pode criar tabelas de partição adicionais aninhadas nas definições do que é chamado de "partição estendida", mas as partições definidas nela são tradicionalmente chamadas de partições "lógicas". Lembre-se de que essa é uma limitação desta implementação específica. Outros tipos de partição, como a tabela de partição GUID , não compartilham essa limitação.

o wabbit
fonte
3

Uma partição primária é um conceito de baixo nível - está relacionado ao processo inicial de inicialização da máquina e é baseado em um conjunto bem definido de especificações. Portanto, é realmente muito difícil alterar o número de partições primárias, porque muitos fabricantes de discos e placas-mãe teriam que concordar em implementar um novo padrão.

Na prática, porém, esse é um ponto discutível - é relevante no 'momento da inicialização' para iniciar o sistema operacional em primeiro lugar, mas é isso. Existem partições estendidas, que permitem mais partições no seu disco. Você não pode inicializá-los embora.

Mais fundamentalmente - a maioria dos sistemas operacionais trabalha com mais abstração de disco - gerenciadores de volume lógico - o que significa que a topologia real em disco é em grande parte irrelevante. (E, de fato, muitas vezes não é desejável segmentar seu pool de armazenamento)

Sobrique
fonte
1
Acho que você está errado por não conseguir inicializar um; Eu acho que o GRUB iniciará o Linux com prazer a partir de uma partição estendida. Fora isso, concordo principalmente com você.
MadHatter apoia Monica
O GRUB em si deve estar em uma partição primária - o bootstrap de baixo nível inicia o grub, que permite que você escolha.
Sobrique 22/04
1
O carregador do estágio 1 não deve estar em nenhuma partição; deve estar no MBR. O restante do código vive dentro da /bootpartição e, como eu disse, acredito que pode ser uma partição estendida.
MadHatter suporta Monica
Justo. Vou ler e fazer minha lição de casa. Mas suponho que ainda apóie o caso de que, embora as partições primárias sejam limitadas, esse limite é amplamente irrelevante agora.
Sobrique 22/04
1
"... porque muitos fabricantes de discos e placas-mãe teriam que concordar em implementar um novo padrão". O que? Como isso? É completamente irrelevante para o disco, e mesmo a placa principal não precisa se preocupar com isso. Tudo o que a placa principal precisa fazer é ler o setor 0 e executar seu código. O reconhecimento de partições é o trabalho desse código.
glglgl
0

Não tenho certeza se estou atrasado para a festa, mas aqui vai:

O tamanho da tabela de partição foi projetado para ter 64 bytes e cada tabela de partição é de 16 bytes. 16 * 4 = 64 e, portanto, não há mais espaço para outras entradas na tabela de partição.

Para contornar isso, a quarta entrada possui uma provisão para uma entrada de partição estendida que pode ter ponteiros seqüenciais para outras partições estendidas.

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

Guru
fonte