डेबियन सिस्टम चलाने की सिस्टम छवि?


22

क्या चल रहे डेबियन सिस्टम को किसी प्रकार की छवि फ़ाइल में बैकअप करना संभव है, जो मूल (समर्थित) डेबियन सिस्टम की विफलताओं के मामले में dd का उपयोग करके किसी अन्य हार्ड डिस्क पर वापस लिखा जा सकता है?

मैं विशेष रूप से रिपॉजिटरी में सीधे उपलब्ध टूल की तलाश कर रहा हूं, क्योंकि मेरे पास डेबियन व्हीज़ी रास्पबेरी पाई पर चल रही है और इसलिए, मुझे एआरएम आर्किटेक्चर के लिए समर्थन की आवश्यकता है, जो डेबियन रिपॉजिटरी के पैकेज के लिए काफी विश्वसनीय है।


2
मैं आरडब्ल्यू-माउंटेड फाइल सिस्टम से ब्लॉक-फॉर-ब्लॉक कॉपी प्राप्त करने की कोशिश नहीं करूंगा। सबसे छोटा लेखन इसे भ्रष्ट कर सकता है और आपको लगता है कि आपके पास एक व्यावहारिक बैकअप है। तो mount -o remount,roआप जिस ड्राइव को कॉपी कर रहे हैं अगर आप उसका विकल्प चुनते हैं dd, dumpया इसी तरह का। फाइल सिस्टम के साथ rsyncया किसी अन्य विधि के साथ नकल cpकरना लाइव सिस्टम के लिए सुरक्षित है।
व्हिसिकलॉम्बैट

जवाबों:


15

ddअच्छा है यदि आप एक ऐसी छवि फ़ाइल बनाने से गुरेज नहीं करते हैं, जो आपके कच्चे डिस्क के आकार की है। rsyncयदि आप आसान फ़ाइल-स्तरीय पहुँच चाहते हैं तो अच्छा है। लेकिन एक फाइलसिस्टम का बैकअप लेने का मानक साधन ( dumpऔर ) है।restoreaptitude install dump

रास्पबेरी पाई जैसी डिवाइस के लिए, मैं MS-DOS पार्टीशन टेबल मानकर डिस्क को / dev / sda:

  • dd if=/dev/sda of=sda-boot-sectors.img count=2048 डिस्क के बूट अनुभाग की एक छवि प्राप्त करने के लिए।
  • fdisk -lu /dev/sda >sda-partition-table.txt बाद में मानव संदर्भ के लिए।
  • dump -0af sda1-root-level0.dump /dev/sda1 और प्रत्येक विभाजन के लिए दोहराएं जिसे आप बैकअप लेना चाहते हैं।

आप तब बहुत कुछ सेक कर सकते हैं और इसे कहीं सुरक्षित छोड़ सकते हैं। बहाल करने के लिए, आप ddविभाजन तालिका और बूट सेक्टरों को पुनर्स्थापित करने के लिए उपयोग करेंगे, विभाजन तालिका को फिर से लोड करेंगे, नई फाइलसिस्टम (ओं) को बनाएंगे, और उपयोग करेंगे cd /mnt/new-filesystem; restore -rf /some-location/sda1-root-level0.dump

अपसाइड्स:

  • dump ACLs, विस्तारित विशेषताओं, स्वामित्व, विरल फ़ाइलों, विशेष फ़ाइल सिस्टम विशेषताओं सहित - फाइलसिस्टम की पूरी प्रतिलिपि प्राप्त होती है - सब कुछ जैसे-जैसे डंप होता है।
  • अप्रयुक्तों को अनदेखा करते हुए, आपको केवल उन ब्लॉकों की कॉपी करनी होगी जिनकी आपको आवश्यकता है।
  • यह मानक यूनिक्स टूल है और बहुत से अन्य यूनिक्स टूल द्वारा पठनीय है।

