एक बढ़ते लूपबैक डिवाइस को कैसे सेटअप करें?


23

मुझे पता है कि मैं इस तरह से लूपबैक डिवाइस बना और इस्तेमाल कर सकता हूं:

# Create the file
truncate disk.img --size 2G
# Create a filesystem
mkfs.ext4 disk.img
# Mount to use
mount disk.img /mnt
# Clean up
umount /mnt

हालाँकि इस स्थिति में डिस्क की इमेज 2GB तय की गई है। यह खाली होने पर 2GB है, और जब यह भरा हुआ है तो यह 2GB है। यह नहीं बढ़ेगा।

क्या एक प्रकार का लूपबैक उपकरण है जो आकार में बढ़ सकता है? या, क्या एक प्रकार का लूपबैक उपकरण है जिसे केवल उसी स्थान की आवश्यकता है जिसे वह स्टोर करता है?


1
चूंकि फ़ाइल विरल है, इसे केवल आपके उदाहरण में संग्रहीत के रूप में अधिक स्थान का उपयोग करना चाहिए।
जोर्डनम

इस बात पर निर्भर करता है कि आप इस उपकरण को पूरा करने के लिए क्या प्रयास कर रहे हैं virt-make-fs। यह टार फ़ाइलों का उपयोग करके ext2-images बनाने के लिए उपयोग किया जा सकता है।
कोटे

जवाबों:


17

Dd का उपयोग करके एक विरल-फ़ाइल डिवाइस बनाएँ।

df -hm # to show where we started
dd of=sparse-file bs=1k seek=102400 count=0 # creates a 100Meg sparsefile
mkfs.ext4 sparse-file
mkdir blah
mount sparse-file blah
cp somefile blah
ls -lahts sparse-file  # The 's' option will report the actual space taken in the first column
ls -lahts blah
df -hm # doublecheck my work
echo 'profit :)'

संदर्भ: विकिपीडिया विरल फ़ाइल लेख


10

@ जोर्डनम की टिप्पणी ने इसे रद्द कर दिया। मैंने मान लिया कि जब मैंने आउटपुट देखा तो फ़ाइल का आकार तय किया गया था ls -lh disk.img। जब मैं इस्तेमाल किया ls -s disk.imgमें की तरह @ स्टीफ़न का जवाब वास्तविक फ़ाइल आकार से पता चला है। परीक्षण के रूप में, मैंने एक छवि फ़ाइल बनाई जो मेरी हार्ड ड्राइव से बड़ी है:

truncate test.img -s 1000G

और यह ठीक काम करता है, जिसका मतलब है कि सवाल में जवाब है :)


Truncate बहुत बढ़िया काम करता है, btw, मैंने सोचा कि मैंने उक्त विरल फ़ाइल बनाने के लिए एक वैकल्पिक आदेश दिखाया है, और (आपके लिनक्स वितरण और टूलसेट पर निर्भर करता है) कि आपको आवश्यक रूप से लॉसेटअप का उपयोग करने की आवश्यकता नहीं है, क्योंकि इसमें 'माउंट' है जब आप उन्हें जरूरत हो तब समझदार विकल्प स्थापित करने के बारे में अवतार बहुत स्मार्ट है।
Stephan

माउंट के बारे में थोड़ा दिलचस्प है। यह सिर्फ इतना है कि इस बार क्योंकि मुझे भी LUKS (cryptsetup luksFormat / dev / loop0) की आवश्यकता है, मुझे losetup की आवश्यकता है: D
phunehehe

स्पार्स फ़ाइल बनाने के लिए एक और आसान लिनक्स कमांड है fallocate(1)
ल्लोकी

2

जब से आप ट्रंकट का उपयोग करते हैं, तब आप इसे या तो dd की तलाश में या आसान तरीके से कर सकते हैं:

truncate -s 100M file
mkfs.ext4 -m0 file
#mount, do whatever
umount /mountpoint
#let's grow it to 200 MB
truncate -s 200M file
e2fsck -f file && resize2fs file
#done

इसे उगाने के लिए एक 2 लाइनर, शायद ही यहां स्वचालन के लिए कहता है, मैं कहने की हिम्मत करूंगा :)

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.