लिनक्स प्रणाली की पूर्ण पुनर्स्थापना


20

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

मैंने अतीत में जो कोशिश की है वह है:

  1. फेडोरा स्थापित डिस्क से एक मूल प्रारूप / पुनर्स्थापना करें
  2. सुनिश्चित करें कि नेटवर्किंग सक्षम है
  3. नव स्थापित प्रणाली के शीर्ष पर rsync बैकअप से सब कुछ कॉपी करें

इस तरह से काम करता है लेकिन मुझे नहीं लगता कि जो पैकेज स्थापित किया गया था वह 100% बाद में काम करता है।

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


जब आप कहते हैं कि आप अन्य मशीनों पर स्थापित करना चाहते हैं तो क्या आपका मतलब अन्य समान / मशीनों या डेस्कटॉप और लैपटॉप की तरह है?
इचोरस

हार्डवेयर अलग होगा, लेकिन दोनों पर समान सॉफ्टवेयर पैकेज चाहते हैं
साइमन फोस्टर

जवाबों:


17

यहाँ मैंने क्या किया है (यह / डिस्क / sda में एक एकल डिस्क मानता है)

  • MBR और पार्टीशन टेबल के बैकअप के लिए dd का उपयोग करें: "dd bs = 512 count = 1 if = / dev / sda of = / backups / sda.layout"

  • rsync का उपयोग पूरी चीज़ को किसी चीज़ से कॉपी करने के लिए करें: "rsync -axvPH --numeric-ids ..."

पुनर्स्थापित करने पर मैं ऐसा करता हूं:

  • sysrescuecd के साथ लक्ष्य मशीन को बूट करें , मेरे पास आमतौर पर USB स्टिक पर 'sda.layout' फाइल होगी।

  • dd के साथ MBR / पार्टीशन टेबल को पुनर्स्थापित करें: "dd bs = 512 count = 1 if = / path / to / sda.layout of = / dev / sda"

  • विभाजन तालिका को फिर से पढ़ने के लिए कर्नेल प्राप्त करने के लिए partprobe (धन्यवाद टिप्पणीकर्ता मार्क) का उपयोग करें ।

  • / बहाल / के तहत सभी विभिन्न भागों माउंट। मैं माउंट पॉइंट्स को पुनर्स्थापना के तहत समान बनाता हूं, इसलिए यदि मेरे स्रोत पर मेरे पास / बूट, / var है, तो मैं / पुनर्स्थापित / बूट, / रिस्टोर / संस्करण, आदि के साथ समाप्त होता हूं।

  • पूरी चीज़ को पुनर्स्थापित करने के लिए rsync का उपयोग करें।


3
मैंने कई बार ऐसा किया है और मानक linux CLI कमांडों का उपयोग करने का फायदा है। मैं केंद्रीय सर्वर का बैकअप बनाने के लिए rsync के आसपास एक पर्ल स्क्रिप्ट का उपयोग करता हूं। फिर sysrescuecd से बूट करने और विभाजन तालिका को dd'ing करने के बाद पूरी बात rsync करें। BTW, "partprobe" विभाजन तालिका को फिर से पढ़ेगा
मार्क पोर्टर

ठीक है, इसे विले हैक के रूप में देखा जा सकता है, लेकिन चूंकि आप कर्नेल में विभाजन तालिका को एक sysctl () जारी कर सकते हैं, जैसे कि fdisk करता है, तो आपके पास fdisk हो सकता है - जो कि आंशिक रूप से विपरीत हमेशा मेरे अनुभव में होता है - करते हैं यह: fdisk / देव / yourdisk << EOF डब्ल्यू EOF
बर्न्ड Haug

हर सुझाव के लिए धन्यवाद, मुझे पता था कि वहाँ एक बेहतर समाधान होना चाहिए। इन सुझावों की कोशिश करेंगे और देखेंगे कि मेरे लिए सबसे अच्छा काम क्या है।
साइमन फोस्टर

3
डीडी के साथ गिनती मत भूलना! "dd bs = 512 if = / dev / sda of = / backups / sda.layout count = 1" और "dd bs = 512 if = / path / to / sda.layout of = / dev / sda = 1"
स्टीवन

@Steven: बकवास! पकड़ने के लिए धन्यवाद। क्या मैं एक टिप्पणी कर सकता हूं?
15

6

मैं सिस्टम को कभी पूरी तरह से क्लोन नहीं करता। आप कभी नहीं जान सकते कि क्या बदलाव हो सकता है, और आपकी सिस्टम क्लोन की गई छवि पहले ही उस तारीख से बाहर हो जाती है जब एक परिवर्तन होता है। ऐसा करने का सबसे अच्छा तरीका एक प्रक्रिया स्थापित करना है जो आपको कार्यात्मक समान सिस्टम का उत्पादन करने की अनुमति देता है। एक संभावना किकस्टार्ट, या ऑटॉयस्ट या इसी तरह के उपकरणों की तरह है। अपने कॉन्फ़िगरेशन के अच्छे बैकअप रखें, और आदर्श रूप से कॉन्फ़िगरेशन प्रबंधन प्रणाली जैसे कि Bcfg2, कठपुतली, या CFEngine का उपयोग करें इसे हाथ से करने के बजाय सब कुछ कॉन्फ़िगर करें। फिर जब आपको एक नई प्रणाली बनाने की आवश्यकता होती है जो आपके पास एक अन्य के समान है, या किसी मौजूदा प्रणाली को फिर से बनाना है, तो यह एक सरल और अच्छी तरह से परिभाषित प्रक्रिया है।


