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.
Índice
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 grande e unificado .
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”. A 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.
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 chroot
um 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.
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.
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.
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.
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 fdisk
comando. Estamos usando o
-l
(partição de lista) opção. Você precisará usar
sudo
, também.
sudo fdisk -l
Percorra a saída até ver entradas denominadas “Sistema EFI” e “Sistema de arquivos Linux”.
Neste computador, ambos estão no sda
disco rígido. Eles estão nas partições um e dois, conforme indicado pelos rótulos de partição /dev/sda1
e /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.
Precisamos montar os sistemas de arquivos nessas partições anexando-os ao sistema de arquivos ativo. O mount
comando 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 fdisk
comando.
sudo montar /dev/sda2 /mnt
sudo mount /dev/sda1 /mnt/boot/efi
Para fazer com que a raiz efetiva do sistema de arquivos comece na raiz do seu sistema de arquivos real instalado, usaremos chroot
para 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
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
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 /home
o 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-install
comando.
instalação do grub
Correr grub-install
cegamente assim geralmente não é recomendado. Neste caso, é o que era necessário.
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.
Muitos aplicativos de limpeza estão disponíveis para Windows ao longo dos anos, mas hoje em…
Seu PlayStation 4 está congelado? Seus jogos favoritos continuam travando? Reiniciar seu PS4 pode resolver…
A popularidade das mensagens de texto significou aprender uma forma totalmente nova de comunicação. Você…
A foto dos "Pilares da Criação" tirada pelo Telescópio Espacial Hubble é uma das fotos…
O Proton Drive saiu de seu estágio beta há algumas semanas, mas o aplicativo real…
Para ver suas fotos mais de perto ou para uma edição precisa , você pode…