बूट करने योग्य USB स्टिक को अलग-अलग आकार की स्टिक पर क्लोन करना


11

हार्डवेयर: 2 8GB USB फ्लैश ड्राइव
DISTRO: मिंट 9 Xfce लगातार लाइव सीडी

एक USB फ्लैश ड्राइव में दो विभाजन होते हैं:
1) FAT32 700MB पुदीना 9 विभाजन
2) ext3 7.3GB casper-rwविभाजन

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

अनुभव:
1) मैंने पाया है कि ddइस काम के लिए काम नहीं करता है क्योंकि अगर मेरी एक फ्लैश ड्राइव आकार में 1MB भी भिन्न है, जो कभी-कभी वे होती है, तो प्रतिलिपि दूषित हो जाती है।

2) मैंने पाया है कि gpartedपहले की तरह दूसरी ड्राइव का उपयोग और प्रीफॉर्मेट करना और फिर rsyncप्रत्येक विभाजन को व्यक्तिगत रूप से काम नहीं करता है क्योंकि किसी कारण से कुछ फाइलें कॉपी नहीं हो पाती हैं और ड्राइव अप्राप्य रहता है।

मैं अपनी वर्किंग स्टिक रखना चाहता हूं और बस इसकी प्रतियां बना सकता हूं और अपने दोस्तों के लिए स्टिक को कॉन्फ़िगर कर सकता हूं। इस तरह अगर मैं दूसरी छड़ी उठाता हूँ तो मैं हमेशा अपने बेस स्टिक को प्रतीक्षा में बैठा रहता हूँ।


आप क्या बूटलोडर का उपयोग करते हैं? कृपया अपने पद से उस पद को हटाने पर विचार करें, यह आपके प्रश्न के लिए कोई मूल्य नहीं जोड़ता है।
Mat

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

जवाबों:


6

परिचय

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

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

एक अलग आकार का क्लोन बनाना

नीचे मैं डिवाइस को मूल छड़ी /dev/sdbऔर क्लोन युक्त डिवाइस कहूंगा /dev/sdc; आवश्यकतानुसार नाम स्थानापन्न। जरूरत पड़ने पर माउंट प्वाइंट बनाएं। मुझे लगता है कि FAT32 विभाजन (डिस्क की शुरुआत में) की संख्या 1 है और ext3 विभाजन की संख्या 2 है; यदि आवश्यक हो तो विभिन्न संख्याओं को प्रतिस्थापित करें।

पहला भाग, यदि एक छड़ी से क्लोनिंग:

head -c 512 </dev/sdb >/dev/sdc
partprobe /dev/sdc
cat </dev/sdb1 >/dev/sdc1

पहला भाग, यदि छवि फ़ाइलों से क्लोनिंग:

cat boot_sector.img >/dev/sdc
partprobe /dev/sdc
cat first_partition.img >/dev/sdc1

कॉल करने partprobeकी आवश्यकता है ताकि कर्नेल डिस्क से विभाजन तालिका को पुनः लोड कर ले (यह बूट क्षेत्र में है, और ऊपर के परिदृश्य में पहला कमांड बूट क्षेत्र को संशोधित करता है)। यदि आप इसे छोड़ देते हैं, तो आपको त्रुटियां मिलेंगी या कर्नेल चुपचाप छड़ी को कचरा लिख ​​देगा।

छवि फ़ाइलें बनाने के लिए:

head -c 512 </dev/sdb >boot_sector.img 
cat /dev/sdb1 >first_partition.img

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

sed -e 's/ *#.*//' <<EOF | tr -s ' ' '\n' | tr -d _ | fdisk /dev/sdc
d 2         # delete partition 2
n p 2       # new primary partition 2...
_ _         # ... using all available space
w q         # write and quit
EOF

अंत में विभाजन तालिका को फिर से लोड करें, एक ext3 फाइल सिस्टम बनाएं, और वहां फाइलों को कॉपी करें।

partprobe /dev/sdc
mke2fs -j /dev/sdc2
mount /dev/sdc2 /media/sdc2
cp -a /media/sdb2/ /media/sdc2/
umount /media/sdc2

एक बड़ा क्लोन बनाने के लिए सरलीकृत विधि

यदि आप चाहें, तो आप पूरे स्टिक की एक छवि संग्रहीत कर सकते हैं। आप उस छवि का उपयोग सीधे किसी भी छड़ी पर कर सकते हैं जो कम से कम बड़ी है: बस उस छवि को नई छड़ी पर कॉपी करें cat <whole.img >/dev/sdc, फिर partprobe /dev/sdcविभाजन तालिका को फिर से पढ़ने के लिए चलाएं (या छड़ी को अनप्लग करें और इसे वापस डाल दें)।

फिर, यदि आप चाहें, तो आप क्लोन को बड़ा कर सकते हैं। इस क्रम में:

  1. विभाजन बढ़ाएँ। दुर्भाग्य से, मुझे नहीं पता कि यह कैसे सरल तरीके से करना है। partedइसे moveकमांड के साथ कर सकते हैं (नहीं resize, जो फ़ाइल सिस्टम का आकार बदलता है), लेकिन आपको unit sराउंडिंग त्रुटियों से बचने के लिए सही तर्क - सेक्टर पर स्विच ( ) करने की आवश्यकता है।
  2. फ़ाइल सिस्टम बढ़ाएँ। यह हिस्सा आसान है: resize2fs /dev/sdc2फाइल विभाजन को पूरे विभाजन आकार का उपयोग करने के लिए बस चलाएं ।

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

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

