Como corrigir erros mais comuns de inicialização no Linux

como-corrigir-erros-mais-comuns-de-inicializacao-no-linux

Neste artigo descrevemos os erros mais comuns de inicialização em sistemas Linux com exemplos. Além de conhecer os principais erros de inicialização no Linux, também separamos algumas dicas sobre como corrigir os problemas de boot.

Os erros mais comuns de inicialização em sistemas Linux

Lembramos que cada caso é um caso e neste artigo listamos os erros mais comuns de inicialização em sistemas Linux. Caso nenhuma solução resolva o seu problema, entre em contato conosco no nosso canal no Telegram.

1 – Instalei o Windows em modo dual boot e ele tomou conta da minha máquina

Em uma máquina dual boot, ou seja, com dois ou mais sistemas operacionais instalados em uma mesma máquina, o ideal é sempre instalar o Windows primeiro e depois a distribuição Linux. Um dos motivos é que o Windows “não respeita” o gerenciador de boot do Linux e acaba o “sobrescrevendo”.

Mas é possível recuperá-lo reinstalando o gerenciador de boot GRUB (GRand Unified Bootloader). No link abaixo temos uma melhor descrição do GRUB, como estrutura e arquivos de configuração. Você também pode conferir um artigo que fizemos, onde explicamos o que é e como funciona o GRUB no Linux.

Além deste artigo, também temos outro onde explicamos como funciona o boot no Linux. Neste, você saberá tudo o que acontece a partir do momento que você ligar o seu computador com Linux instalado.

Para simplificar, utilizaremos o seguinte exemplo: Vamos supor que eu tenho uma máquina com o Ubuntu 21.10 instalado e depois instalei o Windows 8 “por cima” e perdi o acesso ao Ubuntu. Será necessário reinstalar o GRUB. Para isso, execute o passo a passo abaixo:

1.1 – Como reinstalar GRUB com o Live DVD do Ubuntu

  • Em primeiro lugar, efetue o boot via Live CD, preferencialmente a mesma versão instalada na máquina local. No caso estamos utilizando o Ubuntu. Selecione o idioma “Português do Brasil” e clique em “Experimentar o Ubuntu
  • Depois, abra o terminal e execute o comando sudo fdisk -l. O comando listará várias partições instaladas na máquina local. Neste exemplo, temos somente um disco local (/dev/sda) e 3 partições do tipo Linux configuradas na máquina local. Precisamos encontrar qual delas é a partição raiz (/) e qual é a partição de boot (/boot).
Terminal
sudo fdisk -l
  • Neste exemplo, a partição /boot está separada do raiz (/). Portanto temos que montar a raiz primeiro e depois o /boot. Utilizamos a partição /mnt como “área temporária”. Executamos o comando sudo mount /dev/sda6 /mnt. Então repare que ao listarmos o conteúdo do /mnt com o comando ls /mnt, os arquivos contidos são exatamente da raiz da nossa máquina local.
Terminal
sudo mount /dev/sda6 /mnt
ls /mnt
003 - Os erros mais comuns de inicialização em sistemas Linux

1.2 Montar as partições locais manualmente

  • Agora montaremos a partição que possui os dados do /boot local com o comando sudo mount /dev/sda1 /mnt/boot. Utilizando o comando ls /mnt/boot, os arquivos contidos neste diretório são os arquivos padrão utilizados no /boot da nossa máquina local.
Terminal
sudo mount /dev/sda1 /mnt/boot
ls /mnt/boot
004 - Os erros mais comuns de inicialização em sistemas Linux
  • Agora precisamos montar os dispositivos físicos carregados pelo Live CD na raiz do nosso sistema local com os comandos a seguir.
Terminal
sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount -t proc /proc /mnt/proc
005 - Os erros mais comuns de inicialização em sistemas Linux
  • Migraremos a nossa execução atual do Live DVD para a máquina local, utilizando o comando sudo chroot /mnt. Repare que subimos diretamente para o usuário root e que o nosso diretório raiz é exatamente a partição local.
