मक्खी पर dd बैकअप संपीड़ित करना


23

शायद यह गूंगा सवाल की तरह लग रहा है, लेकिन जिस तरह से मैं यह करने की कोशिश कर रहा हूँ वह काम नहीं करता है।

मैं livecd पर हूँ, ड्राइव अनमाउंट है, आदि।

जब मैं इस तरह से बैकअप करता हूं

sudo dd if=/dev/sda2 of=/media/disk/sda2-backup-10august09.ext3 bs=64k

... आम तौर पर यह काम करेगा, लेकिन मेरे पास बाहरी HD पर पर्याप्त जगह नहीं है जिसकी नकल कर रहा हूं (यह ALMOST इसमें फिट बैठता है)। इसलिए मैं इस तरह से सेक करना चाहता था

 sudo dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz

... लेकिन मुझे अनुमति नहीं मिली। मुझे समझ नहीं आ रहा है।


2
मत करो। यह कोई बैकअप नहीं है। 'डंप' और 'रिस्टोर' कमांड को चेक करें।
जूलियानो

या टार या cpio ....
क्रिस करें

1
जूलियानो, is यह बैकअप नहीं है ’से आपका क्या तात्पर्य है?
फिल

5
यह बैकअप नहीं है क्योंकि बैकअप गंभीर, अच्छी तरह से संरचित हैं और बैकअप बनाने के लिए उचित उपकरण का उपयोग करते हैं। आप बस एक विभाजन के कच्चे डेटा की एक प्रति बना रहे हैं। इस डेटा को पुनर्स्थापित करने के लिए, आपको उसी ज्यामिति के साथ एक और विभाजन की आवश्यकता होगी, जिसकी गारंटी नहीं है। इसके अलावा, यदि आप अपने संग्रह (सुपरब्लॉक, इनोड टेबल, रूट डायरेक्टरी, आदि) के एक भी ब्लॉक को नुकसान पहुंचाते हैं, तो आप अपना सारा डेटा खो देते हैं। एक उचित बैकअप के साथ ऐसा नहीं होगा।
जूलियानो

7
"इस डेटा को पुनर्स्थापित करने के लिए, आपको उसी ज्यामिति के साथ एक और विभाजन की आवश्यकता होगी, जिसकी गारंटी नहीं है" उसे इसकी आवश्यकता क्यों होगी, क्या वह विभाजन छवि को लूपबैक डिवाइस पर माउंट नहीं कर सकता है?
काइल ब्रान्ड

जवाबों:


41

क्या आपके पास sda2-backup ... gz फ़ाइल तक पहुँच है? सूडो इसके बाद केवल कमांड के साथ काम करता है, और पुनर्निर्देशन पर लागू नहीं होता है। यदि आप चाहते हैं कि यह पुनर्निर्देशन पर लागू हो, तो शेल को रूट के रूप में चलाएं, ताकि सभी बच्चों की प्रक्रिया रूट हो:

sudo bash -c "dd if=/dev/sda2 | gzip > /media/disk/sda2-backup-10august09.gz"

वैकल्पिक रूप से, आप डिस्क को uid / gid आरोह विकल्प (ext3 मानकर) के साथ माउंट कर सकते हैं, इसलिए आपके पास जो भी उपयोगकर्ता हैं, उनके पास अनुमतियाँ हैं। या, फ़ोल्डर का निर्माण करने के लिए रूट का उपयोग करें / मीडिया / डिस्क जिसके लिए आपके पास अनुमतियाँ हैं।

अन्य जानकारी जो आपकी मदद कर सकती है:

  • ब्लॉक का आकार केवल वास्तव में सबसे अधिक भाग के लिए गति के लिए मायने रखता है। डिफ़ॉल्ट 512 बाइट्स है जो आप एमबीआर और फ्लॉपी डिस्क के लिए रखना चाहते हैं। एक बिंदु पर बड़े आकार को संचालन को गति देना चाहिए, इसे एक बफर के अनुरूप समझना चाहिए। यहां किसी ऐसे व्यक्ति के लिए लिंक दिया गया है जिसने विभिन्न ब्लॉक आकारों के साथ कुछ गति बेंचमार्क किए। लेकिन आपको अपना परीक्षण स्वयं करना चाहिए, क्योंकि प्रदर्शन कई कारकों से प्रभावित होता है। Andreas द्वारा अन्य उत्तर पर भी एक नज़र डालें
  • यदि आप इसे ssh और netcat के साथ नेटवर्क पर पूरा करना चाहते हैं, तो हो सकता है कि जगह किसी मुद्दे से उतनी बड़ी न हो, तो इस सर्वरटैक्स प्रश्न को देखें
  • क्या आपको वास्तव में विभाजन की छवि की आवश्यकता है, बेहतर बैकअप रणनीति हो सकती है?
  • dd एक बहुत ही खतरनाक कमांड है, ofइसके बजाय उपयोग करें ifऔर आप ओवरराइटिंग करते हैं जो आप बैकअप करने की कोशिश कर रहे हैं !! ध्यान दें कि चाबियाँ oऔर iएक दूसरे के बगल में कैसे हैं? इसलिए बहुत सावधान रहें।

मैं यह कोशिश करता हूँ। मैं इसे कैसे बनाऊं bs = 64 k (और क्या मुझे करना है?)
फिल

Bs = 64k केवल ट्रांसफ़र को तेज़ बनाता है क्योंकि dd 64k के ब्लॉक्स को डिफॉल्ट ब्लॉक साइज़ के बजाय (मैं याद नहीं करता) पढ़ूँगा।
क्रिस

क्रिस ने क्या कहा, और यदि आप इसे शामिल करना चाहते हैं तो इसे dd के बाद और पाइप के सिंबल (!) से पहले डाल दें क्योंकि यह dd का तर्क है।
काइल ब्रान्ड

1
मैं कभी-कभी पाइप लाइन में "sudo tee $ file> / dev / null" का उपयोग एक ऐसी फाइल को लिखने की अनुमति देने के लिए भी करूंगा, जिसमें मेरे उपयोगकर्ता खाते की भी पहुंच नहीं है।
रिक श्नाइडर

6

पहले मामले में, dd रूट के रूप में चल रहा है।

दूसरे मामले में, dd रूट के रूप में चल रहा है लेकिन gzip आपके अनुसार चल रहा है।

/ मीडिया / डिस्क पर अनुमतियाँ बदलें, अपने आप को एक रूट शेल दें, या gzip को रूट के रूप में भी चलाएं।


3

इसके अलावा, आप bzip2 --bestबेहतर बेहतर संपीड़न के लिए gzip को बदल सकते हैं :

sudo dd if=/dev/sda2 | bzip2 --best > /media/disk/$(date +%Y%m%d_%H%M%S)_sda2-backup.bz2

3
बहुत समय की लागत पर। देखें changelog.complete.org/archives/... अधिक जानकारी के लिए "कैसे संपीड़न के बारे में सोचना"।
बिल वीस

@BillWeiss: आपकी टिप्पणी के लिए धन्यवाद, बहुत दिलचस्प पढ़ा!
andreas

संपीड़न: lzma> bzip2> gzip .. गति: gzip> bzip2> lzma। जब तक आप इंटरनेट पर डिस्क छवि को प्रकाशित नहीं कर रहे हैं, तब तक समय, सीपीयू शक्ति और मेमोरी जो आप एक बेहतर संपीड़न के लिए खर्च कर रहे हैं, के लिए बहुत लाभ नहीं है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.