“Não há espaço disponível no dispositivo”, df mostra discrepância

14

Algumas horas atrás, minha partição raiz foi preenchida, movi os arquivos para ela e os relatórios do df:

# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/hda1             183G  174G     0 100% /

Portanto, deve haver 9 GB gratuitos, mas os relatórios de disponibilidade 0 e Uso ainda estão em 100%.

Eu testei como root, por exemplo

# echo test >a ; cat a
test

funciona como esperado; No entanto, como usuário normal, ainda recebo o erro:

$ echo test >a ; cat a
bash: echo: write error: No space left on device

O diretório inicial raiz onde conduzi o teste positivo e meu diretório pessoal estão na mesma partição. A entrada fstab é:

/dev/hda1 / ext3 noatime,defaults,errors=remount-ro 0 1
    
por mark 09.10.2009 / 20:46

6 respostas

33

A maioria dos sistemas de arquivamento reserva uma certa porcentagem para o root, portanto, você ainda pode efetuar login como raiz e resolver problemas de espaço em disco. Geralmente isso é de 5%. 9GB é aproximadamente 5% de 183GB, então isso faria sentido. Você pode ver quanto é reservado usando o tune2fs:

# tune2fs -l /dev/sda1 | grep -i reserved
Reserved block count:     936488
Reserved GDT blocks:      1019
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)

Você pode modificá-lo usando

# tune2fs -m 3 /dev/sda1
tune2fs 1.41.9 (22-Aug-2009)
Setting reserved blocks percentage to 3% (561893 blocks)

Em unidades grandes e modernas, 5% é provavelmente um pouco excessivo, e você provavelmente deseja reduzi-lo. Você não quer colocá-lo em zero.

    
por 09.10.2009 / 21:01
5

im com bob, tente df -i, se você tiver um monte de crontabs de saída, por exemplo, seu diretório / var / spool / clientmqueue / pode ser preenchido

    
por 09.10.2009 / 21:44
3

Dê uma olhada no INODES também. Em uma instalação "baunilha", se você tiver muitos arquivos pequenos, eles podem consumir inodes, mas não espaço. Você verá que tem espaço disponível, mas, como seus inodes estão cheios, você não poderá usar esse espaço.

    
por 09.10.2009 / 21:04
2

"Por padrão, todo sistema de arquivos no Unix tem algum espaço reservado para o superusuário (root). Isso significa que nenhum usuário Unix regular pode preencher seu sistema de arquivos em até 100%, então sempre terá espaço livre suficiente para continuar função normal. "

De: link

    
por 09.10.2009 / 20:57
1

Outra coisa a verificar é ver se há algum arquivo aberto nesse sistema de arquivos (especialmente logs). A exclusão de arquivos não limpará o espaço no disco até que o arquivo seja realmente fechado.

    
por 13.10.2009 / 02:59
0

Eu apostaria $ 1 que Clyde tem a resposta. Um processo tem um arquivo aberto nesse dispositivo. No linux, o arquivo não é removido até que o processo que o mantém aberto seja liberado.

Eu começaria com: lsof | grep hda1

    
por 13.10.2009 / 06:16

Tags