Como consertar as inicializações do Linux no erro do BIOS

Laptop em um fundo azul mostrando um prompt de comando do Linux.

Sabe-se que as atualizações do GRUB resultam na inicialização de computadores Linux nas configurações do BIOS ou UEFI. A correção para isso tira proveito de um truque útil de recuperação do sistema que você realmente deveria conhecer.

Um estudo de caso: GRUB 2:2.06.r322

Uma atualização de sistema para Arch e distribuições Linux baseadas em Arch no verão de 2022 incluiu uma nova versão do  GRUB . GRUB  significa  bootloader grandeunificado .

Um bootloader é um aplicativo que inicia o processo de inicialização quando o computador é ligado . Várias ferramentas de software e utilitários precisam ser lançados – a partir da partição correta e na ordem correta – para eventualmente resultar em um sistema operacional operacional e acessível. GRUB dá início a essa cascata de eventos.

Se você tiver mais de um sistema operacional instalado em seu computador, o GRUB fornece um menu para que você possa selecionar qual sistema operacional usar. Uma das alterações de código no GRUB 2:2.06.r322 adicionou suporte para uma nova opção GRUB,

 --is-supported 

. A opção é usada para indicar se um recurso de inicialização para firmware está presente ou não. Se estiver, o GRUB adiciona uma entrada ao menu de inicialização para permitir que você inicialize nas configurações do EUFI.

A nova opção  foi referenciada em um script  chamado “30_uefi-firmware.in”. diferença para este arquivo  mostra que um

 if 

declaração foi removida e duas linhas foram adicionadas.

Uma das novas linhas foi uma substituição 

 if 

declaração. A outra nova linha contém

 fwsetup --is-supported 

. O “fw” em “fwsetup” significa firmware. Mas porque essa linha está acima do novo 

 if 

instrução, ela sempre será executada. Se estivesse dentro do corpo do 

 if 

instrução, ela só seria executada quando o teste no

 if 

declaração resolvida como verdadeira.

Recomendado:  Como baixar suas fotos do Facebook

Isso causou problemas em muitos, mas não em todos, computadores UEFI . Dependia se a versão do GRUB que você já instalou suportava este comando. As máquinas afetadas fariam uma de duas coisas. Eles entrariam em um loop de inicialização onde o processo de inicialização nunca seria concluído, mas reiniciado continuamente, ou o computador inicializaria diretamente nas configurações do firmware UEFI. De qualquer forma, não havia como forçar o computador a inicializar no Linux.

Quando você se depara com situações como essa, sempre existe a opção nuclear de fazer uma reinstalação completa. Isso funcionará, mas dependendo de como o seu disco rígido foi particionado, sem um backup recente, você poderá perder dados.

O método de baixo impacto usa chrootum Live USB ou Live CD/DVD. Esta é uma boa técnica para entender e estar atento a todos os tipos de falhas do sistema quando você não consegue inicializar ou fazer login em seu computador Linux.

A técnica que usaremos

Para usar esta técnica, você precisa ter um USB inicializável ou um CD/DVD com uma distribuição Linux, que inicialize em uma instância Linux ativa. Normalmente, eles são chamados de Live USB ou Live CD/DVD. Todas as principais distribuições suportam esta função.

Não vamos instalar nada, então a mídia ao vivo não precisa ser a mesma distribuição que você instalou no seu computador. Você poderia usar um Ubuntu USB para reparar um computador EndeavourOS, por exemplo. Se você não tiver acesso a nenhuma mídia ao vivo, precisará usar outro computador para baixar uma imagem e gravá-la em um cartão de memória USB ou em um CD/DVD.

Ao inicializar a partir da mídia ao vivo, você poderá montar e acessar seu sistema de arquivos existente. Seu sistema de arquivos instalado aparecerá como parte do sistema de arquivos do Linux que foi inicializado a partir da mídia live. Isso é ótimo. Se pudermos acessá-lo, teremos uma chance de consertá-lo. Mas isso levanta uma questão.

Recomendado:  Como Excluir Amigos do Snapchat

