Bu yaygın bir sorudur - özellikle günümüzün sanal ortamlarında. Ne yazık ki, cevap tahmin edebileceği kadar basit değildir.
dd bariz bir ilk tercihtir, ama dd aslında bir kopyadır ve sizi her veri bloğunu yazmaya zorlar (böylece dosya içeriğini başlatır) ... Ve bu başlatma çok fazla G / Ç süresi gerektiren şeydir. (Daha da uzun sürmesini ister misiniz? / Dev / zero yerine / dev / random kullanın ! Sonra CPU ve G / Ç zamanını kullanacaksınız!) Sonunda, dd kötü bir seçimdir (aslında VM "create" GUI'leri tarafından varsayılan olarak kullanılır). Örneğin:
dd if=/dev/zero of=./gentoo_root.img bs=4k iflag=fullblock,count_bytes count=10G
truncate başka bir seçimdir - ve muhtemelen en hızlısıdır ... Ama bunun nedeni "seyrek bir dosya" yaratmasıdır. Esasen, seyrek bir dosya diskin aynı veriye sahip bir bölümüdür ve temel dosya sistemi tüm verileri gerçekten depolamakla kalmaz, sadece orada olduğunu iddia ederek "aldatır". Bu nedenle, VM'niz için 20 GB'lık bir sürücü oluşturmak için kesmeyi kullandığınızda, dosya sistemi aslında 20 GB tahsis etmez, ancak hile yapar ve diskte bir parça kadar az olsa bile 20 GB sıfır olduğunu söyler aslında (gerçekten) kullanımda olabilir. Örneğin:
truncate -s 10G gentoo_root.img
fallocate nihai - ve en iyisi - seçim . aslında "rezervleri" (veya boşluk Sen arayan tüm "ayırır", ancak Yani yazma şey rahatsız etmez, çünkü VM diski tahsisi ile kullanım için 20 GB'lık bir sanal sürücü alanı oluşturmak için fallocate kullandığınızda, gerçekten 20 GB'lık bir dosya elde edersiniz ("seyrek bir dosya" değil) ve herhangi bir şey yazmak için uğraşmazsınız - yani neredeyse her şey olabilir orada - yeni bir disk gibi!) Örneğin:
fallocate -l 10G gentoo_root.img