Cenários de Resolução de Problemas do Linux: Desafios e Soluções do Mundo Real

Linux é um sistema operacional poderoso e confiável, mas até usuários experientes enfrentam problemas inesperados. Seja um arquivo deletado, uma senha de root esquecida ou um sistema lento, saber como solucionar problemas de forma eficiente é essencial para se tornar um verdadeiro especialista em Linux.

Este guia apresenta cenários reais de resolução de problemas em Linux, junto com soluções passo a passo, comuns entre administradores de sistemas, desenvolvedores e usuários diários de Linux.

Cenário 1: Você Deletou Acidentalmente um Arquivo Importante

Você deletou acidentalmente um arquivo importante usando o comando rm, e agora precisa recuperá-lo. Ao contrário do Windows e do macOS, o Linux não possui uma “Lixeira” embutida para arquivos deletados pelo terminal.

As opções de recuperação dependem do sistema de arquivos em uso.

Para Sistemas de Arquivos EXT3/EXT4

Use o extundelete, que é uma ferramenta de código aberto projetada para recuperar arquivos deletados de sistemas de arquivos ext3 e ext4 no Linux.

sudo apt install extundelete  # Debian-based  
sudo yum install extundelete  # RHEL-based  

Antes de tentar a recuperação, desmonte a partição para evitar novas gravações que possam sobrescrever os dados deletados:

sudo umount /dev/sdX

Em seguida, execute o seguinte comando para recuperar o arquivo deletado e não se esqueça de substituir /dev/sdX pela partição real onde o arquivo foi deletado.

sudo extundelete /dev/sdX --restore-all

Para Sistemas de Arquivos XFS, Btrfs ou NTFS

Se o seu sistema usar XFS, Btrfs ou NTFS, a ferramenta testdisk é uma opção melhor.

sudo apt install testdisk  # Debian-based  
sudo yum install testdisk  # RHEL-based  

Execute testdisk e siga os prompts interativos para restaurar arquivos perdidos.

sudo testdisk

Dicas de Prevenção:

    • Use trash-cli: Em vez de rm, use trash-cli para enviar arquivos para uma lixeira recuperável.
sudo apt install trash-cli  
trash-put myfile.txt  
  • Ative backups regulares: Configure rsync ou Timeshift para fazer backup automaticamente de arquivos importantes.

Cenário 2: Recuperando uma Senha de Root Esquecida

Você esqueceu sua senha de root e não consegue realizar tarefas administrativas, o que significa que não pode instalar software, alterar configurações do sistema ou acessar arquivos críticos.

Você pode redefinir a senha de root inicializando no modo de recuperação ou modificando o carregador de inicialização GRUB.

Usando o Modo de Recuperação (Ubuntu/Debian)

Primeiro, reinicie seu sistema e mantenha a tecla Shift pressionada durante a inicialização para acessar o menu GRUB, em seguida selecione “Opções avançadas” → “Modo de recuperação” e escolha “Entrar no shell root“.

Aqui, remonte o sistema de arquivos raiz como gravável e redefina a senha de root.

mount -o remount,rw /
passwd root

Reinicie o sistema.

reboot

Usando rd.break (RHEL/CentOS/Fedora)

Primeiro, reinicie seu sistema, pressione e no menu GRUB e encontre a linha que começa com linux e adicione rd.break no final.

Em seguida, monte o sistema de arquivos raiz e redefina a senha de root.

mount -o remount,rw /sysroot  
chroot /sysroot  
passwd root  

Por fim, saia e reinicie.

exit  
reboot  

Dicas de Prevenção:

  • Crie um usuário sudo sem senha para evitar ficar bloqueado no acesso root.
  • Use chaves SSH em vez de senhas para autenticação.

Cenário 3: Você Instalou um Pacote, mas Não Está Funcionando

Você instalou um pacote, mas ao tentar executá-lo, aparece “comando não encontrado”, o que geralmente acontece quando o binário não está no PATH do sistema, o pacote não foi instalado corretamente ou há uma dependência faltando.

A solução é verificar primeiro se o pacote está instalado ou não.

dpkg -l | grep package-name  # Debian-based  
rpm -qa | grep package-name  # RHEL-based  

Se estiver faltando, reinstale-o:

sudo apt install package-name  
sudo yum install package-name  

Em seguida, verifique se o comando está no seu sistema PATH.

which package-name  
echo $PATH

Se o binário estiver em um local não padrão, adicione-o a PATH:

export PATH=$PATH:/usr/local/bin  

Dicas de Prevenção:

  • Reinicie o terminal ou execute hash -r após instalar novos pacotes.
  • Use gerenciadores de pacotes como Snap ou Flatpak, que gerenciam dependências melhor.

Cenário 4: Seu Sistema Está Faltando Espaço em Disco

Seu sistema exibe um erro “Sem espaço disponível no dispositivo”, impedindo atualizações de software, registro e operações normais.

Aqui está como recuperar espaço em disco e manter seu sistema funcionando sem problemas.

