सुपर ब्लॉक में फ़ाइल सिस्टम का "मैजिक" नंबर क्या है?


9

मैं मूल रूप से लिनक्स पर चलने वाले एक midrange NAS सिस्टम पर काम कर रहा हूं और मुझे आज कुछ महान परीक्षण करने के लिए मिला है। चरण-दर-चरण मुझे एक फ़ाइल सिस्टम पर मैजिक नंबर को भ्रष्ट करने के लिए fsdb का उपयोग करने के लिए नेतृत्व करता है ताकि इसे ठीक करने के लिए स्क्रिप्ट का परीक्षण किया जा सके।

मैं काफी करीब से गुज़रा और कोई ठोस स्पष्टीकरण नहीं मिला। क्या कोई इंटरमीडिएट फैशन में कुछ प्रकाश डाल सकता है?

जवाबों:


15

एक जादुई संख्या बाइट्स का एक क्रम है जो एक निश्चित प्रारूप की सभी फाइलों में, आमतौर पर किसी दिए गए स्थान पर (अक्सर शुरुआत में) प्रयोग किया जाता है। चूँकि उस विशेष प्रारूप की सभी फ़ाइलों में उस विशेष स्थिति में विशेष बाइट अनुक्रम होता है, और अन्य प्रारूपों की अधिकांश फ़ाइलों में यह नहीं होता है, इसलिए जादू की संख्या यह पहचानने का एक तरीका है कि फ़ाइल किस प्रारूप में है।

यहाँ, इस अवधारणा को एक फाइल सिस्टम प्रारूप में लागू किया गया है। उदाहरण के लिए, एक ext2 / ext3 / ext4 फाइल सिस्टम में हमेशा 0x53 0xEF1080-1081 के स्थान पर बाइट्स होते हैं। एक reiserfs फाइलसिस्टम हमेशा ReIsErFs65588 (या 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जिसमें वास्तव में सवाल (और मैं) की जानकारी थी।
निक गर्वे

ऐसा नहीं होना चाहिए file /dev/sda1?
बॉबी

@ बॉबी नहीं, file /dev/sda1केवल आपको बताएगा कि यह एक डिवाइस नोड है, यह सामग्री के बारे में कुछ नहीं कहता है। आपको file </dev/sda1या तो चाहिए file -s /dev/sda1
गिलेस एसओ- बुराई को रोकना '

ओह ठीक है, मेरे लिए file < /dev/sda1फ़ाइल (लापता पैरामीटर?) से सहायता-पाठ के साथ विफल रहता है, लेकिन -sमहान काम करता है। धन्यवाद।
बॉबी

1
@ बॉबी आह, मैं देख रहा हूं, मैं एक चरित्र को भूल गया। यह है file - </dev/sda1, क्योंकि आपको fileस्टड से पढ़ने के लिए स्पष्ट रूप से बताना होगा । धन्यवाद, मैं इसे ठीक कर दूँगा।
गिल्स एसओ- बुराई को रोकें '
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.