ডিস্ক ইমেজে পার্টিশন সম্পাদনা করা সম্ভব?


1

আমি ddrescue ব্যবহার করে ক্র্যাশড 2 টিবি ড্রাইভটি পুনরুদ্ধার করার চেষ্টা করছি। এটি এখন এক সপ্তাহ ধরে চলছে, এবং কেবল শেষের কাছাকাছি পৌঁছেছে এবং স্পষ্টতই এই ত্রুটিটি নিয়ে স্থানের বাইরে চলে গেছে:

ddrescue: write error: No space left on device

এটি অনুলিপি 2 টিবি ড্রাইভ যা আমি অনুলিপি করছিলাম তাই অনুমান করছি যে এক উত্পাদনকারী থেকে পরের দিকে প্রকৃত ড্রাইভের জায়গাতে কোনও পরিবর্তন ছিল। ড্রাইভটি পূর্ণ ছিল না, এটি ক্র্যাশ হওয়ার সময় প্রায় 600 জিবি ব্যবহৃত হয়েছিল, এবং 254 এমবি মোট 20 টি ত্রুটি ছিল, সুতরাং অনুমান করে আমার কাছে উদ্ধার হওয়া ডিস্কের চিত্রটিতে থাকা বেশিরভাগ ডেটা রয়েছে।

যখন আমি এই কমান্ডটি ব্যবহার করে চিত্রটি চেষ্টা করি এবং মাউন্ট করব:

sudo mount -o loop,ro,offset=0 rimage /mnt/resc

এটি ব্যর্থ হয় এবং এটি ডেমসগে প্রদর্শিত হচ্ছে:

[999150.073373] EXT4-fs (loop0): bad geometry: block count 488378646 exceeds size of device (480723271 blocks)

1) ইমেজটির ব্লক কাউন্টটি সম্পাদনা করার কোনও উপায় আছে যাতে আমি এটি মাউন্ট করতে পারি?

2) যদি তাই হয়, তবে কি পরে ডিস্ক চিত্রের পার্টিশন আকার সঙ্কুচিত করা সম্ভব?

উত্তর:


1

ডিস্ক স্পেস ইস্যু

আপনার পুনরুদ্ধারের গন্তব্য সম্ভবত ডিস্কের জায়গার বাইরে চলে গেছে কারণ আপনি গন্তব্যস্থলে একটি ফাইল সিস্টেমে একটি চিত্র ফাইলে লিখছিলেন এবং ফাইল সিস্টেমের ওভারহেড রয়েছে। আপনি ফ্ল্যাগটি ভিতরে রেখে ডিস্কের স্পেস ইস্যু নিয়ে পালাতে সক্ষম হতে পারেন ।--sparseddrescue

আমি আরও বড় হার্ড ড্রাইভের মাধ্যমে বা ব্যবহার করে এবার স্পেস ইস্যুটি এড়িয়ে অন্য একটি চিত্র তৈরি করার চেষ্টা করার দৃ strongly় পরামর্শ দিচ্ছিddrescue --sparse

আপনি ddrescueফাইল সিস্টেমটি এড়িয়ে পুরো পুনরুদ্ধারের গন্তব্য হার্ড ড্রাইভে লিখতে ব্যবহার করতে পারেন । যদি পুনরুদ্ধার গন্তব্য হার্ড ড্রাইভ হয় /dev/sdc, আপনি তার ddrescueপরিবর্তে সেইটিতে লিখতে বলবেন rimage। পুনরুদ্ধার গন্তব্য হার্ড ড্রাইভটি ব্যর্থ হার্ড ড্রাইভের একটি ক্লোন, অসমাপ্ত অংশগুলি বিয়োগের মতো আচরণ করবে।

একটি ডিভাইস চিত্র পুনরায় আকার দেওয়া হচ্ছে

যদি ddrescueচিত্রটি সম্পূর্ণ ব্যর্থ ড্রাইভের বলে মনে করা হয়, ব্যর্থ ড্রাইভের /dev/sdbডিভাইস পাথের পরিবর্তে এই কমান্ডটি চালান:

sudo blockdev --getsize64 /dev/sdb

আউটপুট নিন (উদাহরণস্বরূপ 500107862016) এবং আপনার পুনরুদ্ধার চিত্রটি /path/to/rimageব্যবহার করে পুনরায় আকার দিন truncate:

truncate -s 500107862016 /path/to/rimage

সতর্কতা: একটি আকার কম যে আকারের ছাঁটা হচ্ছে /path/to/rimage হবে ডেটা হারিয়ে স্থাপিত।

এর /path/to/rimageসাথে বর্তমানের আকারটি যাচাই করে নিন du -b --apparent-size /path/to/imageএবং নিশ্চিত হয়ে নিন যে ফিরে আসা আকারটি blockdevআপনাকে যা দিয়েছে তার চেয়ে কম is

এখন, পুনরুদ্ধার করা চিত্রটি পুরো আকার ধারণ করবে যা mount.ext4আশা করা যায়।

একটি পার্টিশন ইমেজ পুনরায় আকার

আপনি যদি ddrescueব্যর্থ ড্রাইভের পার্টিশনে চালাচ্ছিলেন, পার্টিশনের আকার পাওয়ার জন্য পার্টিশনের /dev/sdb1ডিভাইস পাথের পরিবর্তে এই কমান্ডটি ব্যবহার করুন :

