Cómo llenar un disco duro en Linux

Cómo llenar un disco duro en Linux

Estoy probando un fragmento de código y quiero llenar un disco duro con datos. Descubrí que ddpuedes crear archivos enormes en un instante, pero dfno estoy de acuerdo. Esto es lo que probé:

dd if=/dev/zero of=filename bs=1 count=1 seek=$((10*1024*1024*1024))

ls -lhmuestra un archivo 10G. Sin embargo, df -hmuestra que la partición no se redujo. Entonces, ¿qué debo hacer para dfreconocer que los datos ahora están tomados? Espero algo rápido que codifique en una prueba unitaria.

Respuesta1

El problema con este seek=<big number>truco es que el sistema de archivos es (generalmente) inteligente: si nunca se ha escrito parte de un archivo (y por lo tanto es todo ceros), no se molesta en asignarle espacio, así que, como usted' Como hemos visto, puedes tener un archivo de 10 GB que no ocupa espacio (esto se conoce como "archivo disperso" y puede ser muy útil en algunos casos, por ejemplo, ciertas implementaciones de bases de datos).

Puede forzar la asignación del espacio con (por ejemplo):

dd if=/dev/zero of=filename bs=$((1024*1024)) count=$((10*1024))

lo que llevará mucho más tiempo, pero en realidad llenará el disco. Recomiendo hacer que el tamaño del bloque sea mucho mayor que uno, porque esto determinará cuántas llamadas al sistema ddrealiza el proceso: cuanto más pequeño sea el tamaño del bloque, más llamadas al sistema y, por lo tanto, más lento se ejecutará. (Aunque más allá de 1 MB probablemente no hará mucha diferencia e incluso puede ralentizar las cosas...)

Respuesta2

Como otra opción, puede usar sí junto con una sola cadena y es aproximadamente 10 veces más rápido que ejecutar dd if=/dev/urandom of=largefile. Como esto

yes abcdefghijklmnopqrstuvwxyz0123456789 > largefile

Respuesta3

Ha creado lo que se conoce como un "archivo disperso": un archivo que, debido a que la mayor parte está vacío (es decir, se lee como \0), no ocupa espacio en el disco además de lo que realmente está escrito (1B, después de 10GB). de brecha).

No creo que puedas crear archivos enormes, ocupando espacio real en el disco en un instante; ocupar espacio físico significa que el sistema de archivos necesita asignar bloques de disco a tu archivo.

Creo que estás atrapado con el anticuado "dd if=/dev/zero of=filename bs=100M count=100" que está limitado por la velocidad de escritura secuencial de tu unidad.

Respuesta4

Deje de usarlo seeky use uno muy grande bsy/o count. Tal como están las cosas, estás haciendo unarchivo escaso, y obviamente no es necesario que hagas eso.

información relacionada