मैं एक हार्ड ड्राइव से दूसरे हार्ड ड्राइव में जीपीटी विभाजन योजना को जल्दी से कैसे कॉपी कर सकता हूं?


79

एक गैर GPT विभाजन तालिका पर मैं कर सकता हूँ

sfdisk -d /dev/sda | sfdisk /dev/sdb

लेकिन sfdiskGPT विभाजन तालिकाओं का समर्थन नहीं करता है। मैं इसके बजाय क्या उपयोग कर सकता हूं?

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


2
उपयोग-लिनक्स विभाजन उपकरण (सहित sfdisk) का उपयोग-लाइनक्स 2.26 के लिए GPT समर्थन शामिल करने के लिए फिर से लिखा गया था। sfdiskइस से अलग gdiskहै कि यह 1MiB से पहले एक छोटे बूट विभाजन को डालने का समर्थन नहीं करता है, हालाँकि, यह मेरे कॉन्फिग पर आधारित है। (बग ने पहले ही अपस्ट्रीम रिपोर्ट कर दी थी।)
पीटर कॉर्डेस

जब मैं MBR डिस्क को एक छोटी डिस्क पर क्लोन करता हूं, तो sfdisk -d के अलावा मैं डंप को संपादित करता हूं और स्टार्ट / एंड सेक्टर को संशोधित करता हूं। मैं GPT डिस्क के लिए sgdisk के साथ यह कैसे करूँ? मध्यस्थ बैकअप फ़ाइल और -b के बिना -R क्लोन एक बाइनरी बैकअप बनाता है, न कि मानव पठनीय / संपादन योग्य जैसे sfdisk करता है!
कॉस्टिन गुओ

इस पर अद्यतन: sfdisk अब स्वीकार करता है कि आप जो भी देते हैं वह इस तरह से उपयोग किया जाता है, जिसमें GPT के बाद एक छोटा बूट विभाजन शामिल है, 1MB पर समाप्त होता है। unix.stackexchange.com/a/12988/79808
पीटर कॉर्ड्स

कैसे के बारे में dd if=/dev/sda of=/dev/sdb?
जुनियररुबिस्ट

जवाबों:


122

Gdisk स्थापित करें जो उबंटू यूनिवर्स रिपॉजिटरी में उपलब्ध है।

फिर विभाजन तालिका को दोहराने के लिए sgdiskकमांड ( मैन पेज यहां ) का उपयोग करें :

sgdisk /dev/sdX -R /dev/sdY 
sgdisk -G /dev/sdY

पहली कमांड की विभाजन तालिका की प्रतिलिपि बनाती sdXहै sdY(सावधान रहें कि ये मिश्रण न करें)। दूसरा कमांड डिस्क और सभी विभाजनों पर GUID को यादृच्छिक करता है। यह केवल तभी आवश्यक है जब डिस्क का उपयोग उसी मशीन में किया जाए, अन्यथा यह अनावश्यक है।


9
यह जानकारी उन लोगों के लिए सुनहरा है जो एक असफल RAID-1 डिस्क को बदलना चाहते हैं। धन्यवाद!
क्रिश्चियन

@ क्रिसियन येप, यही मैंने इसके लिए इस्तेमाल किया।
क्रिश हार्पर

9
कोई भी विनाशकारी परिवर्तन करने से पहले, एक बैकअप अवश्य लें: sgdisk --backup=/some/safe/location/sdX.gpt /dev/sdXऔरsgdisk --backup=/some/safe/location/sdY.gpt /dev/sdY
माइकल क्रोपाट

11
यह कमांड काम करता है लेकिन यह ध्यान दिया जाना चाहिए कि ड्राइव ऑर्डरिंग उदाहरण में पीछे की ओर है। इसे लिखने का एक और अधिक स्पष्ट तरीका हैsgdisk /dev/sdX -R /dev/sdY
जेफ्री

2
@ क्रिसहैपर: वास्तव में यह करता है, लेकिन चूंकि प्रोग्राम कमांड लाइन को पार्स करने के लिए गेटटॉप का उपयोग करता है, इसलिए तर्क यह कहता है कि आदेश स्क्वाट नहीं करता है। मैन पेज को अपडेट किया जाना चाहिए।
जेफ्री

28

मैंने कोशिश की और यह मेरे काम नहीं आया। मुझे जो समाधान मिला वह है:

sgdisk --backup=table /dev/sda
sgdisk --load-backup=table /dev/sdb
sgdisk -G /dev/sdb

मैंने पाया कि यह समाधान बेहतर है, क्योंकि यह गैर-जीपीटी के साथ काम कर सकता है। मैं अंतिम कमांड भी बदलता हूं: sgdisk -g / dev / sdb
Locke

1
उपरोक्त काम करता है, आपको इस तथ्य पर ध्यान देने की आवश्यकता है कि उदाहरण थोड़ा पीछे है (हालांकि सही है)। sgdisk /dev/sdX -R /dev/sdYअधिक स्पष्ट है।
जेफ्री

5
पहले बैकअप, फिर रिस्टोर। मुझे लगता है कि यह ड्राइव को मिलाने के लिए अधिक सहज और कम मौका है।
Csq

8
dd if=/dev/sda of=GPT_TABLE bs=1 count=A
dd if=GPT_TABLE of=/dev/sdb bs=1 count=A
partprobe /dev/sdb

ए कहां है:

A=(128*B)+1024
B=parted -ms /dev/sda print |tail -1|cut -b1

1
यह सभी डिस्क और विभाजन GUID को भी क्लोन करता है जो कि आप जो चाहते हैं वह नहीं हो सकता है। इसके अलावा, यह डिस्क के अंत में बैकअप टेबल स्थापित नहीं करता है।
गोएर्टज़िनेटर

मुझे यह पसंद है! लेकिन लिखना पसंद करें: sed '$s/:.*//p;d'इसके बजाय tail -n1 | cut -b1यदि आप 9 से अधिक विभाजन करते हैं तो यह विफल हो जाएगा!
एफ। होरी

1
@goertzenator आप सही हैं, इसके लिए आप नियमित parted उपकरण चला सकते हैं , कुछ कर सकते हैं (जैसे किसी भी परेशान ध्वज को सेट करें no), यह दोनों सिरों पर विभाजन तालिका को फिर से लिख देगा!
एफ। होरी

आपने Bशीर्ष अनुभाग में कभी उपयोग नहीं किया ?
एरोन फ्रेंके

B एक मान है जिसका उपयोग ए। निकालने के लिए किया जाता है
dodexahedron

2

मैंने सिर्फ sgdisk के साथ प्रतिकृति की कोशिश की और यह ठीक काम करता है - आपको बस रीडलाइन सिंटैक्स नियमों का पालन करना होगा:

   sgdisk --replicate=/dev/target /dev/source

या

   sgdisk -R/dev/target /dev/source

और सब कुछ काम करता है।


3
ठीक यही मेरा जवाब है।
क्रिश हार्पर

-1

इसका सबसे सरल उत्तर है:

sudo sfdisk -d /dev/sda | sudo  sfdisk /dev/sdb --force

प्रतिस्थापन ड्राइव B (जो नई ड्राइव है) के A के 'अच्छे' विभाजन तालिका कॉन्फिगर को कॉपी करने के लिए।


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

2
आपका उत्तर GPT के लिए केवल गैर- GPT के लिए काम नहीं करता है
जन देव

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