क्या मैं एक बड़े एसडी कार्ड को छोटे एसडी कार्ड में क्लोन करने के लिए dd का उपयोग कर सकता हूं यदि वास्तविक विभाजन फिट होगा?


9

मेरे पास एक 16GB एसडी कार्ड है जिस पर कुछ विभाजन हैं (यह वास्तव में रास्पबेरी पाई का कार्ड है)। मेरे पास कई अन्य 4 जीबी कार्ड हैं जिन्हें मैं प्राथमिक कार्ड को क्लोन करना चाहता हूं। प्राथमिक कार्ड पर 3 विभाजन हैं:

  • रास्प बूट विभाजन, एफएटी, 60 एमबी
  • लिनक्स विभाजन, ext2, 1GB
  • अतिरिक्त "भंडारण" विभाजन, एफएटी, 1 जीबी

अगर मैं ddकार्ड की एक छवि बनाने के लिए उपयोग करता हूं :

dd if=/dev/sdb of=~/sd-card.bin

तब परिणामी .bin का आकार 16GB है। वहाँ एक तरीका है ddजो वास्तव में इस्तेमाल किया जा रहा है कॉपी करने के लिए उपयोग करने के लिए है, यानी <4GB इतना है कि मैं तो ddयह एक नया 4GB कार्ड पर कर सकते हैं ? या क्या कोई बेहतर उपाय है जिसका मुझे उपयोग करना चाहिए?


मैंने एक नए 4GB कार्ड पर सटीक सामग्री बनाने और ddअन्य कार्डों की मात्रा के साथ क्लोनिंग को समाप्त किया । फिर भी, जानना चाहेंगे कि क्या प्रारंभिक समस्या को हल करना संभव है।

जवाबों:


9

मुझे लगता है कि आप एक पीसी लिनक्स या मैक कंप्यूटर का उपयोग कर रहे हैं कॉपी करने के लिए, न कि रास्पबेरी पाई। आपको संभवतः एक ब्लॉक आकार जोड़ना होगा।

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

आप "गणना" का उपयोग करके dd द्वारा कॉपी किए गए डेटा की कुल मात्रा को सीमित कर सकते हैं। "गणना" ब्लॉकों की इकाइयों में है। यदि स्रोत डिस्क पर अंतिम विभाजन का अंत गंतव्य के आकार से पहले है तो आप वह कर सकते हैं जो आप चाहते हैं।

कुछ इस तरह dd if=/dev/sdb of=~/sd-card.bin bs=1M count=4000की छवि बनाएगा जो आकार में 4000MB है।

देखें http://en.wikipedia.org/wiki/Dd_(Unix) और http://elinux.org/RPi_Easy_SD_Card_Setup अधिक जानकारी के लिए। निश्चित नहीं है कि अंतिम विभाजन या कार्ड के कुल आकार का पता कैसे लगाया जाए। हालाँकि यदि आपने डिस्क को स्वरूपित कर लिया है तो आप शायद यह जान पाएंगे कि यह कैसे करना है।


जानकारी के लिए धन्यवाद। मुझे गिनती के विकल्प की जानकारी नहीं थी। मैं कोशिश करता हूँ कि।

@charlie आकर्षक होगा यदि आप इसे बिना गिनें विकल्प के साथ आज़मा सकते हैं और वापस रिपोर्ट कर सकते हैं। हालांकि यह जांचना सुनिश्चित करें कि डिस्क का आकार कैसे बताया जा रहा है, और यदि आप इसमें फाइलें जोड़ सकते हैं और आकार बदल जाता है। 'क्योंकि जब dd विभिन्न आकार के डिस्क से संबंधित विफल हो जाता है, तो आपको इस तरह की समस्याएं आती हैं। यहां एक उदाहरण है जहां मैंने दो अलग-अलग आकार के ड्राइव के साथ dd के साथ गड़बड़ की। superuser.com/questions/538583/difficulty-resizing-a-partition अंत में मैंने क्लोन का उपयोग करने के लिए dd का उपयोग नहीं किया।
बार्लोप

3

विलियम के जवाब पर विस्तार करते हुए , कोई अंतिम विभाजन के उपयोग fdiskऔर एक कैलकुलेटर की गणना कर सकता है:

$ fdisk -l /dev/mmcblk0

Disk /dev/mmcblk0: 7.4 GiB, 7948206080 bytes, 15523840 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x00057540

Device         Boot  Start     End Sectors  Size Id Type
/dev/mmcblk0p1        2048  186367  184320   90M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      186368 3667967 3481600  1.7G  5 Extended
/dev/mmcblk0p5      188416 3667967 3479552  1.7G 83 Linux

अंतिम विभाजन X सेक्टर आकार के बाइट्स = अंतिम क्षेत्र में कुल इस्तेमाल किया गया स्थान (यहाँ 3667967 x 512 है)।

GB में कुल उपयोग किया गया स्थान = बाइट्स / 1024 3 में कुल उपयोग किया गया स्थान (यहाँ 1.749023 GB है)।

आमतौर पर, यह एक ऐसी छवि बनाने के लिए महत्वपूर्ण नहीं है, जो डेटा के अंतिम उपयोगी बिट के लिए सही है, इसलिए उपरोक्त उदाहरण में मैं विलियम द्वारा वर्णित विधि का उपयोग करके 2 जीबी की एक छवि बनाऊंगा, जो पहले उत्तर में थी :

dd if=/dev/mmcblk0 of=/path/to/pi_updated.img bs=1M count=2048

छवि के अंत में शामिल आपके पिछले उपयोगी डेटा के बाद बेकार guff का एक छोटा सा हिस्सा होगा, लेकिन यह बेकार के सिद्धांत से अलग नहीं है, जब आप अपने मीडिया को छवि वापस लिखते हैं, तो इसे अलग कर दिया जाएगा।

यह विधि मेरे लिए एक दर्जन या इतने क्लोन पर काम कर रही है। यदि इस पद्धति में कोई घातक दोष हैं, तो वे अभी तक सामने नहीं आए हैं।

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