Passo 1: Verifique o Uso do Disco

A solução é, primeiro você precisa verificar quanto espaço está sendo utilizado em cada partição do seu sistema usando o comando df.

df -h

Passo 2: Encontre e Exclua Arquivos Grandes

Localize os maiores arquivos que consomem espaço executando du command, que irá escanear seu sistema e listar os 10 maiores arquivos ou diretórios. Exclua arquivos desnecessários usando rm ou mova-os para um disco externo.

du -ah / | sort -rh | head -10

Passo 3: Remover Logs Desnecessários

Os logs são essenciais para solucionar problemas e monitorar a atividade do sistema, mas podem crescer rapidamente e consumir uma quantidade significativa de espaço em disco.

Com o tempo, logs antigos podem não ser mais necessários, tornando-se candidatos ideais para limpeza.

sudo journalctl --vacuum-time=2d  # Deletes logs older than 2 days  
sudo apt autoclean                # Removes outdated package files  

Passo 4: Remover Kernels Antigos (Ubuntu/Debian)

Quando você atualiza seu sistema, especialmente em Ubuntu ou distribuições baseadas em Debian, novas versões do kernel Linux são frequentemente instaladas.

No entanto, os kernels antigos não são removidos automaticamente e, com o tempo, esses kernels antigos podem se acumular e ocupar uma quantidade significativa de espaço em disco.

Removê-los é uma maneira segura e eficaz de liberar espaço sem afetar a funcionalidade do seu sistema.

sudo apt autoremove --purge  

Dicas de Prevenção:

  • Configurar Rotação de Logs: Use logrotate para gerenciar automaticamente os tamanhos dos arquivos de log e os períodos de retenção.
  • Monitorar Uso de Disco: Instale ferramentas como ncdu para rastrear o uso do disco e identificar arquivos que ocupam muito espaço.
  • Limpezas Regulares: Programe limpezas periódicas para remover arquivos temporários, caches e pacotes não utilizados.

Cenário 5: Seu Servidor Está Subitamente Sem Resposta

Você está gerenciando um servidor Linux e, de repente, ele para de responder e você tenta se conectar via SSH, mas a conexão expira ou se recusa a se estabelecer. Você pode até notar que o servidor ainda está ligado, mas não reage a nenhum comando.

Essa situação pode ser causada por vários problemas, incluindo:

  • Alta utilização de CPU ou memória devido a processos descontrolados.
  • Gargalos de I/O de disco, onde o sistema está sobrecarregado com operações de leitura/escrita.
  • Pânicos do kernel ou falhas do sistema.
  • Falhas de rede, impedindo o acesso remoto.

Para restaurar o controle, siga estas etapas de solução de problemas.

Passo 1: Acesse o Servidor Localmente ou via TTY

Se o SSH não estiver funcionando, tente acessar o servidor diretamente ou através de uma sessão TTY:

  • No uma máquina física, use o console local.
  • Em uma máquina virtual, use o console do hypervisor.
  • Para sistemas Linux, mude para outra sessão TTY usando Ctrl + Alt + F2 (ou F3, F4, etc.).

Passo 2: Verifique a Carga do Sistema

Uma vez logado, verifique a carga e o uso de recursos do sistema, que mostrarão as médias de carga do sistema em 1, 5 e 15 minutos. Um valor de carga superior ao número de núcleos da CPU indica alta demanda.

uptime  

Em seguida, use top ou htop para monitorar processos em tempo real:

top  
Or
htop

Procure por processos que consomem CPU ou memória excessivamente.

Passo 3: Identifique e Mate Processos Indesejados

Para identificar os processos mais intensivos em recursos, execute:

ps aux --sort=-%cpu | head  

Isso lista os principais processos que consomem CPU, onde você pode encontrar um processo problemático e encerrá-lo usando:

kill -9 PID  

Substitua PID pelo ID do processo da aplicação problemática.

Passo 4: Verifique os Logs do Sistema

Se o sistema ainda estiver responsivo, verifique os logs em busca de erros:

sudo tail -f /var/log/syslog  
Or
sudo dmesg | tail  

Esses comandos exibem mensagens recentes do sistema e logs do kernel, que podem ajudar a identificar problemas de hardware ou software.

Passo 5: Reinicie com Segurança Usando SysRq

Se o sistema estiver completamente travado, use a combinação de teclas SysRq para reiniciar com segurança:

echo b > /proc/sysrq-trigger  

Isso provoca um reinício seguro, garantindo a integridade dos dados ao sincronizar discos e desmontar sistemas de arquivos.

Conclusão

O diagnóstico de problemas é uma habilidade essencial para todo usuário de Linux. Seja para recuperar arquivos deletados, redefinir senhas ou corrigir erros do sistema, conhecer os comandos corretos pode poupar tempo e frustração.

Você tem suas próprias dicas de diagnóstico de problemas? Compartilhe nos comentários! Vamos construir juntos uma comunidade Linux útil.

Source:
https://www.tecmint.com/linux-troubleshooting-tips/