Em uma tabela de partição MBR, cada entrada de partição contém um identificador de um byte que deve descrever o tipo de sistema de arquivos contido na partição. A família de sistemas de arquivos FAT recebeu vários desses IDs, um para cada largura de uma entrada FAT. Curiosamente, cada variante FAT diferente de FAT12 e o tipo de registro de inicialização estendido também possui um ID adicional para uma variante 'LBA' do sistema de arquivos:
ID (não-LBA) | ID (LBA) | Sistema de arquivo |
---|---|---|
0x01 |
Nenhum | FAT12 |
0x04 ,0x06 |
0x0e |
FAT16 |
0x0b |
0x0c |
FAT32 |
0x0f |
0x05 |
Registro de inicialização estendido |
Os sistemas operacionais modernos geralmente são capazes de determinar por conta própria como uma unidade deve ser endereçada. Mesmo quando o endereçamento LBA era jovem e os discos eram acessados por meio do BIOS, deveria ser possível simplesmente sondar a disponibilidade das chamadas de interrupção 13h apropriadas e voltar para a versão CHS se elas estivessem ausentes. Os IDs de partição adicionais, portanto, parecem redundantes.
Qual era então o significado desses IDs de partição adicionais? Eles influenciaram o formato do disco, os drivers do sistema de arquivos ou o código de inicialização de alguma forma?
Eles estão lá para impedir que os (antigos) sistemas operacionais que não usam LBA I/O tentem, e não consigam, acessar essas partições. Os tipos de partição controlam quais sistemas operacionais tentam verificar o que está em uma partição. Os sistemas operacionais que usam LBA I/O sabem procurar partições com os tipos de partição mais recentes. Sistemas operacionais que não tratam as partições como coisas que devem ser ignoradas.
O mesmo vale para sistemas operacionais (antigos) que não conseguiam lidar com partições maiores que 16MiB e depois 32MiB.
Leitura adicional
A resposta de @JdeBP está correta, mas incompleta. O objetivo principal do ID do tipo de partição é, de fato, ocultar partições de sistemas operacionais mais antigos (o que significa principalmente versões mais antigas do DOS) que não conseguiriam acessar a partição corretamente. Às vezes, isso acontecia devido a limitações de tamanho arbitrárias do driver de disco; em outros, isso devido a uma alteração no próprio formato do disco FAT (entradas FAT mais amplas, alteração na estrutura do BPB).
A tabela completa (adaptada do KB Q69912 ) deve ficar assim:
0x01
0x04
0x05
0x06
0x0b
0x0c
0x0e
0x0f
Leia da seguinte forma: se todas as restrições nas últimas três colunas forem atendidas (toda a partição é endereçável com o esquema fornecido, a partição não é maior e a versão FAT não é posterior à especificada), então pode- se usar o tipo ID na primeira coluna para expor a partição às versões do DOS na segunda coluna. Não há nenhuma implicação no contrário: uma partição FAT12 endereçável por CHS com menos de 32.768 setores pode muito bem ser identificada como
0x0c
; é apenas menos útil fazê-lo.Todas as versões do DOS também estão sob a restrição de que o tamanho do cluster não pode ser maior que 64 setores = 32768 bytes. Se essa suposição for quebrada, o melhor tipo a ser usado provavelmente é
0x07
.O DOS 7.0 e posterior usa o ID do tipo de partição de outra maneira: para escolher qual serviço do BIOS usar para acessar a unidade. Como os nomes indicam, as partições endereçadas a CHS são acessadas por meio de serviços INT 0x13 antigos (AH=0x02, AH=0x03), enquanto as partições endereçadas a LBA são acessadas por meio de extensões INT 0x13 (AH=0x42, AH=0x43). O driver CHS também está sujeito a certas peculiaridades e limitações, nenhuma das quais se aplica ao driver LBA:
0x05
) devem ser alinhados em um limite de cilindro; caso contrário, o DOS calculará incorretamente onde a partição está localizada.* A versão do DOS distribuída pela primeira vez com o Windows 95 (4.0.950)
** A versão DOS distribuída pela primeira vez com Windows 95 OSR2 (4.0.1111)
*** Limitação imposta pelo esquema de endereçamento da tabela de partição (e estruturas de dados como o BPB): CHS pode endereçar no máximo 1024 × 255 × 63 setores, LBA pode endereçar 2 32 setores. (O artigo KB afirma um limite de 1024 × 255 × 64, mas isso provavelmente está errado.)
**** Limitação imposta pelo tamanho máximo do cluster de 64 setores; 512 bytes por setor × 64 setores por cluster × 65525 clusters ≈ 2 GiB na área de cluster FAT. Teoricamente, mesmo com essa restrição, esse limite pode ser quebrado com uma grande área de setor reservada ou área de diretório raiz, mas outras limitações de tamanho podem permanecer.
***** A origem dessa restrição não é clara; talvez seja espúria.