Criar um arquivo de 1GB não altera o espaço livre no disco rígido

6

Estou tentando criar um arquivo vazio com base no espaço restante no disco rígido. O problema é que, quando eu crio um arquivo de 1 GB, o comando df mostra que o espaço restante é apenas 12 kb menor do que era antes da criação do arquivo.

someone@here:/tmp/delete# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             36827144   5031592  29924788  15% /
tmpfs                   508508         0    508508   0% /lib/init/rw
varrun                  508508       156    508352   1% /var/run
varlock                 508508         4    508504   1% /var/lock
udev                    508508       140    508368   1% /dev
tmpfs                   508508      1108    507400   1% /dev/shm

someone@here:/tmp/delete# dd if=/dev/zero of=tempFile bs=1000 count=1 seek=1000000
1+0 records in
1+0 records out
1000 bytes (1.0 kB) copied, 0.000438915 s, 2.3 MB/s

someone@here:/tmp/delete# df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1             36827144   5031604  29924776  15% /
tmpfs                   508508         0    508508   0% /lib/init/rw
varrun                  508508       156    508352   1% /var/run
varlock                 508508         4    508504   1% /var/lock
udev                    508508       140    508368   1% /dev
tmpfs                   508508      1108    507400   1% /dev/shm

Alguém sabe por que o comando df não conta para o 1GB completo? Obrigado.

    
por juan2raid 02.02.2011 / 02:14

2 respostas

13

Você o criou em um sistema de arquivos que suporta arquivos esparsos , de modo que ele ocupa apenas 1000 bytes, assim como a saída de dd diz. Omit seek e use um count adequado.

    
por 02.02.2011 / 02:20
3

De info coreutils du (grifo meu):

'--apparent-size'
Print apparent sizes, rather than disk usage. The apparent size of a file is the number of bytes reported by 'wc -c' on regular files, or more generally, 'ls -l --block-size=1' or 'stat --format=%s'. For example, a file containing the word 'zoo' with no newline would, of course, have an apparent size of 3. Such a small file may require anywhere from 0 to 16 KiB or more of disk space, depending on the type and configuration of the file system on which the file resides. However, a sparse file created with this command:

dd bs=1 seek=2GiB if=/dev/null of=big

has an apparent size of 2 GiB, yet on most modern systems, it actually uses almost no disk space.

    
por 02.02.2011 / 03:12

Tags