एमबीआर के बाद डिस्क पर क्षेत्र और विभाजन शुरू होने से पहले


10

यदि मैं एक MBR विभाजन योजना का उपयोग करता हूं और fdisk(2.20.1 संस्करण) के साथ एक प्राथमिक या विस्तारित विभाजन बनाता हूं, तो यह सेक्टर 2048 से शुरू होता है। अगर मुझे सही याद है, तो fdiskसेक्टर 63 पर पहले विभाजन को शुरू करने के पुराने संस्करणों को । 512 बाइट्स, फिर सेक्टर 2 पर पहला विभाजन क्यों शुरू नहीं होता है? उन 2047 सेक्टरों पर क्या रखा है? बूट-लोडर के कुछ चरण?


FYI करें 1 MiB (2048 क्षेत्र) संरेखण को लिनक्स fdiskमें शुरू किया गया था util-linux-ng-2.17.1/fdisk/fdisk.c, फ़ंक्शन update_sector_offset(void), 2010-02-22 को जारी किया गया था। विंडोज विस्टा 2006-11 में जारी किया गया था।
अंक

संबंधित प्रश्न और उत्तर: superuser.com/q/352572/19956 , superuser.com/q/565577/19956
अंक

जवाबों:


16

MBR और फ़ाइल सिस्टम के पहले सेक्टर के बीच पुराने 32KiB गैप को DOS कम्पैटिबिलिटी रीजन या MBR गैप कहा जाता है, क्योंकि DOS के लिए जरूरी है कि पार्टिशन सिलिंडर बाउंड्रीज़ पर शुरू हो (और प्रत्येक सिलिंडर में 64 सेक्टर यानी 64 सेक्टर * 512 बाइट्स / सेक्टर - 32KiB स्पेस) थे ।

यहाँ छवि विवरण दर्ज करें

लीगेसी GRUB (GRUB1) ने GRUB1 1.5-स्टेज बूट लोडर को वहां स्थापित करने के लिए इसका इस्तेमाल किया है: http://www.gnu.org/software/grub/manual/grub.html#BIOS-installation

अतिरिक्त लिंक:

  1. http://www.pixelbeat.org/docs/disk/
  2. /superuser/107235/how-do-boot-sectors-and-multiple-drives-works/108152#108152
  3. http://www.dedoimedo.com/computers/grub.html

1
ठीक है, यह समझाने के लिए धन्यवाद! ऐसा लगता है कि GRUB2 एमबीआर के बीच एक ही क्षेत्र का उपयोग करता है और विभाजन के पहले यह बूट कोड है। grub-install -vमेरे अनुसार GRUB2 स्थापित है और अगर मैं निष्पादित करता हूं dd if=/dev/sda obs=1 ibs=1 skip=512 count=2047 2>/dev/null | strings -n4तो इस क्षेत्र में "लोडिंग", "जियोम", "रीड", "एरर" हैं और वे GRUB2 से संबंधित होने चाहिए।
मार्टिन

@ मर्टिन एचएम, दिलचस्प अवलोकन। मुझे केवल "^ @" मिल गया है, grub2, भी। लगता है कि मेरा चरण 2 फ़ाइल सिस्टम में सही है। :)
बोरिस बुर्कोव

1
@ मर्टिन: यदि आपने पहले GRUB 0.99 लगाया था, तो यह उस क्षेत्र में अभी भी हो सकता है, भले ही आपका वर्तमान बूटलोडर GRUB 2.x है और इसका उपयोग नहीं कर रहा है।
बेन Voigt

6

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

स्टार्ट सेक्टर 64 इस आवश्यकता के लिए पर्याप्त होगा। 2048 की वृद्धि निवारक प्रतीत होती है (जैसे कि डिस्क को GPT में परिवर्तित किया जाना चाहिए, वहां UEFI बूट विभाजन लगाने की अनुमति)।


प्रदर्शन अनुकूलन से आपका मतलब है कि यदि फ़ाइल-सिस्टम 4K सेक्टर के मध्य में शुरू होता है, तो इस फाइल सिस्टम के भीतर के सभी डेटा को भी मिसल किया जाता है और इसका मतलब यह होगा कि यदि कोई फाइल-सिस्टम पर फ़ाइल में एक बाइट को बदलता है, तो फिर दो भौतिक 4K क्षेत्रों को पढ़ने और संशोधित करने की आवश्यकता है? यदि फ़ाइल-सिस्टम को संरेखित किया जाता है, तो केवल एक 4K क्षेत्र को संशोधित करने की आवश्यकता होती है जब तक कि सभी बाइट्स एक ही 4K भौतिक क्षेत्र पर न हों?
मार्टिन

2
@Martin समस्या यह है कि कर्नेल हमेशा डिस्क को 4K ब्लॉक (पृष्ठ आकार) लिखता है (क्योंकि पृष्ठ कैश किए जाते हैं)। किसी एक क्षेत्र के विपरीत एक 4K पृष्ठ दो क्षेत्रों का हिस्सा हो सकता है। उस स्थिति में 4K नहीं बल्कि 8K लिखा होना चाहिए। और इससे भी बदतर: यह हो सकता है कि डिस्क पर एक या दोनों 4K ब्लॉक पहले पढ़ा जाना चाहिए।
हौके लैगिंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.