क्यों dd का उपयोग करके डिस्क क्लोन अधिक स्थान लेता है फिर वास्तविक डेटा आकार?


1

मैं ddकमांड का उपयोग करके डिस्क को क्लोन करने की कोशिश कर रहा हूं । मेरे इनपुट डिस्क का आकार 1Tb है जो केवल 10% भरा है। मेरा आउटपुट डिस्क का साइज़ 300Gb है जो कि क्लोन करने की उम्मीद से ज्यादा है।

लेकिन मेरे क्लोनिंग खत्म हो जाने के बाद, मैं यह संदेश देख सकता था No space left on device:।

यह थोड़ा अजीब है कि 1Tb में 300% स्पेस में 10% कैसे भरा जाता है। क्या कोई मुझे यह बात समझा सकता है, ऐसा क्यों हुआ? क्या मेरा डेटा दूषित हो गया?


2
डिस्क को क्लोन करना डिस्क को क्लोन करता है। क्या आप फ़ाइलों की नकल करने का मतलब?
डेविड श्वार्ट्ज

मैं ddMBR, बूटलोडर, विभाजन UUID (s) आदि को संरक्षित करने के लिए एक छोटे लक्ष्य के साथ डिस्क को सेमी-क्लोन करने की कोशिश कर सकता हूं , क्या यह आपका लक्ष्य है?
कामिल मैकियोरोस्की

जवाबों:


4

यदि आपके इनपुट डिवाइस ( if=) का आकार 1TB है, तो हमारी आउटपुट फ़ाइल ( of=) भी 1TB होगी।

ddएक बहुत ही निम्न-स्तरीय उपकरण है, जो इनपुट स्ट्रीम से आउटपुट स्ट्रीम तक सभी बाइट्स को कॉपी करता है, भले ही डेटा क्या है या क्या यह आवंटित किया गया है। यहां तक ​​कि खाली ( 0x00) सेक्टर और उनमें कचरा रखने वाले भी शामिल हैं। यह उच्च स्तरीय डेटा संरचनाओं के साथ खुद को चिंता नहीं करता है जो "फाइलें", "निर्देशिका", आदि का प्रतिनिधित्व करते हैं।

यदि आपका लक्ष्य 1TB डिस्क का सटीक बाय-बाय-बाइट क्लोन प्राप्त करना है, तो आपको कम्प्रेशन अल्गोरिथम के माध्यम से डेटा को पाइप करना होगा, जैसे कि bzip2इसे एक छोटी डिस्क पर फिट करने के लिए।

यदि आपका लक्ष्य केवल आपके डेटा का बैकअप लेना है, तो उसके ddलिए उचित उपकरण नहीं है। आप tarइसके बजाय किसी अन्य संग्रह टूल का उपयोग करना चाहेंगे ।


1

dd सीधे अंतर्निहित डिस्क को कॉपी करता है, फाइलसिस्टम को नहीं। यह आवंटित ब्लॉकों या अप्रयुक्त स्थान के बारे में नहीं जानता है।

यदि आप बस फाइल सिस्टम पर कब्जा करना चाहते हैं, और यह एक लिनक्स EXTx फाइल सिस्टम है जो माउंट नहीं है, तो मैं इसे न्यूनतम आकार तक सिकोड़ने का सुझाव दूंगा (इसे पहले अनमाउंट किया जाना चाहिए और fsck'd)

resize2fs -M / dev / sd ??

फिर विभाजन की प्रतिलिपि बनाएँ फ़ाइल सिस्टम आपके बैकअप डिस्क पर है।

अपने मूल आकार में सबसे पीछे के तने को पुनर्स्थापित करने के लिए (अपना खाली स्थान वापस पाएं), दौड़ें

resize2fs / dev / Ed ??

बेहतर अभी तक, टार जैसे फाइल सिस्टम-अवेयर आर्काइव टूल का उपयोग करें।


ओपी ने पूरी डिस्क की क्लोनिंग का उल्लेख किया। रिसाइज्ड फाइलसिस्टम (यदि केवल एक पार्टीशन है) को सभी डेटा को लक्ष्य डिस्क में फिट करना चाहिए और यह ठीक है। हालाँकि छोटी डिस्क के लिए क्लोन की गई विभाजन तालिका गलत होगी और इससे कुछ टूल भ्रमित हो सकते हैं। भविष्य की परेशानी से बचने के लिए विभाजन को भी छोटा किया जाना चाहिए।
कामिल मैकियोरोस्की

यह सच है कि विभाजन तालिका अभी भी बड़े आकार के लिए निर्धारित की जाएगी। मैंने डिस्क को नहीं विभाजन को कॉपी करने के लिए कहा था। मैंने क्या छोड़ा है कि बाद में फाइल सिस्टम को विभाजन आकार में कैसे विकसित किया जाए, जो कि मूल और बैकअप डिवाइस दोनों पर किया जा सकता है। मुझे लगा कि यह ओपी को सही दिशा में ले जाएगा लेकिन डिस्क और फाइल सिस्टम पर पूर्ण ट्यूटोरियल के लिए सही जगह नहीं है ...
पेटीपो

0

यह थोड़ा अजीब है कि 1Tb में 300% स्पेस में 10% कैसे भरा जाता है।

नहीं। 1TB के 100% ने 300GB स्थान भरा और अधिक चाहा।

इसे पहले 10 पृष्ठों पर 100 पृष्ठों और नोटों के साथ एक नोटबुक के रूप में सोचें। यदि आप नोटबुक को ज़ेरॉक्स स्टाइल कॉपियर पर रखते हैं और पूरी किताब की नकल करते हैं तो आप 100 नए पृष्ठों के साथ समाप्त हो जाएंगे। भले ही उनमें से ज्यादातर खाली हों।

Dd का उपयोग करना RAW कॉपी है। यह उपयोग में डेटा की प्रतिलिपि नहीं बनाता है। इसके लिए आपको किसी ऐसी चीज की जरूरत होगी जो भरे हुए पन्नों और उस पर सिर्फ खाली लाइनों वाले पन्नों के बीच के अंतर को समझती हो।

क्या कोई मुझे यह बात समझा सकता है, ऐसा क्यों हुआ? क्या मेरा डेटा दूषित हो गया?

नहीं, आपने सिर्फ अपनी इच्छानुसार कुछ और करने की आज्ञा दी है।

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