यह एक सामान्य प्रश्न है - विशेष रूप से आज के आभासी वातावरण में। दुर्भाग्य से, उत्तर उतना सीधा नहीं है जितना कि कोई मान सकता है।
dd स्पष्ट पहली पसंद है, लेकिन dd अनिवार्य रूप से एक प्रति है और यह आपको डेटा के प्रत्येक ब्लॉक को लिखने के लिए मजबूर करता है (इस प्रकार, फ़ाइल सामग्री को इनिशियलाइज़ करता है) ... और यह कि इनिशियलाइज़ेशन में कितना I / O समय लगता है। (इसे और भी अधिक समय लेना चाहते हैं? / Dev / शून्य के बजाय / dev / random का उपयोग करें ! तब आप CPU के साथ-साथ / O समय का भी उपयोग करेंगे!) हालांकि, अंत में dd एक खराब विकल्प है (हालाँकि अनिवार्य रूप से) VM "डिफ़ॉल्ट" GUIs द्वारा उपयोग किया जाता है। उदाहरण के लिए:
dd if=/dev/zero of=./gentoo_root.img bs=4k iflag=fullblock,count_bytes count=10G
truncate एक और विकल्प है - और संभवतः सबसे तेज़ है ... लेकिन ऐसा इसलिए है क्योंकि यह एक "विरल फ़ाइल" बनाता है। अनिवार्य रूप से, एक विरल फ़ाइल डिस्क का एक भाग होता है जिसमें बहुत सारे समान डेटा होते हैं, और अंतर्निहित फाइल सिस्टम वास्तव में सभी डेटा को संग्रहीत नहीं करता है, लेकिन सिर्फ "दिखावा" करता है कि यह सब वहां है। इस प्रकार, जब आप अपने वीएम के लिए 20 जीबी ड्राइव बनाने के लिए ट्रंकट का उपयोग करते हैं, तो फाइलसिस्टम वास्तव में 20 जीबी आवंटित नहीं करता है, लेकिन यह धोखा देता है और कहता है कि वहां 20 जीबी शून्य हैं, भले ही डिस्क पर एक ट्रैक जितना कम हो वास्तव में (वास्तव में) उपयोग में हो सकता है। उदाहरण के लिए:
truncate -s 10G gentoo_root.img
fallocate है और - अंतिम सबसे अच्छा - पसंद है, क्योंकि यह अनिवार्य रूप से "भंडार" (या "आबंटित करता है" अंतरिक्ष आप कर रहे हैं की मांग के सभी है, लेकिन यह कुछ भी लिखने के लिए परेशान नहीं करता है तो, वीएम डिस्क आवंटन साथ प्रयोग के लिए। जब आप 20 जीबी वर्चुअल ड्राइव स्पेस बनाने के लिए फालोकेट का उपयोग करते हैं, तो आपको वास्तव में एक 20 जीबी फ़ाइल मिलती है (न कि "स्पार्स फाइल", और आपने इसे कुछ भी लिखने के लिए परेशान नहीं किया होगा - जिसका अर्थ है कि वास्तव में कुछ भी हो सकता है। वहाँ - एक ब्रांड नई डिस्क की तरह!) जैसे:
fallocate -l 10G gentoo_root.img