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).
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.
sudo mount /dev/sda6 /mnt
ls /mnt
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.
sudo mount /dev/sda1 /mnt/boot
ls /mnt/boot
- Agora precisamos montar os dispositivos físicos carregados pelo Live CD na raiz do nosso sistema local com os comandos a seguir.
sudo mount --bind /dev /mnt/dev
sudo mount --bind /sys /mnt/sys
sudo mount -t proc /proc /mnt/proc
- 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.
sudo chroot /mnt
- Reinstalaremos o GRUB com o comando grub-install /dev/sda ele pode ser executado com o sudo ou direto como root:
sudo grub-install /dev/sda
- Vamos atualizar a lista de kernels e sistemas operacionais disponíveis com o comando grub-mkconfig -o /boot/grub/grub.cfg:
sudo grub-mkconfig -o /boot/grub/grub.cfg
- 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.
exit
- Finalmente teremos o nosso GRUB reinstalado e com todas as entradas de kernel e sistemas operacionais disponíveis para uso.
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:
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“
- Clique em “Try Fedora“
- 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
su -
- Corrigir o arquivo localizado em /mnt/etc/fstab e salve-o.
sudo nano /mnt/etc/fstab
- 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).
- 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.
sudo blkid <partição raiz local>
sudo fsck -t <tipo de partição> -f <partição raiz local>
- 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.
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:
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.