একটি সুপার ব্লক একটি ফাইল সিস্টেম এর "যাদু" নম্বর কি?


9

আমি মূলত লিনাক্সে চলমান একটি মধ্যম নাসা সিস্টেমের উপর কাজ করছি এবং আজকে আমার কিছু দুর্দান্ত পরীক্ষা করা হয়েছে। ধাপে ধাপে ফাইলটি সিস্টেমে জাদু নম্বরটিকে দূষিত করার জন্য fsdb ব্যবহার করে যা এটি সংশোধন করতে পারে / স্ক্রিপ্টটি পরীক্ষা করতে পারে।

আমি প্রায় বিট কাছাকাছি googled এবং একটি কঠিন ব্যাখ্যা খুঁজে পাইনি। যে কেউ একটি মধ্যবর্তী ফ্যাশন কিছু হালকা চালাতে পারেন?

উত্তর:


15

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

এখানে, এই ধারণা একটি ফাইল সিস্টেম ফরম্যাটে প্রয়োগ করা হয়। উদাহরণস্বরূপ, একটি ext2 / ext3 / ext4 ফাইল সিস্টেম সর্বদা বাইট আছে 0x53 0xEF অবস্থান 1080-1081। একটি reiserfs ফাইল সিস্টেম সবসময় আছে ReIsErFs অবস্থান শুরু 65588 (বা ReIsEr2Fs, ইত্যাদি, সাম্প্রতিক সংস্করণে)। অন্যান্য ফাইল সিস্টেমের অনুরূপ যাদু সংখ্যা আছে। ফাইল সিস্টেমগুলি জাদু নম্বর (এবং সম্ভবত অন্যান্য সূত্র) উপস্থিতির জন্য পরীক্ষা করে দেখুন যাতে আপনি ভুলভাবে তাদের এমন কোনও ফর্ম্যাটে সংগঠিত না করে থাকেন যা তাদের সাথে মোকাবিলা করতে পারে না এবং ক্ষতি করতে পারে। যদি আপনি কোন ফাইল সিস্টেমে জাদু নম্বর পরিবর্তন করেন তবে সাধারণ সরঞ্জামগুলি স্পর্শ করতে অস্বীকার করতে পারে; মেরামত সরঞ্জাম আরো চতুর হতে পারে এবং একটি খারাপ যাদু নম্বর হিসাবে ভাঙ্গা হতে পারে যে এক জিনিস হিসাবে আচরণ করতে পারে।

দ্য file কমান্ড তাদের জাদু সংখ্যার উপর ভিত্তি করে ফাইল সনাক্ত করে। আপনি চালাতে পারেন file -s /dev/sda1 পার্টিশনটি কি মনে করে তা দেখতে /dev/sda1। তার সিদ্ধান্ত সাধারণত পাওয়া একটি ডাটাবেসের উপর ভিত্তি করে /etc/magic অথবা /usr/share/misc/magic। নির্দিষ্ট কমান্ডগুলি বিভিন্ন জাদু সংখ্যার ব্যবহার করতে পারে যাতে তারা যে ফরম্যাটগুলি মোকাবেলা করতে পারে তা সনাক্ত করতে পারে।


উবুন্টুতে, apt-get install source file টান হবে file-x.yy/magic/Magdir/filesystems যা ঠিক সেই তথ্যটি ধারণ করে (এবং আমি) প্রশ্নটি সন্ধান করছিলাম।
Nick Garvey

যে হতে হবে না file /dev/sda1?
Bobby

@ ববিবি না, file /dev/sda1 শুধুমাত্র আপনাকে বলতে হবে যে এটি একটি ডিভাইস নোড, এটি সামগ্রী সম্পর্কে কিছু বলে না। আপনি হয় প্রয়োজন হয় file </dev/sda1 অথবা file -s /dev/sda1
Gilles

ওহ ঠিক আছে, আমার জন্য file < /dev/sda1 ফাইল থেকে সহায়তা-পাঠ্য (অনুপস্থিত পরামিতি?) সহ ব্যর্থ হয়, কিন্তু -s মহান কাজ করে। ধন্যবাদ।
Bobby

1
@ ববিবি আহ, আমি দেখি, আমি একটি চরিত্র ভুলে গেছি। এটা file - </dev/sda1, কারণ আপনি বলতে হবে file স্পষ্টভাবে stdin থেকে পড়তে। ধন্যবাদ, আমি এটা ঠিক করব।
Gilles
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.