As três principais maneiras de corrigir o erro “Sem espaço deixado no dispositivo” no Linux

As três principais maneiras de corrigir o erro “Sem espaço deixado no dispositivo” no Linux

Erros sem uma causa clara são os problemas mais irritantes para lidar. E enquanto o Linux geralmente é específico em suas mensagens de erro, esta é uma das poucas vezes em que solta a bola.

Obter um "nenhum lugar no erro no dispositivo" explica muito pouco, especialmente se sua unidade estiver longe de estar cheia. Por que esta mensagem de erro está aparecendo? Por que você não pode criar novos arquivos, apesar de ter espaço suficiente no disco? E o mais importante, como você conserta?

Índice

    Vamos descobrir.

    1. Não se preocupe com toda a permissão negado mensagens - é assim que ela se arrasta por todos os subdiretos do sistema. Dependendo do tamanho da unidade, você pode ter que deixá -lo correndo por um tempo, pois ele passa por tudo.
    1. Quando o DU termina a digitalização, ele produzirá uma lista simples de diretórios ao lado de seus tamanhos. Por exemplo, esta é a saída do comando DU aplicado a um diretório comum.

    Agora vamos usar o 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 a bandeira -h para tornar a saída humana legível.

    sudo df -h

    A idéia é contar os resultados dos comandos DU e DF. Qualquer ponto de discrepância para o espaço em disco que não esteja disponível gratuitamente, apesar de não ser usado por nenhum arquivo ou pastas.

    Por que o Linux mostra “nenhum espaço deixado no dispositivo”?

    Se você está vendo a mensagem de erro "Sem espaço deixada no dispositivo", apesar de ter espaço livre suficiente em seu disco, não é o hardware que está culpado. Descobrir a causa exata do erro pode levar um pouco de solução de problemas.

    • Arquivo excluído recentemente: o motivo mais comum para ver esse erro é um arquivo excluído recentemente. Freqüentemente, um arquivo é excluído enquanto um processo ainda o está usando, mantendo o espaço reservado, mesmo que o arquivo já tenha desaparecido.
    • Inodes insuficientes: outra causa frequente é não ter inodos suficientes. Inodes são as páginas de índice de um sistema de arquivos UNIX, mantendo os metadados de cada arquivo no armazenamento. No entanto, os inodos não são ilimitados e ficando sem inodos antes que o espaço de armazenamento possa dar a você o erro "sem espaço deixado no dispositivo".
    • Falha no disco rígido: então é claro que existe a possibilidade de que o disco rígido esteja simplesmente falhando, e grande parte do espaço livre aparente é absorvido por setores ruins. Como o sistema falha em escrever quaisquer arquivos para esses locais, ele lança um erro.

    Corrigir 1: reiniciar processos usando arquivos excluídos

    A causa mais provável do erro "Sem espaço deixado no dispositivo" é um processo ainda usando um arquivo excluído. Felizmente, consertar este erro é fácil. Você só precisa reiniciar o processo para liberar o armazenamento reservado.

    1. Para encontrar o processo problemático, você precisa usar os comandos LSOF e Grep. O comando LSOF fornecerá uma lista de todos os arquivos abertos que estão sendo usados ​​pelos processos de execução, e o Grep pode restringir a seleção para aqueles que são excluídos. Então, digite sudo lsof / | Grep excluído onde / é o diretório base e | um cano para vincular a saída do LSOF ao grep.
    1. Agora você pode reiniciar o processo afetado com o comando sudo systemctl reiniciar serviço_name, onde o nome do serviço é o nome do serviço que apareceu na pesquisa.
    1. Se houver vários processos como este ou você simplesmente não quiser se preocupar em encontrar serviços específicos, basta redefinir todos eles com o comando sudo systemctl daemon-reload. Isso regenera todas as dependências, levando em consideração quaisquer alterações no sistema de arquivos.

    Depois disso, o espaço de armazenamento que está sendo mantido pelo processo deve estar disponível novamente, permitindo que você escreva arquivos sem se deparar com nenhum erro.

    Correção 2: Verifique os inodos

    Enquanto cada unidade tem um grande número de inodos, é finito. E se o seu sistema estiver repleto de um número incrível de arquivos, é possível atingir esse limite antes de esgotar a capacidade de armazenamento da unidade. É por isso que é melhor ter arquivos grandes do que muitos pequenos.

    Você pode verificar facilmente a disponibilidade de inodos usando a bandeira -i com o comando df. Assim:

    sudo df -i

    Isso dirá claramente o número total de inodos presentes no sistema de arquivos, juntamente com a quantidade atualmente em uso. Se não houver inodos livres no seu sistema, esta é a fonte do erro "Sem espaço deixado no dispositivo".

    Como os inodos são criados apenas após a primeira formatação da unidade, não há como gerar mais inodos. Tudo o que você pode fazer é excluir quaisquer arquivos desnecessários para liberar inodos para futuros arquivos.

    Correção 3: Marque blocos ruins

    A corrupção de dados é o destino inevitável de qualquer disco rígido. Enquanto uma nova unidade não se deparar com esse problema, os discos duros mais antigos começarão gradualmente a ir "ruim".

    O que isso significa é que partes do disco rígido são inutilizáveis, mesmo que o sistema de arquivos ainda os considere funcionais. Esses blocos ruins inflam falsamente o aparente espaço livre na unidade, quando, na verdade, nenhum arquivo pode ser escrito para eles. Isso leva a um erro de "sem espaço deixado no dispositivo", enquanto o sistema operacional tenta e não armazena quaisquer dados nesses locais.

    Não existe uma maneira real de corrigir esse problema, pois os setores ruins são resultado do desgaste físico de um disco rígido. A única coisa que você pode fazer é marcar os setores ruins para que eles não sejam mais referenciados pelo sistema de arquivos.

    Fazer isso exige que você inicialize em um CD ao vivo, pois você não pode 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 o /dev /sda pelo caminho da unidade que você deseja reparar. Isso detectará automaticamente todos os blocos ruins na unidade e os marcará como inutilizável. No entanto, ele não fornecerá nenhuma capacidade de armazenamento extra, portanto, esteja preparado para limpar alguns arquivos inúteis para liberar espaço na unidade.

    Qual é a melhor maneira de corrigir o erro "Sem espaço restante no dispositivo"?

    A razão usual para ver um erro de “espaço sem espaço no dispositivo” no Ubuntu ou em qualquer outra distro Linux é um arquivo excluído ainda sendo usado por um processo de corrida. Isso reserva o armazenamento que foi ocupado pelo arquivo, impedindo que outras operações escrevam dados para esse 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, no entanto, não são tão fáceis de resolver.

    Se sua unidade é atormentada por blocos de dados ruins ou sem inodos, não há maneira direta de corrigir esses problemas. Você deve excluir arquivos existentes para abrir espaço para novos dados serem escritos.