चढ़ाव:

  • यदि फ़ाइल सिस्टम को डंप के दौरान लिखा गया है तो यह दूषित स्नैपशॉट का उत्पादन करेगा
  • बैकअप की गई छवि को माउंट करना अधिक कठिन है (जो आप डिस्क छवियों के साथ कर सकते हैं) या व्यक्तिगत फ़ाइलों (जो आप rsyncबैकअप के साथ प्राप्त कर सकते हैं ) को प्राप्त कर सकते हैं ।
  • यह फाइलसिस्टम प्रकार-विशिष्ट है। आप एक ext3फ़ाइल सिस्टम को डंप कर सकते हैं और इसे एक में पुनर्स्थापित कर सकते हैं ext4, लेकिन आप किसी भी प्रकार के फाइल सिस्टम को डंप कर सकते हैं । अधिकांश परिपक्व फाइलसिस्टम के अपने dumpसंस्करण हैं। मानक डेबियन dumpकरता है ext2, ext3और ext4। यदि आप फ़्लैश-विशिष्ट फ़ाइल सिस्टम का उपयोग करते हैं, तो आपके विकल्प भिन्न हो सकते हैं।

यह मैनपेज में नहीं बताया गया है dumpकि फाइलसिस्टम को लिखा नहीं जाना चाहिए। मेरा मतलब है, यह एक समझदार प्रतिबंध की तरह लगता है, लेकिन यह एक दया है कि इसका उल्लेख मैनपेज में नहीं है, ताकि कोई व्यक्ति यह त्रुटि कर सके ...
imz - Ivan Zakharyaschev

आपकी पोस्ट के लिए धन्यवाद, मैंने इस टूल (डंप / रिस्टोर) के बारे में सीखा है। मैं इसे एक फाइल सिस्टम की कॉपी बनाने के लिए उपयोग करने जा रहा हूँ जैसे:mkfs.ext4 /dev/sda1; mount /dev/sda1 /mnt/disk; cd /mnt/disk; dump -0af - /dev/sda5 | restore -rf -
imz - Ivan Zakharyaschev

5

ddबूट-सेक्टर और rsync -aHSफ़ाइलों के लिए उपयोग करें । आपको "वर्चुअल" फाइल सिस्टम जैसे कि / proc / sys और किसी RAM-disks (tmpfs) को बाहर करना होगा।

यदि आप विभाजन को भी रखना चाहते हैं, तो आप इसे डंप कर सकते हैं sfdiskया इसे फिर से बना सकते हैं parted