3

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

आप अपने घर की निर्देशिका को एक अलग विभाजन पर रखने पर भी विचार कर सकते हैं। आप किसी अन्य पार्टीशन पर क्लीन इंस्टाल करते हुए उस विभाजन को अकेले छोड़ सकते हैं।


2

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


2

मैंने हमेशा सोचा है कि एक नई प्रणाली (बैकअप या अन्यथा से) स्थापित करने का जेंटू तरीका अपनी सादगी के कारण सबसे अच्छा था।

  1. कार्यशील, न्यूनतम प्रणाली बनाएं।
  2. लाइव एलसीडी में हार्ड ड्राइव के रूप में कार्य प्रणाली को लोड करें।
  3. फाइलसिस्टम को टारगेट करें और कहीं सेव करें।
  4. एक लाइव एलसीडी के साथ लक्ष्य प्रणाली लोड करें।
  5. लक्ष्य हार्ड ड्राइव को प्रेप करें और इसे माउंट करें।
  6. घुड़सवार हार्ड ड्राइव करने के लिए।
  7. चूरोट डालें।
  8. बूटलोडर और अन्य सिस्टम-निर्भर चीजों को सेट करें।
  9. रिबूट और जाओ।
  10. नए सॉफ़्टवेयर स्थापित करें / उपयोगकर्ता फ़ोल्डर की प्रतिलिपि बनाएँ / अन्य फ़ाइलों को आवश्यकतानुसार जोड़ें।

2

Clonezilla लाइव सीडी का प्रयास करें। आप कुछ भी स्थापित किए बिना एक लाइव सत्र में बूट कर सकते हैं और अपनी मशीन की छवि बना सकते हैं। फिर आपके पास एक नेटवर्क शेयर या रिमोट मशीन और इतने पर छवि की प्रतिलिपि संग्रहीत करने का विकल्प होता है।


0

यदि यह ठीक उसी मशीन है, तो मैं बस ddएक डिस्क छवि बनाने के लिए उपयोग करूंगा , फिर इसे आवश्यक रूप से पुन: उपयोग करें (संभवत: उपयुक्त होने पर कुछ कॉन्फ़िगरेशन बदलने के बाद)।

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


0

आपकी प्रक्रिया कई समस्याओं का कारण बन सकती है, और इससे बचा जाना चाहिए।

इस बारे में जाने के लिए दो प्राथमिक अनुशंसित तरीके हैं, और एक तीसरा यदि आप विशुद्ध रूप से विकास का वातावरण बनाने की कोशिश कर रहे हैं।

इमेजिंग

यदि आप जिस हार्डवेयर को पुनर्स्थापित कर रहे हैं, वह समान या समान होगा, तो हार्ड ड्राइव या सरणी की एक प्रतिलिपि बनाने के लिए डिस्क इमेजिंग टूल का उपयोग करें। जब आप पुनर्स्थापित करना चाहते हैं, तो बस इस छवि के साथ मशीनों को फिर से छवि दें। यदि आप कई मशीनों की छवि बनाते हैं, तो ध्यान रखें कि आपको अन्य उपकरणों (होस्टनाम, स्थिर आईपी पते, आदि ...) पर किसी भी मशीन-विशिष्ट सेटिंग्स को अपडेट करने की आवश्यकता होगी ताकि वे एक-दूसरे के साथ संघर्ष न करें।

वास्तविक इमेजिंग करने के लिए, मैं किसी भी उपकरण या उत्पाद की सिफारिश करूंगा जो हार्ड ड्राइव को क्लोन कर सकता है।

कॉन्फ़िगरेशन / होम निर्देशिका बैकअप

अपनी प्राथमिक मशीन पर, नियमित रूप से बैक अप (जो भी विधि आपको पसंद है) जो भी आपको आवश्यक है, निम्नलिखित निर्देशिकाओं (या अन्य) के साथ:

/ होम - सभी उपयोगकर्ता व्यक्तिगत सेटिंग्स, दस्तावेज, और फाइलें
/ आदि - विन्यास
/ ऑप्ट - विशेष सॉफ्टवेयर पैकेज प्रबंधक
/ usr / स्थानीय के माध्यम से स्थापित नहीं - विशेष सॉफ्टवेयर पैकेज प्रबंधक
/ संस्करण के माध्यम से स्थापित नहीं - लॉग और ऐसे

