UEFI e Boot Seguro - Conceitos básicos

Esse artigo discute os conceitos básicos da especificação UEFI e tenta esclarer o que é "Boot Seguro".

[ Hits: 37.608 ]

Por: Perfil removido em 18/03/2013


IBM - BIOS



O padrão de particionamento mais utilizado em computadores pessoais, é o particionamento IBM-DOS. Este modelo é originário do DOS (Disk Operating System) utilizado pelo IBM-PC XT, lançado em 1983.

O PC-XT foi o primeiro computador pessoal vendido com um disco rígido, que tinha 10 MiB de espaço.

O modelo de particionamento DOS utiliza uma estrutura de dados chamada de "tabela de partições", cujo tamanho é de 64 bytes. Essa tabela fica armazenada no primeiro setor do disco rígido (cilindro 0, lado 0, setor 1 em notação CHS ou LBA 0), denominado de setor MBR (Master Boot Record).

O tamanho físico de qualquer setor de um disco rígido é 512 bytes, independente do tamanho do disco.

O setor MBR desempenha importante papel no processo de boot do computador. Os 512 bytes deste setor são ocupados da seguinte maneira:
  • 446 bytes pelo código de arranque (stage 1) do bootloader (GRUB ou LILO).
  • Os próximos 64 bytes são ocupados pela tabela de particionamento do disco rígido.
  • E os últimos dois bytes, armazenam uma assinatura hexadecimal (0xAA55).

A soma desses bytes (446 + 64 + 2) totaliza os 512 disponíveis no setor, como ilustra a figura 1:
A descrição lógica de uma partição, no modelo de particionamento DOS, ocupa 16 bytes. Esse tamanho (16 bytes), em relação ao tamanho da tabela de partições (64 bytes), leva a uma situação onde apenas 4 partições podem ser definidas por disco (4 x 16 = 64 bytes).

Para superar a limitação de 4 partições por disco, foi introduzido um método que permite criar um recipiente de ponteiros no espaço destinado para a criação das partições. Esse recipiente é chamado de partição estendida, identificada pelo código hexadecimal como tipo "0x05".

As partições criadas dentro da partição estendida são chamadas de partições lógicas. Somente uma partição estendida é permitida por disco e ela não pode ser formatada, como acontece com as partições primárias e as partições lógicas.

A partição estendida funciona como uma lista encadeada, a primeira entrada aponta para um setor subsequente ao MBR que descreve uma partição lógica, que, por sua vez, aponta para o próximo setor que descreve outra partição lógica, e assim sucessivamente.

Uma vez que toda a trilha 0 é reservada, esta área não pertence a nenhuma partição, esse espaço é utilizado para armazenar dados sobre partições lógicas. O cilindro (formado pela trilha 0 de ambos lados do(s) prato(s) do disco) possui 63 setores de 512 bytes, o que resulta em uma área de 31,5 KB (1 KB = 1024 bytes) para armazenagem de dados sobre partições lógicas.

Daí, vem a limitação para criação de 63 partições lógicas em discos do tipo ATA/IDE em sistemas GNU/Linux. Lembrando que, em sistemas SCSI, esse limite é de 15 dispositivos, devido à imposições da própria arquitetura SCSI.

A figura 2 representa todos os campos que identificam uma partição na tabela de particionamento:
Particionar é "dividir um disco rígido, de modo lógico, em várias partes independentes". Cada parte, chamada de partição, pode ser formatada e ter um sistema operacional diferente.

O particionamento é um método que, ao longo da história da computação pessoal, vem constantemente evoluindo para acompanhar a evolução do tamanho dos discos rígidos.

A figura 3 ilustra a evolução do particionamento no MS-DOS ao longo de suas versões e os tamanhos máximos dos discos rígidos utilizados em cada versão desse sistema:
Em razão da geometria circular do disco rígido, sua capacidade era descrita em relação a valores CHS (Cilindros, Cabeças e Setores). Posteriormente, foi introduzido o conceito de LBA (Logical Block Addressing), que segundo [4]: "abandona o modelo CHS utilizando o espaço destes campos como um identificador único de 28 bits organizando os setores sequencialmente (0,1,2,3 ... 228) até o limite de 2^28 setores".

