দুটি প্রধান উপাদান hdparm --fibmap file
হ'ল, যা আপনাকে জানায় যে ফাইলটি শারীরিকভাবে এলভিতে অবস্থিত এবং lvs -o +seg_pe_ranges,vg_extent_size
এটি আপনাকে বলে যে এলভি আপনার শারীরিকভাবে ডিভাইসে কোথায় রয়েছে।
বাকিটা গণিত।
সুতরাং, উদাহরণস্বরূপ:
# hdparm --fibmap linux-3.8.tar.bz2
linux-3.8.tar.bz2:
filesystem blocksize 4096, begins at LBA 0; assuming 512 byte sectors.
byte_offset begin_LBA end_LBA sectors
0 288776 298511 9736
4984832 298520 298623 104
5038080 298640 298695 56
5066752 298736 298799 64
5099520 298824 298895 72
[...]
আমি জানি না কেন এটি এত খণ্ডিত - উইজেটের সাথে ডাউনলোড হয়েছে। এটি একটি ভাল উদাহরণ হতে পারে কারণ আপনি যেমন দেখেন, কমপক্ষে খণ্ডিত ফাইলগুলির জন্য আপনি কোনওভাবে এটিকে স্ক্রিপ্ট না করে মাথা ব্যথা পান। আমি কেবল প্রথম বিভাগটি 288776-298511 (9736 সেক্টর) নেব। এটি 512 বাইট সেক্টর নয়, তবে কোনওভাবেই গণনাটি ভুল।
প্রথমে পরীক্ষা করুন যে এই ডেটাটি আসলেই সঠিক:
# dd if=linux-3.8.tar.bz2 bs=512 skip=0 count=9736 | md5sum
9736+0 records in
9736+0 records out
4984832 bytes (5.0 MB) copied, 0.0506548 s, 98.4 MB/s
7ac1bb05a8c95d10b97982b07aceafa3 -
# dd if=/dev/lvm/src bs=512 skip=288776 count=9736 | md5sum
9736+0 records in
9736+0 records out
4984832 bytes (5.0 MB) copied, 0.123292 s, 40.4 MB/s
7ac1bb05a8c95d10b97982b07aceafa3 -
হুই.এইটির অনুরূপ তাই আমরা সঠিক জায়গায় LV-src পড়ছি। এখন উত্স-এলভি কোথায় অবস্থিত?
# lvs -o +seg_pe_ranges,vg_extent_size
LV VG Attr LSize Pool Origin Data% Move Log Copy% Convert PE Ranges Ext
[...]
src lvm -wi-ao--- 4.00g /dev/dm-1:5920-6047 32.00m
[...]
এখন এটি বিরক্তিকর, এই এলভি খণ্ডিত নয়। এখানে মাথা ব্যথা নেই। যাই হোক।
এটি বলছে যে এসআরসি / ডিভ / ডিএম -১ চালু এবং পিই 5920 থেকে শুরু হয়ে পিই 6047 এ শেষ হবে And
সুতরাং আসুন আমরা / dev / dm-1 থেকে সরাসরি একই জিনিসটি পড়তে পারি কিনা তা দেখতে দিন। গণিত অনুসারে, এটি একটি সামান্য বিলিয়ারঘ যেহেতু আমরা আগে 512 বাইট ব্লকসাইজ ব্যবহার করেছি ...: - / তবে আমি অলস তাই আমি কেবল এমআইবি গণনা করব এবং তারপরে 512 দিয়ে ভাগ করব! হা! :-D
# dd if=/dev/dm-1 bs=512 skip=$((1024*1024/512 * 32 * 5920 + 288776)) count=9736 | md5sum
9736+0 records in
9736+0 records out
4984832 bytes (5.0 MB) copied, 0.0884709 s, 56.3 MB/s
3858a4cd75b1cf6f52ae2d403b94a685 -
বু বু. এটি আমরা যা খুঁজছি তা নয়। কি ভুল ছিল? আহ! LVM মেটাডেটা এবং ক্রেপ সংরক্ষণের জন্য পিভি শুরুতে LVM দ্বারা দখল করা অফসেটটি আমরা যুক্ত করতে ভুলে গেছি। সাধারণত এটি মাইবি-সারিবদ্ধ হয়, সুতরাং কেবল অন্য একটি এমআইবি যুক্ত করুন:
# dd if=/dev/dm-1 bs=512 skip=$((1024*1024/512 * 32 * 5920 + 288776 + 1024*1024/512)) count=9736 | md5sum
9736+0 records in
9736+0 records out
4984832 bytes (5.0 MB) copied, 0.0107592 s, 463 MB/s
7ac1bb05a8c95d10b97982b07aceafa3 -
ওখানে তোমার আছে।