धन्यवाद, बहुत दिलचस्प लगता है, क्या आपने पहले से ही अतीत में इसे परेशान किया था? मैं इन हिस्सों में से एक पूर्ण छवि कैसे बनाऊं, बस एक लूपैक डिवाइस का उपयोग करें? (हाँ, विभाजन
वगैरह

@ stefan.at.wpf मैंने केवल VM को क्लोन करने के लिए अपने कुछ समाधानों को मिलाया, भौतिक सर्वर (ऑटॉयस्ट / किस्टार्ट) को बनाने के लिए एक गैर-मिरर किए गए सिस्टम से बाहर एक raid1- मिरर और प्रतिकृति (स्थिर) भागों के सामान्य तरीके फाइल सिस्टम क्लस्टर नोड्स के लिए। मैं इस myselv का उपयोग नहीं करते। मेरा तरीका नए सर्वर (एक बैकअप-क्लाइंट सहित) को ऑटोइन्स्टॉल करना होगा और फिर पुराने सर्वर की सामग्री को नए सर्वर पर बैकअप के माध्यम से पुनर्स्थापित करना होगा।
नेल्स

4

के लिए डेबियन , तुम सच में ही अपने बैक अप लेने की जरूरत है डेटा और विन्यास फाइल

मौजूदा स्थिति का बैकअप लेने के लिए:

  • साथ पैकेज चयन का बैकअप लें dpkg --get-selections > dpkg_selections
  • साथ debconf डेटाबेस का बैकअप लें sudo debconf-get-selections > debconf_selections

इसे एक नई प्रणाली में लागू करने के लिए:

  • सबसे पहले debconf चयन के साथ आवेदन करें sudo debconf-set-selections < debconf_selections
  • के साथ पैकेज चयन लागू करें dpkg --set-selections < dpkg_selections
  • के साथ पैकेज स्थापित करें apt-get dselect-upgrade

आपका डाटा मुख्य रूप में होना चाहिए /homeऔर /var(जैसे, /var/lib/mysqlMySQL के लिए, /var/wwwअपाचे, आदि के लिए)। आपको यह पता लगाने में सक्षम होना चाहिए कि आपके लिए कौन से एप्लिकेशन महत्वपूर्ण हैं।

कॉन्फ़िगरेशन मुख्य रूप से होगा /etc। फिर, यह चुनना मुश्किल नहीं होना चाहिए कि आपके लिए क्या महत्वपूर्ण है।


करने के लिए debconf-get-selectionचलानेapt-get install debconf-utils
पंडिता

1

मुझे नहीं पता, अगर यह करना अच्छा है, जब सिस्टम चल रहा है, लेकिन यह वही है जो मैं करता हूं।

sudo dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

जैसा कि मैंने कहा, शायद एक बेहतर समाधान है, उस स्थिति में मैं इसे भी जानना चाहूंगा!


1

मैंने बहुत बैकअप की कोशिश की है और सॉफ़्टवेयर को पुनर्स्थापित किया है और कभी खुश नहीं था। यह वही है जो अब मैं करता हूं: मेरे पास एक अतिरिक्त कंप्यूटर पर एक ही डेबियन स्थापित है (वही एमबी, एनआईसी कार्ड, आदि)। हर शाम मैं मशीन ए से मशीन बी तक rsync करता हूं। कुछ फाइलें हैं जो मैं वापस चला रहा हूं (/ etc / network / interfaces, / etc / host, / etc / hostname) क्योंकि मैं दो रनिंग सिस्टम के टकराव नहीं चाहता। वास्तव में, मैं एक और फ़ोल्डर में उनकी प्रतियां है। मैं कुछ सेवाओं को भी अक्षम करता हूं जिन्हें मुझे मशीन बी (पोस्टफिक्स, मायस्कल, आदि) पर चलाने की आवश्यकता नहीं है। मेरे पास मशीन बी पर लिखी गई एक स्क्रिप्ट है जो मूल रूप से मशीन ए में बदल जाएगी (उन फ़ाइलों को प्रतिस्थापित करें जिन्हें मैंने वापस आयोजित किया था), एनआईसी को पुनरारंभ करें और अक्षम की गई सेवाओं को सक्षम करें। बेशक मशीन ए को स्क्रिप्ट चलाने के लिए बंद होने की जरूरत है या फिर कहर होगा। मैं मशीन A को बंद करके मशीन B का परीक्षण करता हूं, स्क्रिप्ट चला रहा हूं, और यह सुनिश्चित करने के लिए कुछ परीक्षण कर रहे हैं कि यह अद्यतित है और ठीक से चल रहा है। यह एक सम्मोहन की तरह काम करता है!


0

Clonezilla की जाँच करें। मैं इसे मानक डेबियन रिपो में सूचीबद्ध देखता हूं। http://clonezilla.org/

संपादित करें: संभवतः नहीं, उनके सामने पृष्ठ पर क्लोनज़िला सूची की आवश्यकताएँ: "X86 या x86-64 प्रोसेसर"


दिलचस्प परियोजना हालांकि, धन्यवाद वैसे भी :-)
stefan.at.wpf

0

अपने पीआई का बैकअप लेने के लिए, मैं माइक्रोएसडी कार्ड निकालता हूं, और इसे अपने लैपटॉप में प्लग करता हूं। फिर ddऊपर के अनुसार, पूरे डिस्क के मेरे लैपटॉप पर एक फ़ाइल बनाने के लिए चलाएं :

dd if=/dev/mmcblk0 of=/path/to/backup/directory/backup.img bs=1M

2
यह शाब्दिक रूप से प्रश्न का सबसे महत्वपूर्ण हिस्सा है। सवाल यह पूछ रहा है कि किसी सिस्टम की लाइव इमेज कैसे करें और जब तक आप अपने आस-पास डिस्क्स को घुमा रहे हों, तब तक सिस्टम को बंद कर दें।
सायरन

0

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

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