Terminal
sudo chroot /mnt
006 - Os erros mais comuns de inicialização em sistemas Linux
  • Reinstalaremos o GRUB com o comando grub-install /dev/sda ele pode ser executado com o sudo ou direto como root:
Terminal
sudo grub-install /dev/sda
007 - Os erros mais comuns de inicialização em sistemas Linux
  • Vamos atualizar a lista de kernels e sistemas operacionais disponíveis com o comando grub-mkconfig -o /boot/grub/grub.cfg:
Terminal
sudo grub-mkconfig -o /boot/grub/grub.cfg
008 - Os erros mais comuns de inicialização em sistemas Linux
  • E para finalizar, execute o comando exit e reinicie a sua máquina com o comando reboot. Não se esqueça de retirar o Live do Ubuntu.
Terminal
exit
009 - Os erros mais comuns de inicialização em sistemas Linux
  • Finalmente teremos o nosso GRUB reinstalado e com todas as entradas de kernel e sistemas operacionais disponíveis para uso.
010 - Os erros mais comuns de inicialização em sistemas Linux

2 – Sintaxe incorreta no /etc/fstab

O principal arquivo onde constam todas as as partições configuradas em um sistema Linux ficam localizadas em /etc/fstab. Às vezes, devido a testes ou até falha humana acabamos colocando alguma configuração indevida ou falta algum parâmetro neste arquivo. Quando este erro está relacionado as partições raiz (/) ou boot (/boot) o sistema simplesmente não subirá e ficará preso na tela de inicialização, como no exemplo abaixo:

011 - Os erros mais comuns de inicialização em sistemas Linux

2.1 – Utilizando o Live CD para modificar o /etc/fstab com o Fedora

O passo a passo abaixo foi feito com uma máquina com o Fedora instalado localmente. Propositalmente foi retirado o parâmetro com o tipo de sistemas de arquivo (ext4) na linha relacionada ao raiz (/) no arquivo /etc/fstab.

  • Efetue o boot via Live CD, preferencialmente com a mesma versão do sistema instalado localmente (no nosso exemplo, Fedora). Selecione “Start Fedora-Workstation-Live
012 - Os erros mais comuns de inicialização em sistemas Linux
  • Clique em “Try Fedora
013 - Os erros mais comuns de inicialização em sistemas Linux
  • Abra o terminal, vire usuário root com o comando su – e monte a partição raiz local em algum diretório temporário, como por exemplo /mnt. Utilizamos o comando mount <partição> /mnt
Terminal
su -
014 - Os erros mais comuns de inicialização em sistemas Linux
Neste exemplo, a partição raiz está em um LVM (/dev/mapper/fedora_localhost–live-root)
  • Corrigir o arquivo localizado em /mnt/etc/fstab e salve-o.
Terminal
sudo nano /mnt/etc/fstab
015 - Os erros mais comuns de inicialização em sistemas Linux
Repare que está faltando o parâmetro que define o tipo de sistema de arquivo.
016 - Os erros mais comuns de inicialização em sistemas Linux
Inserido o parâmetro ext4 na linha relacionada a partição raiz (/)
  • Por fim, reinicie a máquina. Não se esqueça de retirar o Live do Fedora.

3 – Erros de sistemas de arquivos

Em Linux existem vários sistemas de arquivos suportados, por exemplo EXT3, EXT4, XFS. Então quando uma partição apresenta algum tipo de erro, o próprio sistema operacional executa uma ferramenta de reparo desses sistemas de arquivos: o fsck (para tipos EXT3, EXT4) ou xfs_repair (para tipo XFS). Pode ocorrer que a partição corrompida é o raiz (/) e o fsck ou xfs_repair não é carregado. No próximo exemplo, utilizaremos o Linux Mint 19 instalado na máquina local com o sistema de arquivos EXT4.

