Eu poderia jurar que tinha visto algo assim em algumas imagens ISO híbridas (o tipo usado para distribuições Linux para que elas pudessem ser gravadas em um CD-R ou gravadas em uma unidade flash USB sem pós-processamento); No entanto, acabei de verificar alguns e eles não parecem estar fazendo isso. Talvez eu não esteja me lembrando corretamente, ou talvez eu não tenha verificado os corretos. Eu também não vejo nada sobre isso na página isohybrid
man - mas não tenho certeza se isso é o mais comumente usado para criar essas imagens. Ainda assim, você pode querer seguir essa liderança mais do que eu fiz ....
FWIW, sou o autor do fdisk da GPT. Já faz um bom tempo desde que eu tive que tocar no código relevante, mas uma revisão rápida sugere que o fdisk GPT deve ler um disco no qual a tabela de partição primária não comece no LBA 2; no entanto, o fdisk da GPT não suporta a alteração desta localização, e não posso prometer que salvaria a tabela na localização original, mesmo que conseguisse ler com sucesso esse disco. Você pode ser capaz de cortá-lo para começar a mesa em outro lugar para fins de experimentação. Na verdade, acabei de experimentar, mas há vários lugares no código que usam valores "1" ou "2" codificados para preencher os valores do LBA, e não os encontrei todos na minha inicial tentativa, então acabei escrevendo o cabeçalho no meio da tabela de partições, o que obviamente não era bonito. Se você quiser tentar, veja o arquivo gpt.cc
. Comece procurando onde partitionEntriesLBA
e firstUsableLBA
estão definidos - mas algumas das constantes relevantes também estão em chamadas de função.
Quanto à localização do cabeçalho principal da GPT, duvido que você possa mudar isso. A MBR protetora não é realmente parte das estruturas de dados da GPT em si; sua finalidade é identificar o disco como um disco GPT e impedir que as ferramentas não compatíveis com o GPT estraguem o disco, para não identificar onde as estruturas de dados da GPT começam. O campo StartingLBA
existe porque é parte da estrutura de dados do MBR, não porque o GPT usa para qualquer coisa. Eu suponho que é possível que algumas ferramentas possam usar o ponto inicial da partição protetora MBR como um ponteiro para o cabeçalho principal, mas duvido que a maioria faria isso. Certamente o fdisk GPT não; ele codifica o LBA 1 como a localização do cabeçalho principal.
Se você tiver mais dúvidas sobre isso, talvez queira postar na lista de discussão edk2-devel