A raiz desse sistema de arquivos híbrido é a raiz do sistema de arquivos de mídia ao vivo, não a raiz do sistema de arquivos instalado. Para fazer com que os caminhos de arquivo configurados em seu sistema Linux façam referência aos locais de destino corretos — em algum lugar dentro de seu sistema de arquivos, e não em algum lugar relativo à raiz do Linux ativo — precisamos usar para definir umachroot nova raiz que aponte para a raiz do seu sistema de arquivos instalado. Em outras palavras, os caminhos que começam com “/” usarão a raiz do seu sistema de arquivos como ponto de partida.

O computador de teste que usamos para isso usa o

 ext4 

sistema de arquivos , mas você também pode usar essa técnica em outros sistemas de arquivos. Você só precisa identificar quais partições ou volumes você precisa montar e onde montá-los. Os princípios são os mesmos.

Colocando em prática

Criamos uma unidade USB inicializável e inicializamos nosso computador danificado a partir dela. A distribuição que usamos foi EndeavourOS . A mídia ao vivo do EndeavourOS inicializa no ambiente de desktop XFCE 4.

A mídia ao vivo do EndeavourOS inicializada no ambiente de desktop XFCE

Para identificar quais partições contêm a raiz do seu sistema de arquivos e qual é a partição de inicialização, abra uma janela de terminal e use o fdiskcomando. Estamos usando o

 -l 

(partição de lista) opção. Você precisará usar

 sudo 

, também.

sudo fdisk -l

Usando o comando sudo fdisk -l para listar partições e dispositivos

Percorra a saída até ver entradas denominadas “Sistema EFI” e “Sistema de arquivos Linux”.

A saída do comando sudo fdisk -l com as partições de inicialização e raiz destacadas

Neste computador, ambos estão no sdadisco rígido. Eles estão nas partições um e dois, conforme indicado pelos rótulos de partição /dev/sda1e /dev/sda2.

No seu computador, eles podem estar em discos rígidos e partições diferentes. Tome cuidado para anotar as partições em que estão, precisaremos usá-las nos próximos comandos.

Recomendado:  Como postar várias fotos no Instagram de uma vez

Precisamos montar os sistemas de arquivos nessas partições anexando-os ao sistema de arquivos ativo. O mountcomando fará isso por nós. Lembre-se de que os rótulos de suas partições provavelmente serão diferentes, portanto, certifique-se de usar os dos resultados do seu fdiskcomando.

sudo montar /dev/sda2 /mnt

sudo mount /dev/sda1 /mnt/boot/efi

Montando os sistemas de arquivos raiz do sistema de arquivos e de inicialização

Para fazer com que a raiz efetiva do sistema de arquivos comece na raiz do seu sistema de arquivos real instalado, usaremos chrootpara definir a raiz como o ponto de montagem “/mnt”. É aqui que a raiz do sistema de arquivos instalado é enxertada no sistema de arquivos ativo.

sudochroot /mnt

Usando o comando chroot para criar uma nova raiz efetiva

Observe que o prompt de comando muda para mostrar que agora você está efetivamente logado como root e está no diretório raiz “/” do sistema de arquivos do seu computador.

Podemos testar isso facilmente, entrando no diretório “/home” e verificando quais diretórios existem dentro dele.

cd /home

eu

Usando ls para listar contas de usuário

Você deverá ver um diretório para cada usuário configurado em seu computador, incluindo um para sua própria conta de usuário. Este computador possui um único usuário, chamado “dave”. Se tivéssemos usado cd /homeo comando antes chroot, teríamos entrado no diretório “/home” do sistema de arquivos ativo.

Só para deixar claro, agora você está acessando  seu sistema de arquivos real  como  usuário root  , então tome cuidado.

Para corrigir o problema com GRUB 2:2.06.r322, tudo o que precisávamos fazer era executar o grub-installcomando.

instalação do grub

Executando o comando grub-install para corrigir o erro de inicialização do GRUB no BIOS

Correr grub-installcegamente assim geralmente não é recomendado. Neste caso, é o que era necessário.

Reparar ou Substituir

Se estiver tentando corrigir um problema diferente, você precisará verificar os fóruns de sua distribuição para obter a solução apropriada para o seu problema. Se for uma reclamação generalizada, você logo encontrará uma solução para ela.

No mínimo, agora que você pode acessar seu sistema de arquivos, poderá copiar seus dados para alguma mídia removível. Se decidir fazer uma reinstalação completa, você não perderá dados.