Idioma
Categoria
Pesquisar

UEFI x BIOS - GPT x MBR

Entenda a diferença entre o novo boot loader UEFI com sua tabela de partições GPT e a BIOS com a MBR.

Em Artigos Por Rudi Drusian Lange
Publicado em
Última atualização

No mundo da tecnologia a evolução contínua é se não uma regra um fato. Um padrão que a muito tempo foge a esta regra é a BIOS e seu padrão de tabela de partições, a MBR.

Um novo padrão vem sendo utilizado, é chamado de UEFI (Unified Extensible Firmware Interface) e conta com uma nova tabela de partições, a GPT, algumas vezes a UFEI vem instalada em conjunto com a BIOS e em outros casos inteiramente independente. Saiba um pouco mais sobre a diferença entre os padrões, as vantagens e desvantagens.

BIOS

BIOS (Basic Input Output System) é o primeiro programa que é iniciado assim que o computador é ligado. Após todo o hardware ser inicializado, a BIOS executa o código de boot que fica no primeiro setor do primeiro dispositivo de sua lista. Se for um CD/DVD a entrada El-Torito é executada, se for um HDD será executado o código da MBR.

A BIOS não sabe ler a tabela de partições ou o sistema de arquivos, tudo que ela faz é iniciar o hardware e carregar o código de boot. Para carregar múltiplos sistemas operacionais(multiboot) rodando a BIOS, é necessário utilizar um bootloader que tenha este suporte, como Grub, Lilo ou Syslinux.

UEFI

Unified Extensible Firmware Interface (UEFI) é um novo tipo de firmware desenvolvido pela Intel, introduz uma nova maneira de carregar o sistema operacional, diferente do tradicional método da MBR utilizado pelo sistema BIOS,  o firmware UEFI é capaz de ler as tabelas de partições e compreender o sistema de arquivos utilizado, possui suporte a ambas as tabelas de partições MBR e GPT.

Não é carregado nenhum código de boot na MBR, existindo ou não. Ele utiliza uma partição especial na tabela de partições chamada EFI SYSTEM PARTITION, na qual os arquivos necessários para carregamento do sistema são armazenados. A partição EFI é geralmente formatada como FAT32.

Para um carregamento automático de um sistema pelo UEFI é preciso armazenar o arquivo responsável por esta função no caminho /EFI/boot/bootx64.efi dentro da partição reservada para o UEFI. Em alguns sistemas UEFI este pode ser o único método, porém normalmente é possível acessar o arquivo de carregamento navegando pelas pastas dentro da partição.

O multiboot pode ser feito diretamente através do UEFI, cada sistema pode armazenar seus arquivos de carregamento no diretório /EFI/, sendo para UEFI simplesmente uma questão de carregar um arquivo para cada sistema operacional.

Processo de boot com UEFI

  • 1. Computador é ligado - Power On Self Test, ou processo POST;
  • 2. Firmware UEFI é carregado.
  • 3. Firmware lê seu gerenciador de boot para determinar qual aplicação UEFI será carregada em qual disco/partição.
  • 4. Firmware carrega a aplicação a partir da partição UEFISYS formatada em FAT32.
  • 5. Dependendo como for configurado, a aplicação UEFI pode carregar outra aplicação (o shell UEFI ou um gerenciador de boot tipo eEFInd) ou um kernel e initramfs(no caso de carregadores de boot como o Grub).

Suporte UEFI no Kernel do Linux

As configurações indispensáveis no kernel do linux para suporte a UEFI são:

  • CONFIG_RELOCATABLE=y
  • CONFIG_EFI=y
  • CONFIG_EFI_STUB=y
  • CONFIG_FB_EFI=y
  • CONFIG_FRAMEBUFFER_CONSOLE=y

GPT

GUID Partition table(GPT) é um layout de tabelas de partições, faz parte do padrão EFI (Extensible Firmware Interface) que é a proposta da Intel para substituição da BIOS, padrão introduzido pela IBM e o mais utilizado até os dias atuais. O GPT pode ser utilizado em conjunto com a BIOS, mesmo sendo um padrão da Intel, para resolver alguns problemas da tabela de partições MBR, como limitação de tamanho e quantidade de partições.

Desvantagens com MBR

  • * É possível criar somente 4 partições primarias, ou 3 partições primárias e 1 estendida sendo possível criar nesta última um grande número de partições. Se após criadas as 3 partições primarias e a estendida houver algum espaço sobrando em disco, ele ficará perdido.
  • * Dentro da partição estendida os metadados das partições lógicas são armazenados em uma estrutura de lista vinculada. Se uma ligação for perdida todas as outras partições lógicas perderão acesso ao seus metadados.
  • * Suporte apenas 1 byte para definir o tipo de partição, o que resulta em em muitas colisões.
  • * Armazena informações dos setores das partições usando valor LBA de 32-bit. Este tamanho de LBA juntamente com um setor de 512 bytes(o mais usado) limita o endereçamento de tamanho do tamanho do disco em 2TB. Qualquer espaço além dos 2TB do disco não poderá ser definido em uma partição.

Vantagens com GPT

  • * Utiliza GUIDs (UUIDs) para identificar o tipo de partição, o que elimina as colisões.
  • * Fornece GUID único para o disco e para as partições.
  • * Número grande de partições sem necessidade de criar partições estendidas, A quantidade total depende do espaço alocado para a tabela de partições, limitado incialmente em 128. É possível alocar mais espaço para a tabela de partições através do gdisk.
  • * Armazena informações dos setores das partições usando valor LBA de 64-bit, possibilitando endereçar discos de até 2ZB(zettabyte)
  • * Armazena o cabeçaho e tabela de partições no final do disco, possibilitando recuperação.
  • * Detecta erros e corrompimento do cabeçalho e da tabela de partições.

Bootloaders UEFI são capazes de carregar discos GPT, já que este é parte da específicação UEFI sendo o uso obrigatório. Ainda algumas BIOS não serão capazes de carregar sistemas GPT, mas a maioria sim.