sudo blockdev --getsize64 /dev/sdb1

তারপরে আউটপুট নিন (উদাঃ 500106788864) এবং আপনার পুনরুদ্ধারের চিত্রটি /path/to/rimageব্যবহার করে পুনরায় আকার দিন truncate:

truncate -s 500106788864 /path/to/rimage

সতর্কতা: একটি আকার কম যে আকারের ছাঁটা হচ্ছে /path/to/rimage হবে ডেটা হারিয়ে স্থাপিত।

এর /path/to/rimageসাথে বর্তমানের আকারটি যাচাই করে নিন du -b --apparent-size /path/to/imageএবং নিশ্চিত হয়ে নিন যে ফিরে আসা আকারটি blockdevআপনাকে যা দিয়েছে তার চেয়ে কম is


আপনাকে ধন্যবাদ, ট্রুনকেট ব্যবহার করে আমি প্রবেশ করতে সক্ষম হয়েছি এবং এখন সফলভাবে চিত্রটি মাউন্ট করতে পারি, এবং আমি সেখানে ডেটা দেখতে পারি (যদিও কিছু কিছু অবশ্যই আমি কিছু আইটেম মুছতে না পারায় ব্যর্থ হয়েছি, আমি এআর / ডাবলু ত্রুটি পেয়েছি)। পার্টিশনটির আকার পরিবর্তন সম্পর্কে আমার প্রশ্নটি কোনও পার্টিশনের চিত্রের আকারের আকার পরিবর্তন করার বিষয়ে নয়, ইমেজে নিজেই পার্টিশন সঙ্কুচিত করার জন্য এখানে বিভক্ত বা অন্য কোনও সরঞ্জাম ব্যবহার করার উপায় রয়েছে, সুতরাং আমাকে এ থেকে ডেটা সরিয়ে নেওয়ার সুযোগ দেয় 3 ডি ড্রাইভের প্রয়োজন ছাড়াই চিত্রটি ড্রাইভে onto অন্য সপ্তাহের জন্য পুনরায় চালানো ড্রেসক্রিও অত্যন্ত আবেদনময়ী।
মাইকেল ভ্যানডিমার

@ মিশেলভ্যানডেমার: আপনি যা ডেটা ক্ষতির ঝুঁকির প্রস্তাব করছেন কারণ ফাইল সিস্টেম পুনরায় আকার দেওয়ার পরে বিশেষত ডেটাতে থাকা গর্তের সাথে অখণ্ডতার গ্যারান্টি দিতে পারে না। যদি আপনার ডেটা আপনার পক্ষে গুরুত্বপূর্ণ হয় তবে আপনি যতটা পেতে পারেন তার সবই পেয়ে গেছেন তা না হওয়া পর্যন্ত আপনার প্রতিটি বিট সংরক্ষণ করার চেষ্টা করা উচিত। (মনে হচ্ছে আপনি ইতিমধ্যে চিত্রটি পরিবর্তন করেছেন, যদিও আমি উদ্ধারকৃত ডেটা পুনরায় আকার দেওয়ার চেষ্টা করার পরামর্শ দিই না
ডেলটিক

আমি এটি সঙ্কুচিত না হওয়া পর্যন্ত এটির অনুলিপি করতে পারি না, কারণ এটি বর্তমানে পুরো ডিস্কটি দখল করে আছে। ইমেজের পার্টিশনটি সঙ্কুচিত করার জন্য কি পার্টড বা জিপিটার্ড, বা অন্য কোনও ডিস্ক ইউটিলিটি ব্যবহার করার কোনও উপায় আছে? মাউন্ট করা হলে, যদি আমি ফেডোরার ডিস্ক ইউটিলিটিটি পার্টিশন সম্পাদনা করার বিকল্পটি ধূসর করে ফেলেছি, এবং আনমাউন্টযুক্ত ইমেজে এটি কীভাবে নির্দেশ করব তা আমি জানি না। এর চেয়ে খারাপ পরিস্থিতি, যদি কিছু ভুল হয়ে যায় এবং আমাকে একেবারে করতে হয় তবে আমি সর্বদা আপনার পরামর্শ অনুসারে --spars ব্যবহার করে শুরু করতে পারি, বা কোনও চিত্রের পরিবর্তে ডিস্কে নিজেই লিখতে পারি।
মাইকেল ভ্যানডিমার

@ মিশেলভ্যানডেমার: সংক্ষেপে, না, কারণ ফাইল সিস্টেমটি পুনরায় আকার দেওয়ার দায়িত্বে রয়েছে, তবে দূষিত ডেটার অর্থ ফাইল সিস্টেমটি তার নিজের উপর বিশ্বাস করা যায় না। ফলস্বরূপ, আমি জোর দিয়েছি যে আপনার যতটা সম্ভব মূল তথ্য সংরক্ষণ করা দরকার। আপনি যদি কোনও বাহ্যিক হার্ড ড্রাইভ qemu-img convert -O qcow2 -cp /path/to/rimage /path/to/exthdd/rimage.qcow2ছাড়তে পারেন তবে সমস্ত ডেটা সংরক্ষণের সময় উল্লেখযোগ্য স্থান সঞ্চয় করতে পারে। যদি আপনি না করতে পারেন তবে আপনার fsckভিতরে পার্টিশনটি চালিয়ে নিতে হবে /path/to/rimage
ডেলটিক
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.