fallocate failed: Operação não suportada

8

Ao correr,

fallocate -l 10G /path/to/file

Estou retornando o seguinte erro:

fallocate: file: fallocate failed: Operation not supported

A criação do arquivo usando dd (if = / dev / zero ou if = / dev / urandom) funciona, mas se eu estiver tentando criar arquivos grandes, dezenas de GBs em tamanho, levará várias horas para ser concluído. / p>

Executando o Ubuntu 14.04. Usando uma partição ext4, a especificação de um tipo de arquivo não parece alterar o resultado.

Trabalhando bem nas minhas máquinas CentOS6, não apenas no Ubuntu.

    
por John J Johnson 19.12.2014 / 08:03

2 respostas

9

Se houver arquivos esparsos ok (por exemplo, se você quiser criar uma imagem para preenchê-la com um sistema de arquivos), eles serão criados rapidamente

100 GB demora 3 milissegundos:

# time dd if=/dev/zero of=tmptst.dat bs=1G seek=100 count=0
0+0 records in
0+0 records out
0 bytes (0 B) copied, 0,00037726 s, 0,0 kB/s

real    0m0.003s
user    0m0.000s
sys 0m0.002s

O arquivo resultante:

# ls -lh tmptst.dat
-rw-r--r-- 1 root root 100G 2015-01-22 16:39 tmptst.dat

Seu tamanho real no momento: 0 Bytes

# ls -lsh tmptst.dat
0 -rw-r--r-- 1 root root 100G 2015-01-22 16:39 tmptst.dat
    
por murxo 22.01.2015 / 16:52
3

Se você não se importa com o conteúdo, mas precisa apenas de alguns dados,

Primeiro,

dd if=/dev/urandom of=tmp.txt bs=1M count=1

Isso criará

-rw-r--r-- 1 root root 1.0M Oct 17 00:30 tmp1.txt.

Então, se você gosta de criar um arquivo de 10M, use o arquivo gerado acima para acrescentar repetidamente,

for i in {1..10}; do dd if=tmp.txt of=tmp1.txt bs=1M oflag=append conv=notrunc; done;
    
por user1234 17.10.2016 / 02:42