A exclusão de arquivos não libera espaço

6

Eu tenho um disco formatado como ext3, que foi preenchido completamente. Eu estou tentando liberar algum espaço, excluindo arquivos, mas não está funcionando. Eu posso rm os arquivos, e eles não aparecem na listagem do diretório, mas eu não tenho espaço livre disponível.

Abaixo está uma cópia da tentativa de excluir alguns arquivos. Como você pode ver no ls -la , os arquivos não são vinculados a outro local e a exclusão parece ter êxito. Na saída df , o número de blocos usados diminuiu em 182556, que é o espaço ocupado pelos arquivos, mas a contagem disponível permaneceu em zero. O fsck não detectou nenhum problema com o sistema de arquivos e não alterou o espaço livre.

Estou usando o CentOS 6 agora mesmo para tentar excluir os arquivos, mas a maioria dos arquivos foi escrita usando uma distribuição Debian (não sei bem qual versão, qualquer que seja Clonezilla usa).

# ls -la
total 182564
drwxr-xr-x. 2 root root      4096 Mar  4  2011 .
drwxr-xr-x. 5 root root      4096 Aug 13 13:18 ..
-rw-------. 1 root root   4030114 Mar  4  2011 sda1.vfat-ptcl-img.gz.aa
-rw-------. 1 root root 182667379 Mar  4  2011 sda2.ntfs-ptcl-img.gz.aa
-rw-r--r--. 1 root root        37 Mar  4  2011 sda-chs.sf
-rw-r--r--. 1 root root     31744 Mar  4  2011 sda-hidden-data-after-mbr
-rw-r--r--. 1 root root       512 Mar  4  2011 sda-mbr
-rw-r--r--. 1 root root       375 Mar  4  2011 sda-pt.parted
-rw-r--r--. 1 root root       259 Mar  4  2011 sda-pt.sf

# df .
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sdb2            484009516 473901232         0 100% /media/Images

# rm -f *

# ls -la
total 8
drwxr-xr-x. 2 root root 4096 Aug 13 15:05 .
drwxr-xr-x. 5 root root 4096 Aug 13 13:18 ..

# df .
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sdb2            484009516 473718676         0 100% /media/Images

# cd /media ; umount Images

# e2fsck -fv /dev/sdb2
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information

     589 inodes used (0.00%)
      37 non-contiguous files (6.3%)
       0 non-contiguous directories (0.0%)
         # of inodes with ind/dind/tind blocks: 278/256/0
119390761 blocks used (97.89%)
       0 bad blocks
       5 large files

     551 regular files
      29 directories
       0 character device files
       0 block device files
       0 fifos
       0 links
       0 symbolic links (0 fast symbolic links)
       0 sockets
--------
     580 files

# mount /dev/sdb2 Images

# df Images
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sdb2            484009516 473718676         0 100% /media/Images
    
por David Yaw 13.08.2012 / 21:43

1 resposta

2

A família ext3 e ext4 dos sistemas de arquivos reservam uma parte do disco para evitar que ele se torne verdadeiramente "100% cheio", por razões de estabilidade, e para que o FS possa armazenar metadados em algum desse espaço.

Você pode ajustar diretamente quanto do espaço é reservado:

tune2fs -m 1 /dev/sdXX

substituindo "1" pela porcentagem (0 a 100) do disco a ser reservado, e "XX" pelo nó do dispositivo e pelo número da partição do nó do dispositivo, então, no seu caso, "XX" seria "b2".

Analogia: você tem um ônibus completo, e o único lugar restante fica ao lado de uma pessoa muito grande que ocupa um assento e meio sozinho. Uma pessoa que é muito insistente em conseguir um lugar caminha e exige sentar-se lá. Embora a maioria das pessoas considere o segundo lugar ocupado, essa pessoa é insistente. Então a pessoa grande diz: "Whoa, ok!" e esmaga para permitir que eles se sentem. Mas assim que uma pessoa desce do ônibus e abre outro assento, mesmo que o passageiro próximo à pessoa grande se mude para um assento, a maioria das pessoas ainda considera o ônibus 100% cheio, porque ninguém quer se sentar ao lado do ônibus. pessoa grande.

Fonte

Você também pode verificar isso para ver a contagem de blocos reservados…

dumpe2fs -h /dev/sdb2

Para citar o usuário muito inteligente que pregou o problema na fonte acima:

You will see "Available" go positive when "Used" is reduced to below 0.95*136236548 blocks = 129424720 blocks roughly.

(temos que ajustar o "0.95" para o% reservado no seu caso específico, e os 136236548 bloqueiam para o tamanho total do bloco do seu dispositivo).

    
por 13.08.2012 / 22:50

Tags