Unified Extensible Firmware Interface (UEFI)

Conheça a atual tecnologia por trás do boot dos computadores e porque você deveria considerar utilizar o UEFI em suas próximas formatações!


| Se você apoia nosso site, desative o AdBlock quando visitá-lo, inclusive em Mobile!
Os anúncios são poucos e não invasivos. Se quiser contribuir com nosso trabalho, clique em qualquer banner de sua preferência, exceto dos Parceiros. 
Mais detalhes clicando aqui.


Introdução

Em algum momento durante a formatação de um computador você deve ter sido acometido pela escolha de uma dentre estas opções: UEFI/EFI ou Legacy/CSM/BIOS. E a escolha mais utilizada continua sendo a segunda opção. Hoje vou mostrar-lhes as vantagens de cada um dos 2 modos de boot e por quê você deveria considerar utilizar o UEFI como opção na sua próxima formatação!

1. Modo Legacy / CSM / BIOS

Esse modo de boot é um padrão desde o tempos das CPUs de 32 bits. Ele acompanha o MBR – traduzido do inglês como Registro Mestre de Inicialização – que é um tipo especial de setor de inicialização no início de dispositivos de armazenamento particionados, como discos ou unidades removíveis destinadas para uso em sistemas compatíveis com IBM PC e mais recentes. O conceito de MBRs foi introduzido ao público em 1983 com PC DOS 2.0.

Ou seja, seu conceito, criação e desenvolvimento já estão ficando defasados e como tal, a Intel foi uma das primeiras a anunciar recentemente que não dará mais suporte a esse modo de boot.

2. UEFI / EFI

O Unified Extensible Firmware Interface, em português Interface Unificada de Firmware Extensível, é uma especificação que define uma interface de software entre o sistema operacional e o firmware da plataforma. O UEFI pretende substituir a interface de firmware do Sistema de Entrada/Saída Básico (BIOS). Na prática, a maioria das imagens UEFI fornecem suporte legado (Legacy ou CSM mode) para os serviços do BIOS mas isso tende a acabar.

A especificação original EFI – Extensible Firmware Interface – foi desenvolvida pela Intel. Algumas de suas práticas e formatos de dados espelham aqueles do Windows, por isso erroneamente se atribuía o UEFI a uma invenção da Microsoft para destruir o Linux. E isso é uma ideia descabida, incorreta!

A especificação da UEFI é gerenciada pelo Unified EFI Forum, e não pela Microsoft como muitos pensam. Outro motivo que possa ter justificado tal ideia é a de que o UEFI codifica o boot dos sistemas; em sua fase inicial de implementação, anos atrás, afirmava-se que alguns computadores com sistemas UEFI não aceitavam a instalação do Linux. Mas o fato é que o Linux apenas não suportava o UEFI e hoje, mesmo distribuições “menores” já possuem esse modo em suas LiveUSBs.

A essa altura, jovem Padawan você deve estar aí encafifado:
A teoria é linda, tudo lindo, muito texto complexo com linguajar técnico. E pra nós, usuários comuns, o que ganhamos com o uso do UEFI?

O modo UEFI é superior ao Legacy em tudo.
Correlacionando eles, as vantagens e desvantagens são as seguintes:

  • O UEFI não possui mais limitações técnicas para boot de sistemas. O MBR exigia que todo o código de boot coubesse em apenas 1 Mb, esse pequeno código devia procurar o restante do boot no disco, numa dita gambiarra, para depois inicializar. No UEFI não é o caso, os desenvolvedores podem incrementar o código de boot da maneira que quiserem que ele será lido e o boot será iniciado, sem rodeios!
  • O modo Legacy suporta discos rígidos particionados em formato MBR, padrão do Windows 98 por exemplo. Para terem uma base, o UEFI existe desde o Windows XP! Esse formato, o MBR, se vocês se lembrarem bem – a quem formatou muito computador na vida – só permite criar 4 partições primárias ou 3 primárias e 1 partição estendida com 4 sub-partições secundárias virtuais.
O MBR apenas reúne uma simples tabela de partição no começo do disco (em azul), e as 3 partições primárias ficam a seguir (C, E e F); Caso queira mais partições que 4, a quarta partição primária se torna uma partição estendida com n sub-partições.

Na prática essa gambiarra fazia com que você por exemplo, caso faça dual boot no linux:

  • o boot do Windows ocupa a partição C
  • o C:/ do Windows ocupa a partição E
  • o boot do linux ocupa a partição F
  • e a /home, a /var e a /usr ocupam partições secundárias da partição estendida, estas em G, H, n, etc. Se por acaso essa partição estendida der algum problema, ela vai mandar todo mundo dentro dela pro vinagre, de uma vez só.

Não existe uma segurança nisso.
E uma corrupção da partição estendida é mais difícil de recuperar.

Além disso, caso você queira a segurança de uma partição primária, você fica limitado a 4 partições apenas. Qualquer partição criada depois da quarta não será reconhecida.

