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
dd ... bs=2G count=1membaca 2 GB ke dalam memori (dalam satu read(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.
claymation
19
Cara mudah adalah dengan menggunakan ddperintah untuk menulis file yang penuh dengan nol.
dd if=/dev/zero of=outputFile bs=2G count=1
if = input file
dari = file output
bs = byte
Gunakan G dalam argumen ukuran jika Anda ingin komputer (1024 * 1024 * 1024) gigabytes, atau GB jika Anda ingin manusia (1000 * 1000 * 1000) gigabytes.
saya hanya akan menambahkan bahwa jika Anda tidak ingin semua nol, Anda dapat memilih jika = / dev / random
Denwerko
Padahal / dev / acak akan membutuhkan lebih banyak waktu.
con-f-use
10
Menggunakan / dev / random akan mengambil mengerikan banyak waktu. Gunakan /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.
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.Cara mudah adalah dengan menggunakan
dd
perintah untuk menulis file yang penuh dengan nol.Gunakan G dalam argumen ukuran jika Anda ingin komputer (1024 * 1024 * 1024) gigabytes, atau GB jika Anda ingin manusia (1000 * 1000 * 1000) gigabytes.
sumber
/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.
sumber