Jawaban:
Metode zero-fill (dimodifikasi di sini untuk menghindari potensi kemacetan memori ) memerlukan waktu 17 detik untuk membuat file 10 GB pada SSD dan menyebabkan antarmuka grafis Ubuntu menjadi tidak responsif.
$ 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 membuat file besar secara instan dengan secara langsung memanipulasi ruang disk yang dialokasikan 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 juga berfungsi secara instan, dan membuat file jarang yang tidak menggunakan ruang disk sebenarnya hingga data ditulis nanti:
$ 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
Cara mudah adalah dengan menggunakan dd
perintah untuk menulis file yang penuh dengan nol.
dd if=/dev/zero of=outputFile bs=2G count=1
Gunakan G dalam argumen ukuran jika Anda ingin komputer (1024 * 1024 * 1024) gigabytes, atau GB jika Anda ingin manusia (1000 * 1000 * 1000) gigabytes.
/dev/urandom
dalam kasus itu (ini non-blocking, tetapi tidak dijamin memiliki tingkat keacakan yang sama). Menggambar 2 GB dari salah satu dari mereka hampir pasti benar-benar menguras entropi sistem Anda, jadi jangan lakukan kriptografi apa pun untuk sementara waktu sesudahnya.
ftp://ftp.fsf.hu/testfiles/maketestfiles.sh
atau Seek adalah ukuran file yang Anda inginkan dalam 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
membaca 2 GB ke dalam memori (dalam saturead(2)
panggilan). Jika Anda memiliki tekanan memori, itu mungkin bukan cara yang tepat. Lebih banyak, blok yang lebih kecil mungkin lebih cepat jika itu artinya paging lebih sedikit.