Por que o truncamento falha para tamanhos acima de 2043G no ext3?

2

Por que isso funciona:

truncate -s 2043G foo

... enquanto isso falha:

truncate -s 2044G foo

Por que 2043 gigabytes, de todos os valores?

    
por badp 09.11.2010 / 15:19

2 respostas

1

Você provavelmente está usando um sistema de arquivos com um tamanho máximo de arquivo de 2TB (por exemplo, ext3 com um tamanho de bloco de 4KB ou 8KB). truncate não permite especificar um tamanho de arquivo de destino maior que o máximo suportado pelo sistema de arquivos; 2044GB está muito perto de 2TB. Eu não tenho certeza porque não é exatamente 2048GB que causa o problema; provavelmente é algo interno ao método de armazenamento de arquivos do ext3

    
por 09.11.2010 / 16:49
3

Essa é uma limitação do sistema de arquivos que você usa. Aqui, o ZFS cria um arquivo esparso de 7 Exabytes:

$ truncate -s 7E foo
$ ls -l foo
-rw-r--r--   1 jlliagre 8070450532247928832 Nov  9 16:49 foo
    
por 09.11.2010 / 16:52