Por que existem 2048 setores de espaço livre entre cada partição lógica?

8

Conheço o formato avançado e a configuração de 2048 setores livres no início de um disco. Mas acabei de converter uma tabela de partição do meu disco do MS-DOS para GPT e notei o seguinte:

Antes:

Number  Start   End     Size    Type      File system     Flags
        32,3kB  1049kB  1016kB            Free Space
 1      1049kB  31,5GB  31,5GB  primary   ntfs            
 2      31,5GB  43,0GB  11,5GB  primary
 3      43,0GB  44,1GB  1074MB  primary   linux-swap(v1)
 4      44,1GB  80,0GB  36,0GB  extended
 5      44,1GB  54,6GB  10,5GB  logical
 6      54,6GB  65,0GB  10,5GB  logical   ext4            boot
 7      65,0GB  80,0GB  15,0GB  logical
        80,0GB  80,0GB  56,8kB            Free Space

Depois de:

Number  Start   End     Size    File system     Name                  Flags
        17,4kB  1049kB  1031kB  Free Space
 1      1049kB  31,5GB  31,5GB  ntfs            Microsoft basic data  msftdata
 2      31,5GB  43,0GB  11,5GB                  Linux filesystem
 3      43,0GB  44,1GB  1074MB  linux-swap(v1)  Linux swap
        44,1GB  44,1GB  1049kB  Free Space
 5      44,1GB  54,6GB  10,5GB                  Linux filesystem
        54,6GB  54,6GB  1049kB  Free Space
 6      54,6GB  65,0GB  10,5GB  ext4            Linux filesystem
        65,0GB  65,0GB  1049kB  Free Space
 7      65,0GB  80,0GB  15,0GB                  Linux filesystem
        80,0GB  80,0GB  39,9kB  Free Space

Como você pode ver, existem 3 lacunas adicionais (2048 setores), cada uma para uma partição estendida. Não há lacunas entre a 1ª e a 2ª e a 2ª e 3ª partições.

Alguém sabe por que as lacunas existem apenas entre partições lógicas?

Mikhail Morfikov
fonte
Como exatamente você converteu o disco "de MBR para GPT"? Não há tipo de tabela de partição MBR. Talvez você quisesse dizer DOS, mas ainda assim, como você se converteu?
phunehehe
Eu apenas usei o gdisk.
Mikhail Morfikov
Como você converte usando o gdisk? Isso é importante porque você (ou o programa que você usa) pode ter feito algo errado ao converter.
phunehehe
1
Eu segui estas etapas - wiki.archlinux.org/index.php/…
Mikhail Morfikov
Não é possível saber sem ver a tabela de partição com unidades definidas para setores de disco (2.048 setores de 512 bytes são 1 MiB, menos que a precisão dos números decimais listados). As partições do MS-DOS têm uma bagagem emocional estranha que força o alinhamento a vários números (agora arbitrários), às vezes deixando setores não utilizados no final. Não tenho idéia de por que esse é apenas o caso de partições lógicas aqui.
Alexios

Respostas:

8

Atualmente, os particionadores gostam de alinhar partições em um limite de mebibyte. Para o particionamento MBR, existem 4 partições primárias e, para o restante, você precisa de partições estendidas e lógicas.

Enquanto o layout das partições primárias é expresso no final do primeiro setor do disco, para as partições lógicas, você tem uma lista vinculada de tabelas de partições adicionais (especificando apenas uma partição. Normalmente, a primeira é a o início da partição estendida (que é definida como partição primária) e define a primeira partição lógica, e ela se vincula à próxima tabela de partições que define a próxima partição lógica.Esta tabela de partição será localizada normalmente após a primeira partição lógica partição.

Todas essas tabelas de partição levam apenas alguns bytes fora das partições, mas devido ao alinhamento de mebibytes, um mebibyte completo deve ser usado para elas.

A GPT na outra extremidade armazena todas as informações de particionamento no início do disco (com um backup no final), portanto, após a conversão, o espaço usado nas tabelas de partição da partição lógica fica livre.

Observe que você só precisa de um setor para armazenar essas tabelas de partições lógicas do MBR, portanto, estritamente falando, no particionamento do MBR haveria 2047 setores livres, se o parceiro desejasse não alinhar partições nos limites de mebibyte.

Stéphane Chazelas
fonte
Entendo agora, há um EBR para cada disco lógico e "A segunda entrada de uma tabela de partição EBR conterá zero bytes se for o último EBR na partição estendida; caso contrário, ele apontará para o próximo EBR na cadeia EBR. "
Mikhail Morfikov