पुनर्स्थापित करते समय, ओएस को प्रश्न में मशीनों पर फिर से स्थापित करें, और फिर इनमें से प्रत्येक (या केवल प्रासंगिक फ़ाइलों) को उसके उचित स्थान पर कॉपी करें।

स्नैपशॉट के साथ वर्चुअल मशीनें

VMWare (या जो भी आप चाहें) में एक वर्चुअल मशीन बनाएँ। जब आप इसे होने की इच्छा के रूप में कॉन्फ़िगर किया गया है, एक स्नैपशॉट बनाएँ। फिर इस स्नैपशॉट को किसी भी नए या मौजूदा वर्चुअल मशीन में आसानी से बहाल किया जा सकता है।

सामान्य तौर पर, आपको केवल डेटा और कॉन्फ़िगरेशन का बैकअप लेना चाहिए (हालांकि आप इन्हें परिभाषित करते हैं)। OS और सॉफ़्टवेयर को किसी भी समय तुच्छ रूप से फिर से बनाया जा सकता है: केवल आपकी स्वयं की सामग्री मूल्यवान है। यदि यह सेटअप विकास के लिए है, और आपको एक समान वातावरण सुनिश्चित करने की आवश्यकता है (जैसा कि बस फिर से काम करने के लिए चीजें मिल रही हैं), तो वर्चुअल मशीन में स्नैपशॉट वास्तव में आपका सबसे अच्छा दांव है।

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

यदि आप स्पष्ट कर सकते हैं कि आपकी अंतिम मंशा यहां क्या है, तो मैं अधिक विस्तृत समाधान प्रदान कर सकता हूं।


0

चूंकि आप कहते हैं कि "हार्डवेयर अलग होगा", SystemImager बहुत काम आ सकता है।

यह PXE और Rsync के आसपास रैपर स्क्रिप्ट का एक गुच्छा है। इसलिए "बैकअप" जो इसे बनाता है, आपके बैक-अप लिनक्स सर्वर की पूरी निर्देशिका संरचना है। आप इस dir में "cd" कर सकते हैं और अपने आस-पास की सामग्री को बदल सकते हैं। (SystemImager जब आप छवि को बाहर धकेलते हैं, तो अपने आप ही नेटवर्क सेटिंग्स बदलने का प्रबंधन करता है।)

आप अपने बैक अप सर्वर में चुरोट कर सकते हैं और इमेज को पुश करने से पहले सॉफ़्टवेयर इंस्टॉल करने के लिए yum या apt चला सकते हैं।

संपादित करें: आप SI स्क्रिप्ट पर एक नज़र डाल सकते हैं जो विभाजन / तार्किक वॉल्यूम बनाती है और इसे लक्ष्य मशीनों के डिस्क आकार के अनुसार संशोधित करती है। आप कर्नेल मॉड्यूल भी जोड़ / हटा सकते हैं।


0

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

http://www.mondorescue.org/



0
  • सबसे सुरक्षित तरीका पूरे डिस्क या कम से कम प्रासंगिक विभाजन को क्लोन करना है और लाइव सीडी का उपयोग करके उन्हें पुनर्स्थापित करना है।

  • एक और अधिक कुशल विधि है डंप (XFSdump for XFS) का उपयोग करना, लेकिन इस मामले में आपको हाथों से विभाजन को फिर से बनाना होगा। उन्हें एक ही पैरामीटर, विशेषकर UUID और LABEL के साथ बनाना न भूलें।

  • प्रत्येक फ़ाइल की विस्तारित विशेषताओं को सहेजने के लिए आप पैरामीटर के साथ टार का भी उपयोग कर सकते हैं --xattrs


1
लिनक्स पर आधुनिक rsync में क्रमशः विस्तारित विशेषताओं और ACL के लिए -X और -A है।
18 अप्रैल को kbyrd

0

partimage और partclone (Clonezilla के भाग) पूर्ण सिस्टम इमेज बनाने के लिए उपयोगी उपयोगिताओं हैं।

जैसा कि आपने पहचाना, फुल सिस्टम इमेज जरूरी सिस्टम पोर्टेबल नहीं हैं: आमतौर पर डिवाइस नामों के कारण।

यह जीआरयूबी (अधिमानतः एक अलग / बूट विभाजन पर) और एमबीआर इमेजिंग के बाद (उदाहरण के लिए एक लाइवसीडी के साथ) के रूप में सरल हो सकता है।

एक अन्य दृष्टिकोण कॉन्फ़िगरेशन प्रबंधन उपकरणों का उपयोग उन नीतियों को परिभाषित करने के लिए है जो एक बेसलाइन छवि (जैसे वैग्रेंट बेस बॉक्स) पर लागू होती हैं; और ब्लॉक / और ऑब्जेक्ट स्टोरेज (ईबीएस / एस 3, ओपनस्टैक ब्लॉक स्टोरेज / ओपनस्टैक ऑब्जेक्ट स्टोरेज) में अलग-अलग डेटा बैकअप।

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