সাধারণত সম্পাদকরা যখন ফাইলগুলি সংরক্ষণ করেন, তখন তারা মুছুন বা শূন্য করুন 0, যাতে এইভাবে বরাদ্দ স্থান বিনামূল্যে হয় এবং তারপরে লিখুন যা নতুন স্থান বরাদ্দ করে। এটি ফাইল সিস্টেমের ফলে ডেটা সম্পূর্ণ আলাদা শারীরিক অবস্থানে রাখে। সুতরাং আপনার ধারণা কার্যকর হতে পারে না।
আপনি filefragবা ব্যবহার করে কোনও ফাইলের শারীরিক অবস্থান পেতে পারেন hdparm --fibmapএবং তারপরে ddসরাসরি সেই শারীরিক অবস্থানটি পড়তে ব্যবহার করতে পারেন। আমি এই প্রক্রিয়াটি এখানে অন্য একটি প্রসঙ্গে বর্ণনা করেছি: /unix//a/85880/30851
আপনার ক্ষেত্রে সম্ভবত এটি পাঠ্য ডেটা সন্ধানের জন্য সাধারণ পদ্ধতির প্রয়োজন ... এমন কিছু:
strings -n 12 -t d /dev/partition | grep -F 'text snippet'
strings একটানা ASCII ডেটা সন্ধান করবে (ইউটিএফ -8 সম্পর্কে নিশ্চিত নয় এমন কিছু অন্যান্য এনকোডিংগুলিও সমর্থন করে it's এটি কোড বা ইংরেজী হলে আপনার এটির দরকার হবে না) এবং এটি যেখানে পাওয়া গিয়েছিল সেটি অফসেটও মুদ্রণ করবে।
text snippetএকটি নির্ভুল, অনন্য পাঠ্য নমুনা হওয়া উচিত যা আপনি মনে করছেন যে ফাইলটি [একক লাইনে] আপনি খুঁজছেন সেই অংশে রয়েছেন। (আপনি যদি এটি সঠিকভাবে না জানেন তবে আপনি তার পরিবর্তে নিয়মিত ভাব প্রকাশ করতে পারেন p)
-n 12সর্বনিম্ন দৈর্ঘ্য যা অনুসন্ধান stringsকরবে। 12আপনার দৈর্ঘ্য হওয়া উচিত text snippet। এই প্যারামিটারটি alচ্ছিক, যদি সরবরাহ করা হয় তবে এটি আরও strings | grepদ্রুত যেতে সাহায্য করবে।
পুরো পার্টিশনটি পড়তে দীর্ঘ সময় লাগবে তবে যদি সফল হয় তবে আপনার কাছে একটি অফসেট থাকবে যা আপনি ddসাধারণ অঞ্চল দখল করতে খাওয়াতে পারবেন এবং তারপরে নয় এমন জিনিসগুলি সরিয়ে ফেলুন।
সেই ডিরেক্টরিতে আমি তখন থেকে কিছুই করি নি
যদি আপনার ডিরেক্টরিটি একটি মাউন্টপয়েন্ট হিসাবে না ঘটে ... বেশিরভাগ ফাইল সিস্টেমগুলি "প্রতি ডিরেক্টরি প্রতি" সত্যিই স্থান সংরক্ষণ করে না ... পুরো ফাইল সিস্টেমে যে কোনও এবং সমস্ত লেখাগুলি আপনার সন্ধান করা বিটটি ওভাররাইট করতে পারে। ডেটা পুনরুদ্ধারের পরিস্থিতিতে আপনি সাধারণত পুরো জিনিসটিকে কেবল পঠনযোগ্য মোডে স্যুইচ করেন।
stringsশুধুমাত্র ফাইলের কিছু অংশ চিহ্নিতকরণ, যদি না আপনি অত্যন্ত ভাগ্যবান হবে।