Ini adalah pertanyaan umum - terutama di lingkungan lingkungan virtual saat ini. Sayangnya, jawabannya tidak semudah yang diperkirakan.
dd adalah pilihan pertama yang jelas, tetapi dd pada dasarnya adalah salinan dan yang memaksa Anda untuk menulis setiap blok data (dengan demikian, menginisialisasi isi file) ... Dan inisialisasi itulah yang memakan banyak waktu I / O. (Ingin membuatnya lebih lama? Gunakan / dev / acak bukan / dev / nol ! Maka Anda akan menggunakan CPU serta waktu I / O!) Pada akhirnya, dd adalah pilihan yang buruk (meskipun pada dasarnya standar yang digunakan oleh VM "buat" GUI). Misalnya:
dd if=/dev/zero of=./gentoo_root.img bs=4k iflag=fullblock,count_bytes count=10G
truncate adalah pilihan lain - dan mungkin yang tercepat ... Tapi itu karena ia membuat "file jarang". Pada dasarnya, file jarang adalah bagian dari disk yang memiliki banyak data yang sama, dan sistem file yang mendasarinya "menipu" dengan tidak benar-benar menyimpan semua data, tetapi hanya "berpura-pura" bahwa semua ada di sana. Jadi, ketika Anda menggunakan truncate untuk membuat drive 20 GB untuk VM Anda, filesystem tidak benar-benar mengalokasikan 20 GB, tetapi itu menipu dan mengatakan bahwa ada 20 GB nol di sana, meskipun hanya satu track pada disk. sebenarnya (benar-benar) sedang digunakan. Misalnya:
truncate -s 10G gentoo_root.img
fallocate adalah akhir - dan terbaik - pilihan untuk digunakan dengan alokasi disk yang VM, karena pada dasarnya "cadangan" (atau "mengalokasikan" semua ruang Anda sedang mencari, tetapi tidak repot-repot untuk menulis apa-apa Jadi,. ketika Anda menggunakan fallocate untuk membuat ruang drive virtual 20 GB, Anda benar-benar mendapatkan file 20 GB (bukan "file jarang", dan Anda tidak akan repot-repot menulis apa pun untuk itu - yang berarti hampir apa pun bisa berada di sana - jenis seperti disk baru!) Mis:
fallocate -l 10G gentoo_root.img