Confusão no uso do disco: 10G ausentes na partição inicial do Linux no SSD

15

O Linux Mint me diz que eu tenho apenas 622 MB de espaço livre em disco, mas deve haver alguns gigabytes restantes.

Olhando para as partições, disseram-me que existem cerca de dez gigabytes não utilizados. Pesquisei o problema no Google e não encontrei uma solução, mas encontrei a dica de que deveria verificar o uso do disco df -h.

sudo df -h /home
Filesystem      Size  Used Avail Use% Mounted on
/dev/nvme0n1p8  189G  178G  622M 100% /home

A saída não faz nenhum sentido para mim: a diferença entre Sizee Usedé de 11 GB, mas só aparece 622Mcomo Disponível.

O SSD não é antigo, então eu não esperaria tal discrepância.

O que devo fazer?

tobiornottobi
fonte
3
como comentou @Kusalananda, você não deve apenas questionar por que não recebe esses 10 GB (que espero ter abordado corretamente na minha resposta), mas também por que você está usando a maior parte do espaço em / home. Se você sabe por que (por exemplo, armazena muitos arquivos de mídia etc.), tudo bem; se não, deve se preocupar com isso, com a limpeza em potencial devolvendo mais de 10 GB de economia de espaço. Então, o que seria?
AB
“Observando as partições, disseram-me que existem cerca de dez gigabytes não utilizados.” - onde você foi informado?
CTRL-ALT-DELOR
2
@ ctrl-alt-Delor a partir dfde saída - Tamanho: 189g, Usado: 178g
billyjmc
@ ctrl-alt delor, obtive a figura 10GB do gparted - e mais tarde 11G da saída do df, como billyjmc inferiu corretamente.
tobiornottobi
4
Possível duplicata do ext4: Como contabilizar o espaço do sistema de arquivos?
Robert Riedl

Respostas:

22

Se o sistema de arquivos for ext4, existem blocos reservados, principalmente para ajudar no manuseio e evitar fragmentação e disponíveis apenas para o usuário root. Para essa configuração, ela pode ser alterada ao vivo usando tune2fs (nem todas as configurações podem ser tratadas assim quando o sistema de arquivos está montado):

-m porcentagem de blocos reservados

Defina a porcentagem do sistema de arquivos que pode ser alocada apenas por processos privilegiados. A reserva de algum número de blocos do sistema de arquivos para uso por processos privilegiados é feita para evitar a fragmentação do sistema de arquivos e permitir que os daemons do sistema, como o syslogd (8), continuem funcionando corretamente depois que processos não privilegiados são impedidos de gravar no sistema de arquivos. Normalmente, a porcentagem padrão de blocos reservados é de 5%.

Portanto, se você deseja reduzir a reserva para 1% (~ 2 GB), obtendo acesso a ~ 8 GB sem espaço reservado, faça o seguinte:

sudo tune2fs -m 1 /dev/nvme0n1p8

Nota: a -mopção realmente aceita um número decimal como parâmetro. Você pode usar -m 0.1para reservar apenas cerca de ~ 200 MB (e acessar a maioria dos 10 GB anteriormente indisponíveis). Você também pode usar a -ropção para reservar diretamente em blocos. Provavelmente não é aconselhável ter 0 blocos reservados.

AB
fonte
3
O usuário não está "voltando" a 8 GB. Eles estão recebendo 8 GB a mais para gastar. Seria melhor rastrear o que está consumindo todo o espaço em disco e, em seguida, fazer uma limpeza, se apropriado, ou movê-lo para outro lugar ou aumentar a partição.
Kusalananda
1
@Kusalananda Vou mudar o vocabulário. Quanto ao uso, eu precisaria do feedback do OP. A pergunta nunca sugeriu que havia alto uso desconhecido, faltando apenas 10 GB.
AB
1
Uma resposta muito boa e útil, obrigado. 5% parece corresponder aos 10 gigabytes ausentes com muita clareza. Não estou preocupado em usar tanto espaço em disco em geral e ainda posso aumentar minha partição. :)
tobiornottobi
4
Sua resposta certamente está correta, mas pode ser interessante notar que o valor do espaço reservado à raiz nesse caso não é enorme. Isso é /home, e reservar espaço para o root não é tão importante quanto para outras partes do sistema de arquivos (por exemplo, para garantir que os logs do sistema ainda possam ser gravados). Além disso, como se trata de um SSD, impedir a fragmentação pode não ter a prioridade que ele tem nos discos de metal giratório.
marcelm
@marcelm Isso faz sentido para mim. Mas ainda é útil em uma partição / home em um SSD ou é apenas um desperdício de espaço? Você recomendaria reduzir o espaço reservado para 1%?
Tobiornottobi 01/07/19
8

Arquivos excluídos também podem contribuir para "falta de espaço"

lsof | grep deleted | grep /home

retorna essa saída para mim

chrome    11181           criggie   15u      REG              254,0   
4194304  50651663 /home/criggie/.config/google-chrome/BrowserMetrics/BrowserMetrics-5D0236AF-2BAD.pma (deleted)

O que mostra que o Chrome em execução como PID 11181 abriu o arquivo BrowserMetrics e o excluiu e ainda mantém o arquivo aberto. Isso significa que o arquivo está invisível em uma lista de diretórios, mas ainda está ocupando espaço em disco.

Por que os programas fazem isso? Quando o binário em execução termina, o sistema operacional libera o identificador de arquivo aberto e o arquivo em disco desaparece, sem o risco de deixar um arquivo temporário obsoleto.

O que não consigo ver é o tamanho do uso do disco desse arquivo.

Criggie
fonte
2
A maioria dos programas bem escritos não deve fazer isso. É um bug, e deve ser relatado, é que a maioria desses erros obscuros não aparece realmente até que você esteja em uma fase de otimização e, se é um problema, pode até não ser realmente detectado durante o teste. Observe que pode haver uma razão específica pela qual eles estão fazendo isso; pode haver uma justificativa que eu não conheço aqui para manter o identificador aberto por tanto tempo.
Drunken Code Monkey
4
@DrunkenCodeMonkey Cara - seu Chrome ... você está totalmente correto.
Criggie
4
@DrunkenCodeMonkey, muitos programas bem escritos fazem isso. O padrão abrir-excluir-fechar para criar arquivos temporários no * nix é quase universal, porque garante que o arquivo será excluído quando o programa sair, independentemente de como ele sai: encerramento normal, travamento, morte por falta de memória, morte por falta de energia, etc.
Mark
3
@DrunkenCodeMonkey então, e se o programa nunca terminar com isso?
precisa saber é o seguinte
3
@DrunkenCodeMonkey: o padrão é abrir-excluir- trabalhar- fechar. Se o programa ainda estiver fazendo algo com o conteúdo do arquivo temporário (por exemplo, usando-o como um cache em disco ou registrando dados de telemetria nele), é claro que deve mantê-lo aberto. (É claro, também é possível que esse seja realmente um identificador de arquivo não fechado que o programa deveria ter fechado, mas não fechou. Mas, como existe apenas um desses arquivos e não há outras indicações óbvias de vazamento de recursos, gostaria de começar com a suposição de que o arquivo provavelmente está sendo mantido aberto de propósito).
Ilmari Karonen