Como resolver o erro “Sem espaço disponível no dispositivo” no Linux de forma eficaz



Encontrar a mensagem “Sem espaço disponível no dispositivo” pode ser extremamente frustrante, principalmente quando seu disco ainda parece bastante vazio. O Linux pode ser assim mesmo — às vezes, o problema não é a falta de espaço livre, mas sim algum outro problema oculto. Possíveis culpados incluem processos que ainda retêm arquivos excluídos, esgotamento de inodes ou até mesmo falha de hardware. Descobrir qual deles está causando o problema evita muita dor de cabeça. Veja como solucionar e corrigir o problema sem enlouquecer.

Como corrigir o erro “Sem espaço disponível no dispositivo” no Linux

Certifique-se de que realmente há espaço — verifique com du e df.

Este é o primeiro passo, porque o Linux às vezes mostra que não há espaço quando o disco não está realmente cheio. Execute estes comandos no seu terminal:

sudo du -sh /

Ele fornece um resumo rápido do uso total de disco do diretório raiz. A saída pode ser longa, mas concentre-se no total exibido no topo. Depois disso, verifique o espaço livre em seus pontos de montagem com:

sudo df -h

Isso mostra quanto espaço está disponível nos sistemas de arquivos montados. Comparar esses resultados ajuda a confirmar se você realmente está sem espaço ou se outro fator está causando o erro.Às vezes, um processo exclui um arquivo grande, mas não liberou o espaço porque ele ainda está aberto por outro processo — por isso, o Linux mostra espaço cheio mesmo quando há espaço disponível.

Solução 1: Encerre os processos que estejam mantendo arquivos excluídos em execução.

Este é um problema comum.Às vezes, um processo está bloqueando um arquivo que foi excluído, e o Linux não consegue liberar o espaço porque tecnicamente ele ainda está “em uso”.Faça o seguinte:

sudo lsof / | grep deleted

Isso listará os processos que ainda mantêm arquivos excluídos abertos. Não sei exatamente por que funciona, mas em algumas máquinas, esse comando ajuda a identificar o processo problemático. Para liberar esse espaço, reinicie o processo.

sudo systemctl restart your-service-name

Se você não souber qual serviço usar, ou se houver vários, você pode recarregar todas as dependências do sistema com:

sudo systemctl daemon-reload

Observação: após reiniciar ou recarregar, o espaço em disco ocupado por esses processos deverá ser liberado. Normalmente, isso resolve o problema rapidamente. No entanto, em algumas configurações, pode ser necessário reiniciar o sistema para observar o efeito completo, principalmente se muitos serviços estiverem envolvidos.

Solução 2: Verifique se você ficou sem inodes.

Essa é uma causa um tanto menos óbvia. Os inodes são como pequenos contêineres de metadados para cada arquivo. Se você tiver muitos arquivos pequenos, poderá atingir o limite de inodes antes que o disco esteja cheio. Para verificar, execute:

sudo df -i

Este comando mostra o total de inodes, usados ​​e livres. Se o seu sistema tiver 0 inodes livres, esse é o problema. Excluir arquivos pequenos desnecessários ou limpar caches pode ajudar a liberar inodes. Ao contrário do espaço em disco, você não pode gerar mais inodes — eles são definidos ao formatar a unidade.

Solução 3: Marque os setores defeituosos na unidade.

O desgaste do hardware pode levar à formação de setores defeituosos — áreas do disco que estão fisicamente danificadas. Elas podem até aparecer como espaço livre, mas nenhum dado pode ser lido ou gravado nelas. Para resolver isso, você precisa inicializar o sistema a partir de um ambiente live e executar uma verificação do sistema de arquivos:

sudo fsck -vcck /dev/sda

Substitua /dev/sdapelo caminho real do seu dispositivo. Este comando verifica a existência de setores defeituosos e os marca como inutilizáveis, ajudando a prevenir erros na gravação de dados. Lembre-se, isso não liberará espaço magicamente; apenas torna o sistema de arquivos mais seguro contra corrupção. Uma limpeza e talvez a substituição de hardware podem ser necessárias se os setores defeituosos continuarem aparecendo.

Outras dicas que vale a pena experimentar

  • Limpe os arquivos de log ou pastas de cache que possam ter ficado muito grandes. Pense em /var/log ou /tmp.
  • Reavalie sua rotina de limpeza de disco — às vezes, kernels antigos ou snapshots de dispositivos consomem gigabytes.
  • Se você estiver usando volumes específicos, verifique as respectivas quotas — talvez o limite esteja definido abaixo do esperado.

Descobrir qual bug está causando o erro “Sem espaço disponível” pode exigir algumas tentativas. Mas, na maioria das vezes, processos que retêm arquivos excluídos ou o esgotamento de inodes são os principais suspeitos. Lembre-se, porém, que problemas de hardware são uma questão completamente diferente e podem exigir diagnósticos ou até mesmo a substituição do hardware.

Resumo

  • Execute os comandos sudo du -sh / e sudo df -h para confirmar problemas de espaço.
  • Use o comando `sudo lsof / | grep deleted` para identificar os processos que estão bloqueando arquivos excluídos.
  • Reinicie os serviços ou processos problemáticos para liberar espaço.
  • Verifique a disponibilidade do inode com sudo df -i. Exclua arquivos pequenos, se necessário.
  • Execute uma verificação do sistema de arquivos com o comando sudo fsck -vcck /dev/sda se houver suspeita de setores defeituosos.

Resumo

Na maioria das vezes, esse problema se resume a processos persistentes ou limites de inode. Depois de resolvidos, o espaço em disco deve voltar a funcionar normalmente.Às vezes, é preciso investigar um pouco e ter paciência, mas essas etapas abrangem a maioria dos casos. Esperamos que isso economize algumas horas de frustração para alguém.



Este artigo foi útil?