3.1 Utilizando o Live DVD para corrigir erros com o fsck no Linux Mint

  • Em primeiro lugar, efetue o boot via Live DVD, preferencialmente com a mesma versão do sistema instalado localmente (neste exemplo, Linux Mint).
017 - Os erros mais comuns de inicialização em sistemas Linux
  • Abra o terminal e execute o comando sudo fsck -t <tipo da partição> -f <partição raiz local>. Para descobrir qual o tipo da partição utilizada, podemos obter esta informação com o comando sudo blkid <partição raiz local>. O comando fsck também pode ser utilizado com o tipo de sistema de arquivos. Exemplos: fsck.ext3, fsck.ext4.
Altere as informações de <partição raiz local> para a sua real!
Terminal
sudo blkid <partição raiz local>
sudo fsck -t <tipo de partição> -f <partição raiz local>
018 - Os erros mais comuns de inicialização em sistemas Linux
  • Por fim, reinicie a máquina. Não se esqueça de retirar o Live CD.

4 – Como corrigir “Kernel Panic”

O Kernel Panic é um dos erros mais temidos de qualquer usuário Linux. Eis que surge a tela abaixo.

019 - Os erros mais comuns de inicialização em sistemas Linux

Existem várias causas e possíveis soluções, entre elas:

4.1 Falha de hardware

Falhas de hardware podem influenciar diretamente no funcionamento do kernel. Verifique se todos os dispositivos, como por exemplo memória RAM, CPU e discos da sua máquina estão funcionando corretamente.

4.2 Kernel mal configurado

Atualmente é muito raro compilarmos um kernel no Linux. Mas caso a compilação não seja feita corretamente, poderá ocorrer o erro de Kernel Panic.

Outra questão está relacionada a qual versão do kernel em uso. Algumas versões não são estáveis e portanto podem apresentar problemas.

4.3 Problemas com drivers

A atualização de alguns drivers, como por exemplo driver de placa de vídeo, pode gerar problemas com o kernel. Verifique se todos os drivers necessários estão instalados na sua máquina e se eles são compatíveis com a versão do kernel utilizado.

4.4 Incapaz de localizar o sistema de arquivos raiz (/)

Alguns problemas podem ocorrer com o sistema de arquivos raiz (/). Às vezes pode ser necessário corrigir erros com o fsck ou xfs_repair (ver item 3.1), ou algum parâmetro está faltando no /etc/fstab (ver item 2). Também pode estar relacionado a erros físicos do disco.

4.5 Reinicialização forçada

Reiniciar a máquina de forma abrupta não é recomendável, mas pode acontecer devido a falta de energia elétrica ou congelamento da máquina. Normalmente essas situações geram problemas no sistema de arquivos ou incapacidade de localizar o sistema de arquivos raiz (ver item anterior).

4.6 SELinux mal configurado

Em distribuições da família Red Hat, como por exemplo Red Hat Enterprise Linux, Fedora e CentOS, a ferramenta SELinux vem habilitada por padrão em modo enforcing. Se quiser conhecer mais sobre o SELinux, temos este artigo que explica melhor o seu funcionamento. SELinux – Erros, avisos e resolução de problemas

É possível desativar o SELinux temporariamente até resolver este problema. Para isso, basta desabilitá-lo no arquivo /etc/sysconfig/selinux.

5 – GRUB rescue

Ao inicializar um sistema Linux, podemos cair diretamente em uma linha de comando como o abaixo:

Terminal
grub rescue >

Isso pode ser sinal de que o GRUB está corrompido ou perdeu a referência dos sistemas operacionais, ou kernels instalados na máquina. Para resolver este problema, reinstale o GRUB conforme o item 1.1 deste artigo. Para mais informações, leia mais na documentação oficial do GRUB.

Em conclusão, esperamos que este artigo auxilie os leitores a resolver os erros mais comuns de inicialização em sistemas Linux. Ficou faltando algum mais algum outro erro? Ainda tem dúvidas sobre o assunto? Participe do nosso grupo no Telegram e nas nossas redes sociais.