2008-09-10 20 views
7

क्या डिस्क क्लोन करते समय लिनक्स पढ़ने के लिए कोई तरीका है? मैं क्लोन डिस्क के लिए "डीडी" नामक प्रोग्राम का उपयोग करता हूं। आखिरी बार मैंने ऐसा किया था, ऐसा लगता था कि ओएस पढ़ रहा था, फिर लिख रहा था लेकिन कभी भी एक ही समय में नहीं। आदर्श रूप से, गंतव्य डिस्क लगातार प्रतीक्षा किए बिना लिख ​​रही होगी कि निश्चित रूप से स्रोत डिस्क जारी रह सकती है।फास्ट डिस्क क्लोनिंग

अद्यतन: क्लोनिंग (उदा। 16 एम या 32 एमबी) के दौरान मैं आमतौर पर एक बड़ा ब्लॉक आकार चुनता हूं।

उत्तर

11

कमोडोर जैगर अधिकार के बारे में है। डिफ़ॉल्ट 256 और इष्टतम 1024 जैसा कुछ हो सकता है। प्रत्येक सेटअप अलग है, इसलिए आपको सर्वोत्तम मूल्य खोजने के लिए मानक चलाने होंगे।

# blockdev --getra /dev/sda 
256 
# blockdev --setra 1024 /dev/sda 
# blockdev --getra /dev/sda 
1024 
# blockdev --help 
Usage: 
    blockdev -V 
    blockdev --report [devices] 
    blockdev [-v|-q] commands devices 
Available commands: 
    --getsz (get size in 512-byte sectors) 
    --setro (set read-only) 
    --setrw (set read-write) 
    --getro (get read-only) 
    --getss (get sectorsize) 
    --getbsz (get blocksize) 
    --setbsz BLOCKSIZE (set blocksize) 
    --getsize (get 32-bit sector count) 
    --getsize64 (get size in bytes) 
    --setra READAHEAD (set readahead) 
    --getra (get readahead) 
    --flushbufs (flush buffers) 
    --rereadpt (reread partition table) 
    --rmpart PARTNO (disable partition) 
    --rmparts (disable all partitions) 
# 
1

शायद तुम दो प्रक्रियाओं

dd if=indevfile | dd of=outdevfile 

उपयोग कर सकते हैं मैं तुम्हें अन्य dd विकल्प सेट कर सकते क्योंकि यह आपको सूट मान लेंगे। इसमें कुछ ओवरहेड है लेकिन एक डिस्क पढ़ने और दूसरे को लिखने के बीच एसिंक्रोनि की अनुमति देनी चाहिए।

0

क्या आप वाकई एक ही समय में ऐसा नहीं कर रहे हैं? मैं डिस्क कैश को यह सुनिश्चित करने की उम्मीद करता हूं कि ऐसा होता है। यदि नहीं, तो गैर अवरुद्ध या यहाँ तक कि अतुल्यकालिक/मदद मिल सकती है लिखता पढ़ता है,

+0

मेरा मानना ​​है कि पढ़ने/लिखने की अदला-बदली होने वाली हो गया क्योंकि लगता है की डिस्क बना रहे थे। – Mike

7

आप ब्लॉक आकार में वृद्धि bs तर्क आज़मा सकते हैं; डिफ़ॉल्ट रूप से, मेरा मानना ​​है कि dd एक ब्लॉक आकार डिस्क की पसंदीदा ब्लॉक आकार के बराबर है, जो कई और अधिक पढ़ता है और एक पूरी डिस्क कॉपी करने के लिए लिखते हैं मतलब होगा उपयोग करता है। लिनक्स के डीडी मानव-पठनीय प्रत्यय का समर्थन करता है:

dd if=/dev/sda of=/dev/sdb bs=1M 
0

आपके अपडेट के बारे में: आपके एचडी के कैश कितने बड़े हैं? (विशेष रूप से लेखन एक)। ऐसा हो सकता है कि यह बहुत अधिक है और आपको अनावश्यक अवरोध को रोकने के लिए इसे कम करने की आवश्यकता हो सकती है।

dd if=/dev/sda of=/dev/sdb bs=1M 

इसके अलावा, ड्राइव पर "Readahead" का समायोजन आमतौर पर प्रदर्शन में सुधार:

+0

मुझे डिस्क के कैश आकार को याद नहीं किया जा सकता है। – Mike

5

मेरे लिए सबसे तेजी से:

dd if=/dev/sda bs=1M iflag=direct | dd of=/dev/sdb bs=1M oflag=direct 

तक पहुँच जाता है ~ 100MiB/s, अन्य विकल्प जबकि (एकल प्रक्रिया, कोई सीधा, डिफ़ॉल्ट 512B ब्लॉक आकार, ...) भी समाप्त न हो 30MiB/s ...

प्रगति, एक और कंसोल में चलाने के देखने के लिए:

watch -n 60 killall -USR1 dd 
+0

असल में 'dd if =/dev/sda =/dev/sdb bs = 1M' मेरे लिए उपवास किया गया है। – pevik

1

अगर दो डिस्क का उपयोग अलग चैनल (ड। जी।, SATA) आप fastDD की तरह उच्च प्रदर्शन उपकरण का उपयोग कर सकते हैं। लेखकों का दावा:

"इस काम में, हम मज़बूती से और कुशलता से नकल डेटा की समस्या की समीक्षा की, सभी हार्डवेयर और सॉफ्टवेयर तंत्र है जिसके हस्तक्षेप करने और नकल की प्रक्रिया में दखलंदाजी को याद करते हुए हमारे विचार कोडित किया गया है। fastdd में, एक सी ++ प्रोग्राम में सक्षम बहुत कुशलता से डेटा कॉपी करने के लिए, जैसा कि हम हमारे परीक्षण में दिखाई देते हैं। "

इसके अलावा उपकरण पुराने dd के समान ही वाक्यविन्यास रखता है।

http://www.dei.unipd.it/~zagonico/fastdd/

https://github.com/zagonico86/fastdd

संबंधित मुद्दे