Já o modo UEFI suporta discos particionados em formato GPT, um novo padrão muito mais seguro que possui uma estrutura de escrita redundante do índice de partições, ou seja, o endereçamento das partições é gravado no começo e no fim do disco! Isso facilita recuperar dados em caso de qualquer tipo de pane que a partição EFI possa vir a sofrer.

Disco em GPT, com pequena trecho MBR para retrocompatibilidade, tabela de partição, partições de 1 a n (até 64 partições primárias) e backup da tabela de partições no final do disco.

Outra coisa importante a ser mencionada, um sistema que inicia em modo UEFI será iniciado mais rapidamente que o antigo MBR. A maneira estruturada como os dados são lidos em UEFI permitem que a placa mãe encontre o kernel do sistema no disco rígido mais rapidamente durante o processo de boot. – Mais detalhes aqui!

Sem esquecer de mencionar, claro, o UEFI possui um micro-sistema operativo embutido, que permite dar manutenção em computadores mesmo que seu OS padrão esteja quebrado.
O UEFI trás consigo o modo Shell UEFI, que é um Terminal open-source que permite dar manutenção em seu sistema operacional instalado e até mesmo dar manutenção do computador caso ele esteja com o boot corrompido ou algo assim.
Além disso tudo, o UEFI faz comunicação com o acesso á interface de gerenciamento da placa mãe, por ele você também pode configurar as definições básicas da sua placa mãe.

Atenção:
A partir deste ponto da postagem, entraremos na parte prática do gerenciamento do UEFI para sistemas que já possuem UEFI instalado e são geridos por outros gestores de boot.
A configuração dessa parte é de sua inteira e total responsabilidade! Utilize minhas dicas como uma referência mas tenha um pouco de conhecimento prévio acerca disso. Lidar com o gestor de boot de um sistema é sempre uma parte que exige muita atenção; Se fizer alguma configuração errada seu sistema não vai iniciar! “Teje” avisado.

Antes de prosseguir, só checando:

  • GRUB2 – Gestor de boot padrão do linux, suporta UEFI e Legacy.
    BURG – Sistema de gestão de interface e temas para o GRUB2.
  • Ambos acima suportam ser editados por uma interface de usuário amigável chamada grub-customizer.
  • rEFInd – Substitui o GRUB2 e o BURG ao mesmo tempo! Este não possui interface para customização, seu ajuste não é amigável e ainda requer intenso uso do Terminal.

3. rEFInd

Caso você utilize por padrão o GRUB2 com o BURG como gestor de boot e pensou em usar ele para gerenciar seu recém formatado PC em UEFI, saiba que o BURG não suporta UEFI e o GRUB2 já está tecnicamente obsoleto apesar de suportar o UEFI; o rEFInd é uma ferramenta muito mais poderosa para gerenciar sistemas que iniciam como UEFI e possui temas nativos, substituindo bem o BURG nesse caso.

OBS: O rEFInd não é amigável!
Ela não possui ferramentas como uma interface de usuário, tal qual o grub-customizer, ou possui manuais simples. Portanto use-o com cuidado e atento ao tutorial abaixo para não se perder, as configurações dele se resumem a comandos no terminal e editar arquivos de texto .conf.

Primeiramente, certifique-se de ter uma partição EFI em seu sistema. Pelo GPARTED você pode conferir isso. Essa partição normalmente está em formato FAT32 ou vFAT e possui poucos Mb. Logo á frente, na linha dos dados da partição, você verá as flags desta partição: ESP, Boot
ESP é o código da partição, reconhecido pelo UEFI para iniciar.
Outra coisa, a tabela de partição do seu disco rígido deve estar em GPT! Se estiver em MBR, o UEFI corromperá.
Se estiver tudo em ordem, prosseguiremos com a instalação.

No Ubuntu, Debian e derivados, o rEFInd está disponivel nativamente no repositório:

 $ sudo apt install refind

Uma vez instalado, instalado, execute:

 $ sudo refind-install

Se a partição EFI estiver devidamente configurada, ela será automaticamente detectada, todos os seus sistemas em disco serão reconhecidos (caso use dual boot) e uma tabela de boot será montada.

Se tudo correu bem, você verá a tela de boot do rEFInd (levemente parecida com a do GRUB com BURG instalado).

OBS: Agora que você está usando o rEFInd, deverá anular o uso do GRUB pelo sistema, senão caso você der update e upgrade, e seu kernel atualizar por exemplo, o grub será reconstruído e seu sistema não vai iniciar.

Edite estes 2 arquivos:

 /etc/kernel/postrm.d/zz-update-grub
 /etc/kernel/postinst.d/zz-update-grub

Renomeie os 2 para zz-update-grub.BAK.
Estes 2 comandos podem agilizar as coisas

$ sudo mv /etc/kernel/postrm.d/zz-update-grub 
/etc/kernel/postrm.d/zz-update-grub.BAK
$ sudo mv /etc/kernel/postinst.d/zz-update-grub 
/etc/kernel/postrm.d/zz-update-grub.BAK

OBS: A quebra de linha nos dois comandos acima representa um espaçamento simples.

