A execução do comando reporta o infinito como uso de disco

6

Estou tentando obter o tamanho total do que está armazenado no meu diretório pessoal. Para minha surpresa, ele relata o infinito depois de alguns segundos:

/home/user $ du -sh .
Infinity

Huh? Tenho certeza que não existem links simbólicos recursivos, mas du não deve seguir os links simbólicos de qualquer maneira por padrão. Também testei du -shx . para que não ultrapasse os limites dos dispositivos - com o mesmo resultado.

Tenho certeza de que não tenho espaço em disco ou uso de disco infinitos. ; -)

O sistema de arquivos de destino é um subvolume btrfs sem snapshots. rsync sincroniza este diretório para um disco externo bem todas as noites, não tem problema com esse "infinito". No entanto, du informa o mesmo lá.

Respostas aos comentários:

Não há pontos de montagem no meu diretório pessoal:

$ mount|grep home
/dev/sda3 on /home type btrfs (rw,relatime,compress=lzo,space_cache,autodefrag)

Usar o caminho completo em vez de . como parâmetro mostra o mesmo comportamento.

Não há arquivos maiores que 200 GB:

$ sudo find -size +$((200*1024*1024)) | wc -l
0
    
por hurikhan77 05.01.2014 / 13:15

1 resposta

3

Encontrei este relatório de erros onde um usuário teve o mesmo problema em um sistema btrfs. Descobriu-se que o problema vinha de um arquivo .xml específico cujo tamanho foi incorretamente relatado como 16 exabytes.

No caso da pessoa que registrou o bug, o problema era uma corrupção do sistema de arquivos e o problema foi resolvido movendo todos os arquivos para /tmp (que era um tmpfs), excluindo os originais e copiando-os novamente:

mkdir /tmp/foo &&
cp -rv ~/* /tmp/foo &&
rm -r ~/* &&
mv /tmp/foo/* ~/
    
por 05.01.2014 / 13:30