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 ddperintah 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/urandomdalam 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=1membaca 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.