Introdução
No mundo da tecnologia a evolução contínua é, se não uma regra, ao menos fato. Dois padrões que por muito tempo desafiaram essa afirmação foram a BIOS e a MBR.
Novos padrões surgiram e hoje já estão consolidados que são a UEFI e a GPT. Em alguns casos a UEFI 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.
O que são e como funcionam a BIOS e a MBR?
A BIOS é um firmware que reside em um chip na placa mãe e é executado assim que o computador é ligado. Sua função é se comunicar com o hardware e verificar se ele está disponível e funcionando corretamente.
A MBR é um pequeno setor localizado no início de um dispositivo de armazenamento que contém informações sobre as partições deste, indicando onde começam e terminam, além de conter o código de inicialização do sistema operacional (bootloader).
A BIOS chama para a execução o código de inicialização que está no primeiro setor do dispositivo de armazenamento definido com maior prioridade em suas configurações. Se o dispositivo for um CD/DVD, a BIOS utiliza a especificação El-Torito, que é um padrão para inicialização a partir de mídias ópticas. Se o dispositivo for outro tipo de armazenamento, como um HD, SSD ou pendrive, a BIOS lê o código presente na MBR.
A BIOS não reconhece a tabela de partições nem o sistema de arquivos, ela inicia o hardware e transfere o controle para o bootloader indicado na MBR, que é responsável por gerenciar esses processos. Exemplos de Bootloaders incluem BOOTMGR (Windows), GRUB, LILO e Syslinux.
O que são e como funcionam a UEFI e a GPT?
A UEFI é uma especificação projetada por um fórum composto por organizações e grandes empresas como Intel, AMD, Microsoft e HP, criada com o objetivo de padronizar as funcionalidades em um novo firmware, eliminando as limitações da BIOS.
GPT é um esquema de particionamento de disco utilizado em sistemas com firmware UEFI mais moderno e flexível que o MBR, permitindo um número muito maior de partições e tamanhos de disco.
A UEFI introduz uma forma diferente de carregar o sistema operacional em comparação com o método tradicional em que a BIOS chama o bootloader lendo a MBR. A UEFI é capaz de ler as tabelas de partições e compreender o sistema de arquivos utilizado, possuindo suporte tanto à MBR quanto à GPT.
Não é carregado nenhum código de inicialização na MBR, exista ela ou não. A UEFI utiliza uma partição especial na tabela de partições chamada EFI System Partition (ESP). A ESP é formatada com o sistema de arquivos FAT e contém aplicativos EFI, incluindo carregadores de inicialização para sistemas operacionais e programas utilitários (ex: teste de memória RAM).
Para iniciar o sistema operacional usando UEFI, é preciso armazenar o arquivo responsável por essa função no caminho /EFI/boot/bootx64.efi dentro da partição reservada EFI. Em alguns sistemas UEFI este pode ser o único método, mas normalmente é possível acessar o arquivo de carregamento navegando pelas pastas dentro da partição especial.
Ao contrário da BIOS, o carregamento de múltiplos sistemas operacionais (multiboot) pode ser feito diretamente através da UEFI. Cada sistema pode armazenar seus arquivos de carregamento dentro de sua partição EFI, sendo para a UEFI simplesmente uma questão de carregar um arquivo para cada sistema operacional.
Processo de inicialização com UEFI
Computador é ligado
O firmware UEFI é carregado a partir da NVRAM e assume o controle do processo de inicialização. A UEFI pode operar em 32 e 64 bits, o que permite um acesso mais amplo e eficiente aos recursos do hardware desde o início.
UEFI inicializa o hardware
A UEFI inicia e supervisiona o POST para garantir que cada componente de hardware faça um autoteste de seu funcionamento. Exemplos desses componentes incluem CPU, GPU, memória RAM, periféricos, dispositivos de armazenamento, interfaces USB, baterias e coolers.
UEFI lê e carrega o bootloader
O firmware UEFI possui um gerenciador de inicialização integrado, responsável por carregar aplicativos localizados na Partição do Sistema EFI (ESP) de um dispositivo de armazenamento. A UEFI carrega o aplicativo EFI responsável por inicializar o sistema operacional (bootloader) na memória e transfere o controle para ele.
Bootloader carrega o kernel
O bootloader, agora no controle, carrega o kernel do sistema operacional na memória, passando parâmetros de configuração e informações de hardware para ele, tornando o processo de inicialização mais eficiente.
Após ser carregado, o kernel configura o hardware do sistema por meio do carregamento de drivers e inicia o ambiente de programas, habilitando os serviços do sistema.
Sistema operacional e espaço do usuário
Só então o sistema operacional transfere o controle para o espaço do usuário, permitindo o carregamento de aplicativos e programas de alto nível, finalizando assim o processo de inicialização.
MBR vs GPT
MBR
Usando MBR é possível criar apenas 4 partições primárias ou 3 partições primárias e 1 estendida. A partição estendida permite criar um número maior de partições lógicas dentro dela. Se houver espaço em disco sobrando, que não esteja vinculado à partição estendida, ele ficará inacessível.
Dentro da partição estendida, os metadados das partições lógicas são armazenados em uma estrutura de lista encadeada. Se uma ligação nessa estrutura for corrompida, o sistema operacional pode ter dificuldades em localizar e acessar as informações das partições lógicas, potencialmente resultando em perda de dados.
A MBR usa apenas 1 byte para identificar o tipo de uma partição. Com um número tão limitado (256, para ser exato), há o risco de que diferentes sistemas operacionais ou softwares de partição atribuam o mesmo código a tipos de partições diferentes. Isso pode levar a conflitos ao tentar identificar ou acessar uma partição.
Outro ponto importante é que as informações dos setores das partições são armazenadas usando um valor LBA de 32 bits. Esse tamanho de LBA, juntamente com um setor de 512 bytes (o mais usado), limita o endereçamento do tamanho do disco a aproximadamente 2,2 TB. Qualquer espaço além dos 2,2 TB do disco não poderá ser definido em uma partição.
GPT
Utiliza identificadores únicos (GUIDs) para cada partição, evitando conflitos e permitindo a criação de um número muito maior de partições. Isso elimina a necessidade de partições estendidas ou lógicas e oferece maior flexibilidade. A quantidade máxima de partições é determinada pelo espaço alocado para a tabela de partições, que inicialmente suporta até 128 entradas. Ferramentas como o gdisk permitem ajustar esse limite, ampliando as possibilidades de configuração do disco.
As informações dos setores das partições são armazenadas usando um valor LBA de 64 bits, possibilitando, em teoria, o endereçamento de discos de até 8 ZiB. Implementações práticas podem ser limitadas por outros fatores, incluindo tamanho do setor, sistema operacional, formato do arquivo e hardware.
O GPT possui mecanismos de redundância e verificação de integridade que permitem detectar erros e corrupção nos dados de partição. Esses mecanismos incluem:
- O armazenamento de múltiplas cópias do cabeçalho e da tabela de partições em diferentes setores do disco, garantindo redundância.
- A utilização de um valor de verificação de redundância cíclica (CRC), que é calculado para cada bloco de dados. Qualquer alteração no conteúdo resulta em um checksum diferente, permitindo a detecção imediata de erros.
Esses mecanismos aumentam significativamente as chances de recuperação em caso de falha e são fundamentais para a integridade e a confiabilidade dos dados armazenados em discos que utilizam GPT, especialmente em ambientes críticos onde a perda de dados pode ter consequências graves.
Concluindo
A combinação de bootloaders UEFI com discos particionados em GPT traz muitas vantagens em relação a sua contrapartida BIOS + MBR, como melhor desempenho, maior flexibilidade, escalabilidade e confiabilidade, e deve ser preferida sempre que estiver disponível em um sistema com ambas as opções.
Permite, por exemplo, o uso de discos SSD NVMe com maior eficiência e a instalação de múltiplos sistemas operacionais em um mesmo disco de forma mais eficiente e segura.
A única ressalva seria a presença de restrições específicas, como compatibilidade limitada de sistemas ou softwares antigos com UEFI + GPT.
Referências
Um artigo antigo e já desativado deste próprio site serviu como ponto de partida para a elaboração deste texto. Inteligências artificiais foram empregadas para a correção de erros gramaticais e semânticos, além da otimização da estrutura textual e do vocabulário.