Agora sim, seu OS não vai mais atualizar o GRUB e quebrar seu UEFI. Isso se faz necessário ainda mais nos filhos do Debian, que são sistemas ainda muito dependentes do GRUB.

4. Customização

Para configurar o rEFInd é que as coisas complicam um pouco.
Ele não possui uma interface amigável como o grub-customizer e nem uma documentação pt-br devidamente explicada. Tudo que se tem é a documentação original inglês e o arquivo .conf para configurá-lo.
A documentação oficial disponível é esta.

Mas como sou um bom samaritano, vou citar uma configuração basica para quem está perdido com a customização dele.

1- Eu quero a tela de splash do meu sistema, quando exibe só a logo dele durante o boot, porque agora ele fica exibindo aquele monte de letrinha quando inicia.

Faça o comando:

 $ sudo mkrlconf

Ele vai gerar um arquivo chamado “refind_linux.conf” dentro de /boot na raíz do seu sistema.

Abra esse arquivo:

 $ sudo nano /boot/refind_linux.conf

Nano, Gedit, Pluma, qualquer editor de sua preferência.

Lá dentro você verá linhas parecidas com essa:

 "Boot with normal options" "ro root=/dev/mapper/nessus-ubuntu"
 "Boot with verbose display" "ro root=/dev/mapper/nessus-ubuntu"

Ou linhas assim, como foi meu caso:

 "Boot with normal options" "ro root=c6245396-0610-48ff-9715-d404d567f46f"
 "Boot with verbose display" "ro root=48d50372-e0a3-4e38-8520-fa889f5e11c0"

Edite elas, adicionando “quiet splash”. Elas ficarão assim:

 "Boot with normal options" "ro root=/dev/mapper/nessus-ubuntu quiet splash"
 "Boot with verbose display" "ro root=/dev/mapper/nessus-ubuntu quiet splash"

Ou linhas assim, como foi meu caso:

 "Boot with normal options" "ro root=c6245396-0610-48ff-9715-d404d567f46f quiet splash"
 "Boot with verbose display" "ro root=48d50372-e0a3-4e38-8520-fa889f5e11c0 quiet splash"

Com isso seu sistema vai exibir a logo no boot e não mais aquele monte de texto e código que em nada lhe interesse 

2- Eu gostaria de customizar meu rEFInd, mudar logo, banner, wallpaper e até mudar o tempo de exibição dessa tela, antes dele ir pro sistema padrão.

Primeiro de tudo, a partição EFI pode ficar desmontada por padrão após o início do seu sistema se sua /boot for numa partição separada do resto do /. Isso é uma medida de segurança para evitar que programas maliciosos por um acaso venham a se instalar nele. Sem monta-lo, a pasta dele, em /boot/efi estará vazia. Se sua pasta /boot/efi ou a partição EFI estão com coisas dentro, então está OK. So tente montar se estiver vazia.

Para monta-lo, verifique junto ao GPARTED qual o código de device dele. O meu aqui, por exemplo, é o /dev/sda4!
Vou usar o /dev/sda1 de exemplo por ser o mais comum MAS ATENTO QUE você deverá usar SEU número, confira se realmente está correto.

$ sudo mkdir /media/efi
$ sudo mount /dev/sda1 /media/efi

Se tudo correr bem você verá sua partição EFI montada.
Abra essa partição com seu gerenciador de arquivos em modo root. O meu é o caja, então no terminal…

 $ sudo caja /media/efi/EFI/BOOT

Tenha consciência de que:

  • Trocando as logos dentro da pasta /icons você trocará o ícone do sistema quando ele for exibido no boot. A imagem deve ser em .png com alpha (transparencia).
  • O arquivo refind.conf é o principal de configuração dele.
  • O corpo dele está com textos explicativos da função de cada parte, tudo em ingles. É aqui nesse arquivo que você define por exemplo, qual será a imagem de fundo da tela principal do rEFInd no momento do boot.

Para mudar o tempo de boot, procure no refind.conf, logo no começo, a linha “timeout”.
O valor 30 está em segundos.
Se definir como 0, ele ficará sem temporizador e exigirá que você escolha um sistema e tecle Enter.
E se você definir como -1, a tela do rEFInd não aparecerá e o sistema vai iniciar direto. É uma boa opção para quem tem apenas 1 sistema no PC e não lida com multi-boot.

5. Conclusão

Ufa! Eu disse que o rEFInd não era amigável 
Mas com certeza é sólido. O rEFInd é um dos melhores gestores UEFI no momento e se devidamente configurado não deverá lhe render dores de cabeça futuras.

#UrbanCompassPony

Fontes:
Rodsbooks: Refind
Crushbang: Crashing UEFI at Update
Wiki: Legacy
Wiki: MBR
Wiki: EFI

1 comentário em “Unified Extensible Firmware Interface (UEFI)”

  1. o systemd-boot (antigo gummiboot), é tão sólido/usável quando o rEFInd?
    nas minhas instalações no virtualbox eu geralmente uso ele ao invés do rEFInd!

    Responder

Deixe um comentário