Respuestas:
El método de relleno cero (modificado aquí para evitar posibles cuellos de botella en la memoria ) tardó 17 segundos en crear un archivo de 10 GB en un SSD y provocó que la interfaz gráfica de Ubuntu dejara de responder.
$ 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
Falocate crea archivos grandes instantáneamente al manipular directamente el espacio en disco asignado al archivo:
$ 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
truncar también funciona instantáneamente y crea archivos dispersos que no usan espacio en disco real hasta que los datos se escriban más adelante:
$ 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
Una manera fácil sería usar el dd
comando para escribir un archivo lleno de ceros.
dd if=/dev/zero of=outputFile bs=2G count=1
Utilice G en el argumento de tamaño si desea gigabytes de computadora (1024 * 1024 * 1024), o GB si desea gigabytes humanos (1000 * 1000 * 1000).
/dev/urandom
en ese caso (no bloquea, pero no se garantiza que tenga el mismo nivel de aleatoriedad). Sacar 2 GB de cualquiera de ellos seguramente agotará por completo la entropía de su sistema, por lo que no haga nada criptográfico por un tiempo después.
ftp://ftp.fsf.hu/testfiles/maketestfiles.sh
o Buscar es el tamaño del archivo que desea en bytes - 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
lee 2 GB en la memoria (en unaread(2)
llamada). Si tienes presión de memoria, probablemente ese no sea el camino a seguir. Más, los bloques más pequeños pueden ser más rápidos si significa menos paginación.