Risposte:
Il metodo di riempimento zero (qui modificato per evitare potenziali colli di bottiglia della memoria ) ha impiegato 17 secondi per creare un file da 10 GB su un SSD e ha reso l'interfaccia di Ubuntu non rispondente.
$ time sh -c 'dd if=/dev/zero iflag=count_bytes count=10G bs=1M of=large; sync'
10240+0 records in
10240+0 records out
10737418240 bytes (11 GB, 10 GiB) copied, 17.2003 s, 624 MB/s
real 0m17.642s
user 0m0.008s
sys 0m9.404s
$ du -B 1 --apparent-size large
10737418240 large
$ du -B 1 large
10737422336 large
fallocate crea file di grandi dimensioni istantaneamente manipolando direttamente lo spazio su disco allocato del file:
$ time sh -c 'fallocate -l 10G large; sync'
real 0m0.038s
user 0m0.000s
sys 0m0.016s
$ du -B 1 --apparent-size large
10737418240 large
$ du -B 1 large
10737422336 large
truncate funziona anche all'istante e crea file sparsi che non consumano spazio su disco effettivo fino a quando i dati non vengono scritti in seguito:
$ time sh -c 'truncate -s 10G large; sync'
real 0m0.014s
user 0m0.000s
sys 0m0.004s
$ du -B 1 --apparent-size large
10737418240 large
$ du -B 1 large
0 large
Un modo semplice sarebbe usare il dd
comando per scrivere un file pieno di zeri.
dd if=/dev/zero of=outputFile bs=2G count=1
Usa G nell'argomento size se vuoi gigabyte di computer (1024 * 1024 * 1024) o GB se vuoi gigabyte umani (1000 * 1000 * 1000).
/dev/urandom
in quel caso (non è bloccante, ma non è garantito che abbia lo stesso livello di casualità). L'estrazione di 2 GB da uno dei due esaurirà quasi sicuramente l'entropia del tuo sistema, quindi non fare nulla di crittografico per un po 'di tempo dopo.
ftp://ftp.fsf.hu/testfiles/maketestfiles.sh
oppure Cerca è la dimensione del file desiderato in byte - 1.
dd if=/dev/zero of=filename.big bs=1 count=1 seek=1048575 # 1 MByte
dd if=/dev/zero of=filename.big bs=1 count=1 seek=10485759 # 10 MByte
dd if=/dev/zero of=filename.big bs=1 count=1 seek=104857599 # 100 MByte
dd if=/dev/zero of=filename.big bs=1 count=1 seek=1073741823 # 1024 MByte
dd if=/dev/zero of=filename.big bs=1 count=1 seek=42949672959 # 40960 MByte
dd ... bs=2G count=1
legge 2 GB in memoria (in unaread(2)
chiamata). Se hai la pressione della memoria non è probabilmente la strada da percorrere. Più blocchi più piccoli possono essere più veloci se ciò significa meno paginazione.