আনলোকেটেড পার্টিশন ছাড়াই ইউএসবি ড্রাইভের চিত্র তৈরি করুন


13

আমার সিস্টেমে 8 গিগাবাইট ইউএসবি ড্রাইভ সংযুক্ত রয়েছে যা দেখতে এটির মতো দেখাচ্ছে:

[root@host]# fdisk -l /dev/sdb

Disk /dev/sdb: 8462 MB, 8462008320 bytes
255 heads, 63 sectors/track, 1028 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x5c0894d9

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1           9       72261    e  W95 FAT16 (LBA)
/dev/sdb2              10         103      755055   83  Linux
[root@host]# 

সুতরাং মূলত আমার এফএটি পার্টিশনটি প্রায় 70 এমবি, এক্সট 2 পার্টিশনটি প্রায় 740 এমবি এবং বাকী স্থান (GB 7 গিগাবাইট) নির্বিঘ্নিত। এখন যখন আমি আমার ইউএসবি হার্ড ড্রাইভ এর মাধ্যমে:

dd if=/dev/sdb of=myimage.img bs=1M

আউটপুট ফাইল (myimage.img) প্রায় 8 গিগাবাইট যা ডিডির স্বাভাবিক অপারেশন।

প্রশ্ন: আমি যা খুঁজছি তা হ'ল অব্যক্ত স্থান ছাড়াই আমার USB হার্ড ড্রাইভটি সরাসরি ক্লোন করার একটি উপায় যাতে আমার ফলাফলের ফাইলটি 8 গিগাবাইটের পরিবর্তে প্রায় 1 জিবি সঙ্কুচিত হয়। যে কারণটি আমি জিজ্ঞাসা করছি তা হ'ল চিত্রটি বুট করার জন্য একটি সিমুলেটর প্রোগ্রাম আউটপুট ফাইল (myimage.img) ব্যবহার করছে। সিমুলেটরটি 8 জিবি ফাইল পরিচালনা করতে পারে তবে আমি আমার ডিস্কের স্থানটি নষ্ট করতে চাই না।


1
আকর্ষণীয় সমাধানের সাথে এটি কিছুটা অনুরূপ সমস্যা: serverfault.com/q/281628/141604
সপ্তাহ

উত্তর:


15

যদি আমি সঠিকভাবে বুঝতে পারি তবে আপনি ডিস্কের শুরু থেকে শেষ পার্টিশনের শেষ পর্যন্ত একটি চিত্র তৈরি করতে চান।

ddএটির জন্য প্যারামিটারটি এটি count=। আপনার শেষ বিভাজনটি 103 এ শেষ হবে এবং গণনাটি 1 অতিরিক্ত (104) হওয়া দরকার এবং আপনার ইউনিটের আকার 8225280 বাইট ( fdisk -lআউটপুট অনুযায়ী ) হবে। সুতরাং আপনি কেবল আপনার আদেশটি এইভাবে পরিবর্তন করতে পারেন:

dd if=/dev/sdb of=myimage.img bs=8225280 count=104

আমি তবে আপনাকে fdisk -u -l /dev/sdbপরিবর্তে দৌড়ানোর পরামর্শ দিচ্ছি । সিলিন্ডারগুলি এই যুগে আর সত্যিই প্রাসঙ্গিক নয়, তাই আপনি যদি কোনও গোলাকার ত্রুটি এড়াতে সেক্টরটির গণনাটি দেখেন তবে আপনি ভাল better তারপরে আপনাকে দৌড়াতে হবে:

dd if=/dev/sdb of=myimage.img count=...

যেখানে গণনাটি fdisk -u -lআপনার প্রথম পার্টিশনের শেষে প্রাপ্ত নম্বরটিতে সেট করা হবে প্লাস ওয়ান , তার পরিবর্তে 104 ব্যবহৃত হবে for এর জন্য ডিফল্ট ব্লকের আকার dd512 বাইট, যা fdisk -u -lআউটপুটটিতেও ব্যবহার করবে unit

জিপিটি পার্টিশনের ব্যাকআপ পার্টিশন টেবিলটি ডিস্কের শেষে সংরক্ষণ করা হয় তবে আপনি জিপিটি ব্যবহার করছেন না তাই আপনি ভাল থাকবেন।


2

আপনার আগ্রহী ড্রাইভের কেবলমাত্র সেই অংশটি পড়তে আপনাকে ডিডিকে বলতে হবে you're আপনি যে প্যারামিটারটি সন্ধান করছেন তা হ'ল count

সুতরাং আপনার সিলিন্ডারের আকার 8,225,280 নিন এবং 103 ব্যবহারে সিলিন্ডারের সংখ্যার গুণ করুন এবং আপনি 847,203,840 বাইট পাবেন। যেহেতু আপনি একটি মেগাবাইট ব্লকের আকার ব্যবহার করছেন, সেই বাইটগুলি মেগাবাইটে রূপান্তর করুন যা 808।

আপনার আদেশ হ'ল dd if=... of=... bs=1M count=808

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