Este valor é suficiente para endereçar por LBA, discos de até 128 GiB, onde um MiB=1024 bytes, ou 137 GB, para discos na notação decimal (MB=1000). A fabricação de discos desses tamanhos foi rapidamente atingida pela indústria, forçando, em pouco tempo, outra atualização no esquema de particionamento DOS.

Um esquema com 32 bits para descrever o número de blocos LBA foi implementado. O cálculo para o limite de 28 bits é feito do seguinte modo, levando em conta um 1 MiB = 1024 bytes:

  268.435.456      *  512 bytes         = 137.438.953.472
  Total de blocos  *  Tamanho do bloco  = Tamanho máximo do maior disco rígido em bytes.

  137.438.953.472            /     (1024 ^ 3)  = 128 GiB
  Tamanho máximo em bytes    /         1 GiB   = 128 GiB


O limite de 32 bits da MBR para descrever os LBA, define o tamanho máximo do disco como 2 Terabytes. Durante certo tempo, o limite de 2 Terabytes em uma unidade de disco parecia que não seria atingido.

Todavia, a partir do final de 2010, começaram a ser fabricados discos com essa capacidade. Neste momento, ficou claro que o padrão de particionamento DOS tinha chegado ao fim, e nenhuma atualização era mais possível. Foi preciso reinventar o modo como os computadores dão partida.

O antigo sistema da IBM BIOS/MBR possui tantas deficiências, que não é mais suficiente para atender ao tamanho dos novos dispositivos e, principalmente, aos novos sistemas operacionais.

Desta vez, a resposta para o problema veio da Intel. Dentro da especificação EFI (Extended Firmware Interface), uma proposta da Intel para substituição dos antigos BIOS.

Podemos encontrar uma solução para substituir o setor MBR por algo chamado de "Tabela de Partição GUID", ou "Particionamento GPT".

    Próxima página

Páginas do artigo
   1. IBM - BIOS
   2. UEFI - BIOS
   3. Boot Seguro
Outros artigos deste autor

Viva o Linux é uma ferramenta útil hoje em dia?

Instalação de um servidor de mensagens instantâneas Openfire na sua rede com clientes Microsoft Windows e cliente Jabber Exodus

Utilizando GMail (Google Mail) em seu cliente de email favorito

Repensando o PID 1 - Lennart Poettering

Funtoo Linux - Pré-instalação

Leitura recomendada

FAQ do SO GNU/Linux

Viva o Linux - mas sem muletas

Seu currículo na web

Uso de terminologia imprópria com software livre

Oferta imperdível: Linux em promoção, somente hoje!

  
Comentários
[1] Comentário enviado por lcavalheiro em 18/03/2013 - 10:51h

Excelente artigo, Kyetoy! Matando a questão a pau, e com estilo!

[2] Comentário enviado por mpsnet em 18/03/2013 - 10:59h

Alguém poderia me ajudar ?
Após habilitar o EFI boot secure no setup do meu notebook e instalar o windows 8, notei que após o termino da instalação não entrou no Windows8.
Apareceu uma tela como se fosse um boot loader, mas não existia opção alguma para escolher.
Então reiniciei a máquina e tentei entrar no setup novamente. Para minha surpresa após teclar <F2> para entrar no setup padrão (BIOS), não entra mais....vai direto para esta tal tela mencionada anteriormente.
Então removi todos os discos, achando que poderia ser algo ligado aos discos, mas mesmo assim nao consigo acessar mas o setup original da maquina.
A máquina continua "butando" um USB/DVD Live.... mas setup nada....

Como posso resolver isso ?

[3] Comentário enviado por julio_hoffimann em 18/03/2013 - 20:57h

Parabéns, artigo de excelente nível técnico.

Abs.

[4] Comentário enviado por konishi em 19/03/2013 - 11:13h

Excelente!

[5] Comentário enviado por striker_rafael em 25/03/2013 - 16:42h

Excelente artigo!! Pra acabar de vez com aquelas dúvidas sobre UEFI e Secure Boot.. Parabéns!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts