আমি কীভাবে একটি GPT পার্টিশন স্কিমটি একটি হার্ড ড্রাইভ থেকে অন্য হার্ড কপি করতে পারি?


79

জিপিটি বিহীন পার্টিশনের টেবিলে আমি করতে পারি

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

তবে sfdiskজিপিটি পার্টিশন টেবিলগুলি সমর্থন করে না। পরিবর্তে আমি কী ব্যবহার করতে পারি?

আমি একটি বা দুটি কমান্ড সমাধানের সন্ধান করছি, পার্টিশনের আকারগুলি আউটপুট দেওয়ার জন্য GNU পার্টেড ব্যবহার না করে আবার সেগুলি নিজেই তৈরি করব।


2
ইউজার-লিনাক্স পার্টিশন সরঞ্জামগুলি (সহ sfdisk) ইউপি-লিনাক্স ২.২26 এর জন্য জিপিটি সমর্থন অন্তর্ভুক্ত করার জন্য পুনরায় লেখা হয়েছিল। এটি 1MiB এর আগে একটি ছোট বুট পার্টিশন রাখার পক্ষে সমর্থন করে না তার sfdiskথেকে পৃথক gdisk, সুতরাং এটি আমার কনফিগারেশনে চেপে গেছে। (বাগ ইতিমধ্যে উজানের প্রতিবেদন করা হয়েছে))
পিটার কর্ডেস

যখন আমি একটি এমবিআর ডিস্কটি একটি ছোট ডিস্কে ক্লোন করি তখন এসফডিস্ক-ডি ছাড়াও আমি ডাম্প সম্পাদনা করি এবং প্রারম্ভিক / শেষের ক্ষেত্রগুলি সংশোধন করি। জিপিটি ডিস্কের জন্য স্যাডডিস্ক দিয়ে আমি কীভাবে এটি করব? মধ্যস্থতাকারী ব্যাকআপ ফাইল ছাড়াই -আর ক্লোনগুলি এবং -b একটি বাইনারি ব্যাকআপ তৈরি করে, মানব পাঠযোগ্য / এসডিডিএসকের মতো সম্পাদনযোগ্য নয়!
কস্টিন গুউ

এটি আপডেট করুন: এসপিডিস্ক এখন জিপিটি অনুসরণ করে একটি ছোট বুট পার্টিশন সহ 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(এই তালগোল না সতর্কতা অবলম্বন করা)। দ্বিতীয় কমান্ড ডিস্ক এবং সমস্ত পার্টিশনের জিইউডি এলোমেলো করে দেয়। এটি কেবল তখনই প্রয়োজনীয় যখন ডিস্কগুলি একই মেশিনে ব্যবহার করতে হয়, অন্যথায় এটি অপ্রয়োজনীয়।


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
@ ক্রিশহার্পার: বাস্তবে এটি হয়, তবে যেহেতু প্রোগ্রামটি কমান্ড লাইনের যুক্তিগুলি পার্স করার জন্য getopt ব্যবহার করে যাতে অর্ডারিংয়ের পক্ষে স্কোয়াট কোনও ব্যাপার নয়। ম্যান পৃষ্ঠাটি আপডেট করা উচিত।
জিফ্রি

28

আমি চেষ্টা করেছি এবং এটি আমার পক্ষে কার্যকর হয়নি। আমি যে সমাধানটি পেয়েছি তা হ'ল:

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

আমি এই সমাধানটি আরও ভাল হিসাবে খুঁজে পেয়েছি, কারণ এটি জিপিটিবিহীন কাজ করতে পারে। আমি সর্বশেষ কমান্ডটিও এতে পরিবর্তন করি: স্যাডডিস্ক-জি / ডেভ / এসডিবি
লক

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
এটি সমস্ত ডিস্ক এবং পার্টিশন জিইউইডিগুলিও ক্লোন করে যা আপনি যা চান তা নাও পারে। এছাড়াও, এটি ডিস্কের শেষে ব্যাকআপ টেবিলটি ইনস্টল করে না।
goertzenator

আমি এইভাবে পছন্দ! তবে লিখতে পছন্দ করুন: sed '$s/:.*//p;d'পরিবর্তে tail -n1 | cut -b1এটি ব্যর্থ হবে যদি আপনার 9 টিরও বেশি পার্টিশন থাকে!
এফ। হাউরি

1
@goertzenator আপনি ঠিক বলেছেন, এর জন্য আপনি নিয়মিত parted সরঞ্জাম চালাতে পারেন , কিছু করতে পারেন (যেমন কোনও আনসেট পতাকা সেট করে no), এটি উভয় প্রান্তে পার্টিশন টেবিলটি আবার লিখবে!
এফ। হাউরি

আপনি Bশীর্ষ বিভাগে ব্যবহার করেন নি ?
অ্যারন ফ্র্যাঙ্ক

বি একটি মান খুঁজে বের করার জন্য ব্যবহৃত এ
ডডেক্সএহেড্রন

2

আমি কেবল স্যাডডিস্কের সাথে প্রতিলিপি চেষ্টা করেছি এবং এটি ঠিক কাজ করে - আপনার কেবল পঠনের বাক্য গঠন বাক্য অনুসরণ করতে হবে:

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

অথবা

   sgdisk -R/dev/target /dev/source

এবং সবকিছু কাজ করে।


3
আমার উত্তরটি ঠিক এটাই বলে।
ক্রিস হার্পার

-1

এর সহজ উত্তর:

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

প্রতিস্থাপন ড্রাইভ বিতে (যা নতুন ড্রাইভ) এ'র 'ভাল' পার্টিশন টেবিল কনফিগার করতে পারেন।


আপনি প্রশ্নের যে অংশটি ব্যাখ্যা করেছেন এটি কেন এটি বিকল্প নয় তা আপনি মিস করেছেন।
ডেভিডডাব্লু

2
আপনার উত্তর নেই কাজ করে না জন্য GPT শুধুমাত্র অ GPT
জানুয়ারী দেব

sfdiskএটির বর্তমান সংস্করণে কাজ করে।
গার্ট ভ্যান ডেন বার্গ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.