क्या आपके द्वारा बूट की गई वर्तमान डिस्क को dd करना संभव है?


23

मेरे पास लाइव USB डिस्क से चलने वाले FreeNAS की एक प्रति है। और मैं इसका बैकअप बनाना चाहूंगा।

पूरी तरह से काम करने की प्रणाली को तोड़ने से बचने की कोशिश करते समय, क्या मैं ddओएस चालू होने के दौरान डिस्क में सक्षम होगा ?

या मुझे मशीन को बंद करना होगा और ddदूसरी मशीन को चलाना होगा?

जवाबों:


16

आप ddरनिंग डिस्क पर चला सकते हैं । डिस्क संरचना में भारी परिवर्तन होने पर ऐसा करने से बचना चाहिए। fschkएक बार जब आप काम पूरा कर लेते हैं, तो आपको गंतव्य भी प्राप्त करना चाहिए । बैकअप के दौरान सिस्टम जितना शांत होता है उतना ही बेहतर होता है।

यदि आप `dd 'का उपयोग करना चाहते हैं, तो कोल्ड बैकअप (फ़ाइल सिस्टम अनमाउंट) चलाना सबसे अच्छा विकल्प है।

रनिंग सिस्टम का बैकअप लेने के लिए बेहतर विकल्प हैं।

  • tarया cpioखुली फ़ाइलों के साथ यथोचित फ़ाइलों और सौदों को पढ़ेगा। आपको संभवतः बैकअप के दौरान होने वाले कुछ बदलावों की याद आएगी।
  • rsynctarफ़ाइलों को खोलने के लिए और बैकअप के दौरान परिवर्तनों को याद रखने जैसा व्यवहार करता है । इसका उपयोग प्रारंभिक बैकअप करने के लिए किया जा सकता है और वृद्धिशील बैकअप बहुत अच्छी तरह से करता है। वृद्धिशील बैकअप चलाते समय यह फ़ाइल के अपरिवर्तित भागों को कॉपी करना छोड़ सकता है।

यदि आप डेटाबेस फाइल के साथ फाइल सिस्टम का बैकअप ले रहे हैं तो हॉट बैकअप के लिए सपोर्ट की जांच करें।


- उच्च स्तर के उपकरण का उपयोग कर पर अच्छा अंक tar, cpioऔर rsyncसब काम फाइल सिस्टम के भीतर है, तो यह उपयुक्त हो सकता है। dd, OTOH, FS को दरकिनार करते हुए सीधे डिस्क ब्लॉक के साथ काम करता है।
Piskvor

16

यह तकनीकी रूप से संभव है (जैसा कि "शूटिंग-खुद-इन-द-फ़ुट"), लेकिन अत्यधिक अस्वीकार्य है, खासकर यदि डिस्क के किसी भी विभाजन को लिखने योग्य है।

इस परिदृश्य को देखें:

  • dd शुरू में डिस्क को पढ़ना शुरू करता है, और धीरे-धीरे अंत की ओर अपना रास्ता बनाता है।
  • जब यह आधा हो जाता है, तो ओएस डिस्क पर एक फाइल लिखता है। फ़ाइल हालांकि कुछ खंडित है - इसका एक हिस्सा भौतिक रूप से डिस्क की शुरुआत की ओर स्थित है, और दूसरा अंत की ओर।
  • ओएस के लिए कोई समस्या नहीं है - यह फ़ाइल को ठीक लिखता है, और इसे अपने लेखन कैश से बाहर धकेलता है; यह अब डिस्क पर सही ढंग से लिखा गया है।
  • समस्या आपके बैकअप के साथ है: ddपहले से ही अतीत में चला गया है और फ़ाइल के पहले भाग की प्रतिलिपि बनाई गई है, इसलिए यह असंगत स्थिति को कैप्चर करेगा जब यह दूसरे भाग में पहुंच जाता है - प्रत्येक भाग एक अलग संस्करण से होगा!

यदि आप USB डिस्क पर सभी विभाजन को केवल-पढ़ने में सक्षम करने में सक्षम हैं, तो यह समस्या नहीं होनी चाहिए (" नहीं होना चाहिए " पर जोर देना ); इसके लिए /विभाजन के लिए महत्वपूर्ण अप-फ्रंट इंस्टॉल / ऑफ़लाइन तैयारी और बूट-टाइम सेटअप की आवश्यकता होती है - मुझे नहीं लगता कि आप सामान्य रूप से /r / o-the-fly को रीमाउंट कर सकते हैं, ऐसी कई चीज़ें होंगी जो आर / डब्ल्यू की आवश्यकता होती हैं। पहुंच।

तो, कॉपी चलाने से शायद रनिंग सिस्टम नहीं टूटेगा, लेकिन आपको काम का बैकअप नहीं मिलेगा , जिससे टास्क म्यूट हो जाएगा। मैं प्रतिलिपि को ऑफ़लाइन बनाने की अत्यधिक अनुशंसा करता हूं - जिसे मशीन को बंद करने की आवश्यकता होगी।


1
एक महान जवाब के लिए धन्यवाद, मैं एक आसान तरीके के लिए उम्मीद कर रहा था, लेकिन आप सही हैं, मैं एक अच्छे परिदृश्य की कल्पना नहीं कर सकता जो आपने बताया।
स्टुअर्ट

1
@stuartc: इसे FS ड्राइवर से प्रमुख सहयोग की आवश्यकता होगी - प्रतिलिपि शुरू होने के बाद से होने वाले हर बदलाव की प्रतिलिपि प्रक्रिया को सूचित करना, और क्या यह एक सुसंगत स्थिति में आता है। यदि यह एक प्रमुख मुद्दा है, तो फाइलसिस्टम पर गौर करें जो स्नैपशॉट का समर्थन करता है, जैसे कि btrfs
पिस्कोर

4

आपको माउंटेड पार्टीशन की छवि कभी नहीं बनानी चाहिए। इससे कोई फर्क नहीं पड़ता कि आपने इससे बूट किया है या नहीं।

लेकिन आपके पास एक कठिन समय होगा कि आप जिस पार्टीशन से बूट हुए हैं, उसे अनमाउंट करने की कोशिश करें।


4

इसके लिए, मैं dump(8)FreeBSD पर उपयोग करता हूं । उदाहरण के लिएdump -auLf /mnt/some-other-disk/root.dmp /

-Lविकल्प एक स्नैपशॉट लेने के द्वारा एक जीवित फाइल सिस्टम की नकल की अनुमति देता है।

डंप का उपयोग करके बहाल किया जा सकता है restore(8)

यह केवल UFS के साथ काम कर सकता है; मैं उसके बारे में निश्चित नहीं हूं।


0

यह आश्चर्यजनक है कि कितने बैकअप युक्तियों में निम्नलिखित का उल्लेख नहीं है:

लिनक्स सिस्टम (और सबसे मल्टी-थ्रेड ओएस का) आम तौर पर आप समय-समय पर रीस्टोर और रीस्टोरिंग करते हैं।

यह सबसे आसानी से प्राप्त किया जाता है जब तक आप इसे छवि की कोशिश नहीं कर रहे हैं उस पर ओएस नहीं चला रहे हैं।

बैकअप और पुनर्स्थापना के लिए, इसे माउंट किया जा सकता है, और वास्तव में संभवतः होना चाहिए, लेकिन इसकी जड़ (/) के रूप में चल रहे ओएस द्वारा नहीं।


कारण: प्रत्येक मल्टी-टास्किंग ऑपरेटिंग सिस्टम में, लिनक्स शामिल है, फाइलों को प्रभावित करने वाले एक साथ कोड थ्रेड चल रहे हैं जो सटीक सिस्टम-वाइड फ़ाइल-सेट बैकअप या पुनर्स्थापना करना असंभव बनाता है।

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


विकल्प: बैकअप को या तो विशेष सॉफ़्टवेयर और / या डिस्क सिस्टम द्वारा किया जाना चाहिए (उदाहरण के लिए विंडोज पर Acronis जो एक चल रहे ओएस का बैकअप ले सकता है), या बाहरी माध्यमिक ओएस द्वारा गैर-चल रहे ओएस की फ़ाइलों तक पहुंच के द्वारा जो आप करने की कोशिश कर रहे हैं। बैकअप या बहाल।

!!! इसलिए जब आप अपने बैकअप करने के लिए उदाहरण के लिए देजा-डुप का उपयोग करने के लिए कह रहे वेब पेज देखते हैं , तो यह केवल /homeतब के लिए काम करता है और तब ही /homeजब आप डीजा-डुबकी चलाते हुए किसी भी प्रोग्राम को प्रभावित नहीं कर रहे हैं। (और तब भी आप अपनी उँगलियों को तब तक पार करना चाह सकते हैं जब तक आप वास्तव में नहीं जानते हैं कि संभवतः आपकी फ़ाइलों को डेमन के माध्यम से छू सकता है।)


0

मैं पहले से ही परीक्षण वातावरण पर सक्सेज के साथ करता हूं, एक अच्छी डिवाइस कॉपी की संभावना को बेहतर बनाने के लिए अंत में fsck और rsync के साथ।


1
क्या आप बता सकते हैं कि आप rsyncएक पूरी-डिस्क (संपूर्ण-फाइलसिस्टम) डंप के साथ कैसे सुधार कर उपयोग करते हैं  dd? (और, यदि आपके पास पहुंच है, तो आप rsyncइसे अपने प्राथमिक बैकअप उपकरण के रूप में एक माध्यमिक, साथी के बजाय एक का उपयोग क्यों नहीं करेंगे?)……………………… कृपया टिप्पणियों में जवाब न दें;  इसे स्पष्ट और अधिक पूर्ण बनाने के लिए अपना उत्तर संपादित करें।
स्कॉट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.