Erros sem causa clara são os problemas mais irritantes de se lidar. E embora o Linux geralmente seja específico em suas mensagens de erro, esta é uma das poucas vezes em que ele deixa a bola cair.
Receber um erro “Não resta lugar no dispositivo” explica muito pouco, especialmente se a sua unidade estiver longe de estar cheia. Por que esta mensagem de erro está aparecendo? Por que você não consegue criar novos arquivos apesar de ter espaço suficiente no disco? E o mais importante, como você corrige isso?
Vamos descobrir.
Seu disco rígido realmente tem espaço suficiente?
Antes de se apressar para encontrar uma solução, primeiro verifique se há um problema. Afinal, se o espaço em disco do seu sistema realmente acabar, não há necessidade de entrar em pânico. Você pode simplesmente remover dados desnecessários para liberar mais espaço.
Existem dois comandos do sistema Linux para obter informações sobre o espaço em disco – du e df. O comando du estima o uso do espaço em disco, enquanto o comando df analisa o espaço livre presente no disco. Usá-los em conjunto com sudo fornece um relatório preciso de quanto espaço está realmente disponível no disco.
Agora usaremos df para ver quanto espaço livre está disponível. O comando df é muito mais simples de usar, pois mostra apenas os sistemas de arquivos montados e suas estatísticas de uso. Mais uma vez, usaremos o sinalizador -h para tornar a saída legível por humanos.
sudo df -h .
A ideia é contabilizar os resultados dos comandos du e df. Qualquer discrepância indica que o espaço em disco não está disponível gratuitamente, apesar de não ser usado por nenhum arquivo ou pasta.
Por que o Linux mostra “Não resta espaço no dispositivo”?
Se você estiver vendo a mensagem de erro “Sem espaço restante no dispositivo”, apesar de ter espaço livre suficiente no disco, a culpa não é do hardware. Descobrir a causa exata do erro pode exigir um pouco de solução de problemas.
Correção 1: reiniciar processos usando arquivos excluídos
A causa mais provável do erro “Sem espaço no dispositivo” é um processo que ainda usa um arquivo excluído. Felizmente, corrigir esse erro é fácil. Você só precisa de reinicie o processo para liberar o armazenamento reservado.
Depois disso, o espaço de armazenamento ocupado pelo processo deverá estar disponível novamente, permitindo que você grave arquivos sem erros.
Correção 2: verifique os inodes
Embora cada unidade tenha um grande número de inodes, ele é finito. E se o seu sistema estiver repleto de uma quantidade incrível de arquivos, é possível atingir esse limite antes de esgotar a capacidade de armazenamento do drive. É por isso que é melhor ter arquivos grandes em vez de muitos arquivos pequenos.
Você pode verificar facilmente a disponibilidade de inodes usando o sinalizador -i com o comando df. Assim:
sudo df -i
Isso informará claramente o número total de inodes presentes no sistema de arquivos, juntamente com a quantidade atualmente em uso. Se não houver mais inodes livres em seu sistema, esta é a origem do erro “Não há espaço restante no dispositivo”.
Como os inodes só são criados após a primeira formatação da unidade, não há como gerar mais inodes. Tudo o que você pode fazer é excluir todos os arquivos desnecessários para liberar inodes para arquivos futuros.
Correção 3: marcar blocos defeituosos
A corrupção de dados é o destino inevitável de qualquer disco rígido. Embora uma nova unidade não apresente esse problema, os discos rígidos mais antigos começarão gradualmente a ficar “ruins”.
O que isso significa é que partes do disco rígido ficam inutilizáveis, mesmo que o sistema de arquivos ainda as considere funcionais. Esses blocos defeituosos aumentam falsamente o aparente espaço livre na unidade, quando na verdade nenhum arquivo pode ser gravado neles. Isso leva ao erro “Não resta espaço no dispositivo”, pois o sistema operacional tenta e não consegue armazenar dados nesses locais.
Não existe uma maneira real de corrigir esse problema, pois setores defeituosos são resultado do desgaste físico de um disco rígido. A única coisa que você pode fazer é marcar os setores defeituosos para que não sejam mais referenciados pelo sistema de arquivos..
Para fazer isso, você precisa inicializar a partir de um CD ao vivo, pois não é possível executar uma verificação do sistema de arquivos em uma unidade em execução. Depois de fazer isso, basta usar o seguinte comando:
sudo fsck -vcck /dev/sda
Isso substitui /dev/sda pelo caminho da unidade que você deseja reparar. Isso detectará automaticamente todos os blocos defeituosos na unidade e os marcará como inutilizáveis. No entanto, isso não lhe dará nenhuma capacidade de armazenamento extra, então esteja preparado para limpar alguns arquivos inúteis para liberar espaço na unidade.
Qual é a melhor maneira de corrigir o erro “Não resta espaço no dispositivo”?
O motivo comum para ver um erro “Sem espaço no dispositivo” no Ubuntu ou em qualquer outra distribuição Linux é um arquivo excluído que ainda está sendo usado por um processo em execução. Isso reserva o armazenamento que estava ocupado pelo arquivo, evitando que outras operações gravem dados nesse espaço.
Corrigir esse problema também é o mais fácil, pois tudo o que você precisa fazer é reiniciar o processo em questão. As outras causas do erro, entretanto, não são tão fáceis de resolver.
Se sua unidade está infestada de blocos de dados defeituosos ou sem inodes, não há uma maneira direta de corrigir esses problemas. Você deve excluir os arquivos existentes para liberar espaço para a gravação de novos dados.
.