fdisk -lu whole.img  # note starting sector of partition 2: $S
losetup -fs -o $(($S * 512)) whole.img
# Let $D be the desired size of partition 2, in kB
resize2fs /dev/loop0 $  # replace /dev/loop0 by whatever losetup prints
losetup -d /dev/loop0
parted whole.img
# Use parted to resize the second partition
dd if=/dev/null of=/file/to/truncate seek=1 bs=$(($S/2+$D+1))k

हम्म। क्या मैं सिर्फ सिर का उपयोग नहीं कर सकता सिर्फ पहली 300mb या दूसरे विभाजन की एक img फ़ाइल में कॉपी कर सकता हूं? फ़ाइल के अंत में सभी खाली स्थान / खाली ब्लॉकों को नहीं काटेंगे?
जोशुआ रॉबसन

1
@ जोशुआ: नहीं, क्योंकि कोई कारण नहीं है कि सभी फ़ाइल डेटा पहले 300 एमबी में होंगे, और यहां तक ​​कि अगर यह था कि आप बस उस तरह एक फाइल सिस्टम का हिस्सा नहीं ले सकते। आपको सही आकार का एक मान्य फाइल सिस्टम बनाने की आवश्यकता है। आपको सही आकार का एक विभाजन भी करना होगा; विभाजन का आकार बूट सेक्टर में संग्रहीत है। यदि आप एक न्यूनतम आकार की छवि से शुरू करना चाहते हैं और यदि वांछित है तो इसे बढ़ाना चाहते हैं, मैंने अपने जवाब में ऐसा करने का एक तरीका जोड़ा है।
गिलेस एसओ- बुराई को रोकना '

हम्म। मैंने पहले फाइलों को कॉपी करने की कोशिश की लेकिन किसी कारण से सब कुछ कॉपी नहीं हुआ। मैं भी sudo के साथ rsync की कोशिश की। और मुझे लगता है कि मैंने र रूट की कोशिश की और यह भी किया .... यह सिर्फ मेरे लिए काम नहीं कर रहा है। मुझे यकीन है कि ड्राइव माउंट नहीं किए गए थे ... वैसे भी। मैंने ड्राइव को gparted में सिकोड़ने का निर्णय लिया और फिर उसी से img फाइलें बनाईं और फिर उन्हें एक छोटी सी डिस्क पर पुनर्स्थापित किया। पहले से सिकुड़ा हुआ एक छोटा सा सरल उपाय था जिसे मैं पा सकता था। यद्यपि कि आपकी इस सहायता के लिए धन्यवाद।
जोशुआ रोबिसन

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

क्या इस लाइन में कोई टाइपो है head -c 512 </dev/sdb >/bev/sdc?
एंटोनियो

3

~ $: sudo apt-get install gddrescue ddrescue

~ $: ddresoscope / dev / sda / dev / sdb -v

;

सिंटेक्स: यूटिलिटी / सोर्स / ड्राइव / डेस्टिनेशन / ड्राइव --verbose

टिप्पणी: प्रगति और त्रुटि जाँच दिखाता है ताकि आप जान सकें कि यह स्वीकार्य है या कहीं लटका हुआ है। आप b = जो भी साइज ब्लॉक चाहें, जोड़ सकते हैं। "gddrescue" "ddrescue" का gui आधारित संस्करण है, लेकिन मैं केवल ddrescue का उपयोग करता हूं जैसा कि ऊपर लिखा गया है क्योंकि यह एक समस्या के बिना काम करता है।


2
ध्यान दें कि उचित प्रारूप है ddrescue -v /dev/sda /dev/sdb(विकल्प उपकरणों / फ़ाइलों के नाम से पहले आते हैं)। इस उपकरण को इंगित करने के लिए धन्यवाद! उपयोग करने की तुलना में बहुत आसान है dd!
xnnboy

0

मैंने हाल ही में अपनी काली लाइव एनक्रिप्टेड दृढ़ता को एक 16GB से 64GB 3.0 USB पर क्लोन किया था, मेरा होस्ट ओएस विंडोज 7 प्रो है। मैंने किसी भी लिनक्स डिस्ट्रो का उपयोग करके क्लोन करने का प्रयास नहीं किया था, मुझे यकीन है कि ऊपर दिए गए उत्तर हैं जो आपको चाहिए, लेकिन किसी भी विंडोज़ उपयोगकर्ताओं के लिए; मैंने AOMEI डिस्क विभाजन सहायक का उपयोग किया था। उपयोग करने के लिए सुपर सरल, इसका इस्तेमाल उबंटू को फिट करने के लिए मेरे एसएसडी के विभाजन के लिए किया गया था, लेकिन मैं पचाता हूं।

मुझे यह सुनिश्चित करना था कि जिस USB I को क्लोन किया जा रहा था, वह पहले से ही लाइव बूटिंग के लिए फॉर्मेट किया गया था। दोनों USB में प्लग किया गया और बस 8GB ड्राइव पर राइट क्लिक किया गया; copy64GB ड्राइव को चुनने पर क्लिक करने पर , यह आपसे चीजों का एक गुच्छा पूछेगा "जैसे कि आपको यकीन है कि यह सही ड्राइव है, सब कुछ मिटा दिया जाएगा" यह सब जाज है। बस इसके माध्यम से पढ़ें और सुनिश्चित करें कि सब कुछ क्रम में है, आपको वास्तव में बहुत कुछ करने की ज़रूरत नहीं है।

बस प्रक्रिया समाप्त होने की प्रतीक्षा करें और आप सभी सेट हो जाएं। परीक्षण ने कहा कि USB और सब कुछ काम किया!

मैंने पाया कि यह कम से कम मेरे लिए सबसे आसान तरीका है, यूएसबी से यूएसबी पर लाइव डिस्ट्रोस की क्लोनिंग।

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