Qual é o número máximo de partições com o EFI?

3

Eu queria saber qual é o número máximo de partições em uma unidade particionada por GPT no Linux.

A tabela de partições GPT pode conter até 128 partições, mas os nós de dispositivos para /dev/sda? (como descrito aqui , bloqueia o dispositivo do número principal 8) permite apenas /dev/sda1 até /dev/sda15 .

Isso significa que não pode haver mais de 15 partições em uma unidade, mesmo em uma unidade particionada pela GPT?

    
por Guillaume Brunerie 05.07.2011 / 23:38

3 respostas

4

Vamos ler a boa fonte.

Em block/partitions/efi.c , o local para configurar partições gpt é efi_partition() . Aqui decide o número máximo de partições:

for (i = 0; i < le32_to_cpu(gpt->num_partition_entries) && i < state->limit-1; i++) {

num_partition_entries vem do cabeçalho gpt no disco, portanto, o número máximo é state->limit - 1 . state é o argumento desta função, e essa função é chamada de check_part() , de check_partition() no mesmo arquivo, e chega

state->limit = disk_max_parts(hd);

Portanto, o limite é disk_max_parts() ,

static inline int disk_max_parts(struct gendisk *disk)
{
        if (disk->flags & GENHD_FL_EXT_DEVT)
                return DISK_MAX_PARTS;
        return disk->minors;
}

Portanto, se o dispositivo de disco tiver GENHD_FL_EXT_DEVT /* allow extended devt */ (dispositivo de loop, disco ATA / ATAPI genérico, disco SCSI, RAID MD), o limite será DISK_MAX_PARTS (256), caso contrário, é minors .

Em conclusão, geralmente o número máximo suportado pelo kernel do Linux é de 255.

    
por 19.04.2013 / 18:01
2

Bem, acho que é aí que o UUIDs entra para jogar. Nesse caso, você não endereça um dispositivo de bloco como / dev / {h, s} dXY, mas sim pelo UUID do dispositivo. Certamente, nesse caso, o limite seria supremamente superior a 128.

    
por 05.07.2011 / 23:49
2

Não, isso significa que o Linux tem um problema. ☺ Mas já sabíamos disso.

Quem disse que a tabela de partições EFI contém até 128 partições? Essa pessoa não pode ler as especificações. Como eu disse antes , 128 entradas de 128 bytes é o tamanho mínimo exigido pela Especificação EFI, não o tamanho de uma tabela de partição EFI e, certamente, não o tamanho máximo .

(Estritamente falando, o mínimo, mencionado pela primeira vez na versão 1.10 da especificação EFI, é 16KiB total para todas as entradas de partição, mas não inclui o bloco de cabeçalho. Com o comprimento de entrada de 128 bytes convencional, é um mínimo de 128 entradas.)

    
por 06.07.2011 / 00:09

Tags