मास्टर बूट रिकॉर्ड

From Vigyanwiki

मास्टर बूट रिकॉर्ड (एमबीआर) एक विशेष प्रकार का बूट क्षेत्र है जो आईबीएम पीसी-संगत सिस्टम और इसके बाद के सिस्टमों में उपयोग के लिए नियत डिस्क (हार्ड डिस्क ड्राइव) या निष्कासनीय ड्राइव जैसे विभाजित कंप्यूटर मॉस संग्रहण उपकरण के ठीक प्रारंभ में स्थित होता है। एमबीआर की अवधारणा को वर्ष 1983 में पीसी डॉस 2.0 के साथ सार्वजनिक रूप से प्रस्तुत किया गया था।

एमबीआर में यह जानकारी निहित होती है कि डिस्क के क्षेत्रों को विभाजनों में कैसे विभाजित किया lजाता है, जिनमें से प्रत्येक विभाजन में एक फाइल प्रणाली होती है। एमबीआर में स्थापित ऑपरेटिंग सिस्टम के लिए भारक (लोडर) के रूप में, सामान्यतः भारक के दूसरे चरण पर नियंत्रण पारित करके, या प्रत्येक विभाजन के वॉल्यूम बूट रिकॉर्ड (वीबीआर) के संयोजन के साथ कार्य करने के लिए निष्पादनीय कोड भी होता है। यह एमबीआर कोड सामान्यतः बूट भारक के रूप में जाना जाता है।[1]

एमबीआर में विभाजन तालिका का संगठन एक विभाजित डिस्क के अधिकतम पतायोग्य भंडारण स्थान को 2 टेबिबाइट (232 × 512 बाइट) तक सीमित करता है।[2] 32-बिट अंकगणित या 4096-बाइट क्षेत्र मानते हुए इस सीमा की अल्पवृद्धि के दृष्टिकोण आधिकारिक रूप से समर्थित नहीं हैं, क्योंकि ये उपलब्ध बूट भारक और अधिकांश एमबीआर-अनुरूप ऑपरेटिंग सिस्टम और सिस्टम यंत्रों के साथ संगतता को समाप्त करते हैं, और संकीर्ण रूप से नियंत्रित सिस्टम वातावरणों के बाहर उपयोग किए जाने पर गंभीर डेटा विकार का कारण बन सकते हैं। इसलिए, एमबीआर-आधारित विभाजन योजना, नए कंप्यूटरों में जीयूआईडी विभाजन तालिका (जीपीटी) योजना द्वारा प्रतिस्थापित किए जाने की प्रक्रिया में है। पुराने सिस्टमों के लिए पश्चगामी संगतता के कुछ सीमित रूप प्रदान करने के लिए जीपीटी, एक एमबीआर के साथ सह-अस्तित्व में हो सकता है।

एमबीआर, गैर-विभाजित माध्यमों जैसे फ्लॉपी, सुपरफ्लॉपी या अन्य भंडारण उपकरणों पर उपलब्ध नहीं हैं, जो इस प्रकार व्यवहार करने के लिए विन्यासित किए गए हैं।

अवलोकन

आईबीएम पीसी डॉस 2.0 के साथ विभाजित माध्यमों के लिए समर्थन, और इस प्रकार मास्टर बूट रिकॉर्ड (एमबीआर) को मार्च 1983 में प्रस्तुत किया गया था, जिससे तत्कालीन नए आईबीएम व्यक्तिगत कंप्यूटर एक्सटी की 10 एमबी हार्ड डिस्क का समर्थन किया जा सके, जो अभी भी एफएटी12 फ़ाइल प्रणाली का उपयोग कर रहा था। एमबीआर के मूल संस्करण को आईबीएम के डेविड लिटन द्वारा जून 1982 में लिखा गया था। विभाजन तालिका चार प्राथमिक विभाजनों तक का समर्थन करती है, जिनमें से डॉस केवल एक का उपयोग कर सकता है। यह एफएटी16 को डॉस 3.0 के साथ एक नई फाइल प्रणाली के रूप में प्रस्तुत किय जाने पर नहीं बदला। अन्य विभाजनों को संग्रहित करने के लिए संग्राहक के रूप में उपयोग किये जाने वाला एक विशेष प्राथमिक विभाजन प्रकार, विस्तारित विभाजन के लिए समर्थन को डॉस 3.2 के साथ संयोजित किया गया था, और एक विस्तारित विभाजन के अंदर स्थिर तार्किक ड्राइव डॉस 3.30 के साथ प्रकाश में आये। चूँकि एमएस-डॉस, पीसी डॉस, ओएस/2 और विंडोज़ इन्हें बूट करने के लिए कभी भी सक्षम नहीं थे, एमबीआर प्रारूप और बूट कोड, डॉस और ओएस/2 के पूरे युग में वर्ष 1996 तक कुछ तृतीय-पक्ष कार्यान्वयनों को छोड़कर कार्यक्षमता में लगभग अपरिवर्तित रहे।

8 जीबी से बड़ी डिस्क का समर्थन करने के लिए विंडोज 95बी और डॉस 7.10 में तार्किक ब्लॉक पताभिगमन (एलबीए) के लिए समर्थन को वर्ष 1996 में प्रस्तुत किया गया था। डिस्क टाइमस्टैम्प भी प्रस्तुत किए गए थे।[3] यह इस विचार को भी प्रदर्शित करता है कि एमबीआर, ऑपरेटिंग सिस्टम और फाइल प्रणाली होने के लिए स्वतंत्र हैं। हालाँकि, एमबीआर के हालही के माइक्रोसॉफ्ट कार्यान्वयन में इस संरचना नियम के साथ आंशिक रूप से समझौता किया गया था, जो एफएटी16बी और एफएटी32 विभाजन प्रकार 0x06/0x0बी के लिए सिलेंडर-हेड-क्षेत्र अभिगमन को प्रयुक्त करता है, जबकि एलबीए का उपयोग 0x0E/0x0C के लिए किया जाता है।

कभी-कभी एमबीआर प्रारूप (जो कभी-कभी संगतता समस्याओं का कारण बनता है) के कुछ आंतरिक विवरणों के खराब दस्तावेज़ीकरण के बाद भी, पीसी-संगत कंप्यूटरों की व्यापक लोकप्रियता और दशकों से इसकी अर्ध-स्थैतिक प्रकृति के कारण इसे वास्तविक उद्योग मानक के रूप में व्यापक रूप से अपनाया गया है। यह अन्य प्लेटफार्मों के लिए कंप्यूटर ऑपरेटिंग सिस्टम द्वारा समर्थित होने की सीमा तक भी था। कभी-कभी यह बूटस्ट्रैपिंग और विभाजन के लिए अन्य पहले से उपलब्ध या क्रॉस-प्लेटफ़ॉर्म मानकों के अतिरिक्त होता था।[4]

हालांकि, एमबीआर विभाजन प्रविष्टियाँ और वाणिज्यिक ऑपरेटिंग सिस्टम में उपयोग किए जाने वाले एमबीआर बूट कोड 32 बिट तक सीमित हैं।[2] इसलिए, एमबीआर विभाजन योजना (33-बिट अंकगणित के बिना) द्वारा 512-बाइट क्षेत्रों (या तो वास्तविक या अनुकरित) का उपयोग करने वाली डिस्कों पर समर्थित अधिकतम डिस्क आकार 2 टेबिबाइट तक सीमित है।[2] परिणामस्वरूप, बड़ी डिस्क के लिए एक अलग विभाजन योजना का उपयोग किया जाना चाहिए, क्योंकि ये वर्ष 2010 से व्यापक रूप से उपलब्ध हो गए हैं। इसलिए एमबीआर विभाजन योजना जीयूआईडी विभाजन तालिका (जीपीटी) द्वारा अधिक्रमित होने की प्रक्रिया में है। इसका आधिकारिक दृष्टिकोण, सुरक्षात्मक एमबीआर को नियोजित करके डेटा अखंडता सुनिश्चित करने से अल्प अधिक है। विशेष रूप से, यह ऑपरेटिंग सिस्टम के साथ पश्चगामी संगतता प्रदान नहीं करता है जो जीपीटी योजना का भी समर्थन नहीं करता है। इस बीच, दोनों विभाजन योजनाओं में "समानांतर" और/या पुराने ऑपरेटिंग सिस्टम को जीपीटी विभाजन से बूट करने की सुविधा देने के लिए डिस्क के पहले भौतिक 2 टेबिबाइट में स्थित विभाजन को व्यवस्थित रखने के लिए हाइब्रिड एमबीआर के कई रूपों को तीसरे पक्ष द्वारा संरचित और कार्यान्वित किया गया है। इन समाधानों की वर्तमान गैर-मानक प्रकृति कुछ परिदृश्यों में विभिन्न अनुकूलता समस्याओं का कारण बनती है।

एमबीआर में ड्राइव के पहले डिस्क क्षेत्र में 512 या अधिक बाइट स्थित होते हैं।

इसमें, निम्न में से एक या अधिक उपस्थित हो सकते हैं:

  • भंडारण उपकरण के विभाजन का वर्णन करने वाली एक विभाजन तालिका। इस संदर्भ में बूट क्षेत्र को विभाजन क्षेत्र भी कहा जा सकता है।
  • बूटस्ट्रैप कोड : विन्यासित बूट योग्य विभाजन की पहचान करने के निर्देश, फिर इसके वॉल्यूम बूट रिकॉर्ड (VBR) को एक श्रृंखला भारक के रूप में लोड और निष्पादित करें।
  • वैकल्पिक 32-बिट डिस्क टाइमस्टैम्प[3]
  • वैकल्पिक 32-बिट डिस्क चिह्न[5][6][7][8]

डिस्क विभाजन

आईबीएम पीसी डॉस 2.0 ने एमबीआर विभाजन को स्थापित करने और व्यवस्थित रखने के लिए FDISK उपयोगिता को प्रारम्भ किया। जब एक भंडारण उपकरण को इस योजना के अनुसार विभाजित किया जाता है, तो इसके एमबीआर में एक विभाजन तालिका होती है, जो विभाजन के रूप में संदर्भित रैखिक क्षेत्रों के स्थान, आकार और अन्य विशेषताओं का वर्णन करती है।

विस्तारित बूट रिकॉर्ड (ईबीआर), बीएसडी डिस्कलेबल, या तार्किक डिस्क प्रबंधक मेटाडेटा विभाजन जैसी अधिक जटिल विभाजन योजनाओं का वर्णन करने के लिए इन विभाजनों में स्वयं भी डेटा उपस्थित हो सकता है।[9]

एमबीआर एक विभाजन में स्थित नहीं होता है; यह पहले विभाजन से पूर्व उपकरण के पहले क्षेत्र (भौतिक ऑफ़सेट 0) पर स्थित होता है। (एक गैर-विभाजित उपकरण पर या एक अलग विभाजन के भीतर उपस्थित बूट क्षेत्र को वॉल्यूम बूट रिकॉर्ड कहा जाता है।) उन स्थितियों में विभाजन तालिका को उपकरण पर किसी अन्य भौतिक स्थान में प्रतिस्थापित किया जा सकता है, जहाँ कंप्यूटर गतिशील ड्राइव बायोस ओवरले या बूट प्रबंधक को संचालित कर रहा है; उदाहरण के लिए, ऑनट्रैक डिस्क प्रबंधक प्रायः मूल एमबीआर सामग्री की एक प्रति को दूसरे क्षेत्र में सुरक्षित रखता है, फिर बाद में बूट किए गए ओएस या एप्लिकेशन से खुद को छुपाता है, इसलिए एमबीआर प्रति को ऐसा माना जाता है जैसे कि यह अभी भी पहले क्षेत्र में स्थित है।

क्षेत्र अभिविन्यास

परिपाटी के अनुसार, एमबीआर विभाजन तालिका योजना में ठीक चार प्राथमिक विभाजन तालिका प्रविष्टियाँ होती हैं, हालाँकि कुछ ऑपरेटिंग सिस्टम और सिस्टम यंत्रों ने इसे पाँच (उन्नत सक्रिय विभाजन (एएपी) पीटीएस-डॉस 6.60[10] और डीआर-डॉस 7.07 के साथ), आठ (एएसटी और एनईसी एमएस-डॉस 3.एक्स[11][12] और साथ ही भंडारण आयाम स्पीडस्टोर), या सोलह प्रविष्टियों (ऑनट्रैक डिस्क प्रबंधक के साथ) तक बढ़ा दिया है।

चिरसम्मत व्यापक एमबीआर की संरचना
पता विवरण आकार
(बाइट)
0x0000 (0) बूटस्ट्रैप कोड क्षेत्र 446
0x01BE (446) विभाजन प्रविष्टि नं०1 विभाजन तालिका
(प्राथमिक विभाजनों के लिए)
16
0x01CE (462) विभाजन प्रविष्टि नं०2 16
0x01DE (478) विभाजन प्रविष्टि नं०3 16
0x01EE (494) विभाजन प्रविष्टि नं०1 16
0x01FE (510) 0x55 बूट चिह्न[lower-alpha 1] 2
0x01FF (511) 0xAA
कुल आकार: 446 + 4×16 + 2 512
एक आधुनिक मानक एमबीआर की संरचना
पता विवरण आकार
(बाइट)
0x0000 (0) बूटस्ट्रैप कोड क्षेत्र (भाग 1) 218
0x00DA (218) 0x0000 डिस्क टाइमस्टैम्प[3][lower-alpha 2] (वैकल्पिक; विंडोज़ 95बी/98/98एसई/एमई (एमएस-डॉस 7.1–8.0).

वैकल्पिक रूप से, न्यूएलडीआर के साथ ओईएम भारक चिह्न के रूप में कार्य कर सकता है)

2
0x00DC (220) मूल भौतिक ड्राइव (0x800xFF) 1
0x00DD (221) सेकण्ड (0–59) 1
0x00DE (222) मिनट (0–59) 1
0x00DF (223) घंटे (0–23) 1
0x00E0 (224) बूटस्ट्रैप कोड क्षेत्र (भाग 2,0x0000 पर कोड प्रविष्टि ) 216 (या 222)
0x01B8 (440) 32-बिट डिस्क चिह्न बूट चिह्न(वैकल्पिक; यूईएफआई, लिनक्स, विंडोज़ एनटी परिवार और अन्य ओसेस) 4
0x01BC (444) 0x0000 (0x5A5A यदि कॉपी संरक्षित) 2
0x01BE (446) विभाजन प्रविष्टि नं०1 विभाजन तालिका
(प्राथमिक विभाजनों के लिए)
16
0x01CE (462) विभाजन प्रविष्टि नं०2 16
0x01DE (478) विभाजन प्रविष्टि नं०3 16
0x01EE (494) विभाजन प्रविष्टि नं०4 16
0x01FE (510) 0x55 बूट चिह्न[lower-alpha 1] 2
0x01FF (511) 0xAA
कुल आकार: 218 + 6 + 216 + 6 + 4×16 + 2 512
एएपी एमबीआर की संरचना
पता विवरण आकार
(बाइट)
0x0000 (0) बूटस्ट्रैप कोड क्षेत्र 428
0x01AC (428) 0x78 एएपी चिह्न (वैकल्पिक) 2
0x01AD (429) 0x56
0x01AE (430) एएपी भौतिक ड्राइव (0x80-0xFE; 0x00: अप्रयुक्त; 0x01-0x7F, 0xFF: आरक्षित) एएपी रिकॉर्ड (वैकल्पिक) (एएपी विभाजन प्रविष्टि #0 विशेष शब्दार्थ के साथ) 1
0x01AF (431) एएपी विभाजन/प्रतिबिम्ब फाइल या वीबीआर/ईबीआर का सीएचएस (प्रारंभ) पता 3
0x01B2 (434) एएपी विभाजन प्रकार के लिए आरक्षित (0x00 यदि उपयोग नहीं किया गया है) (वैकल्पिक) 1
0x01B3 (435) एएपी में सीएचएस अंतिम पते के लिए आरक्षित (वैकल्पिक; ऑफसेट 0x01B5 पर बाइट का उपयोग एमबीआर चेकसम (पीटीएस डीई, बूटविज़ार्ड) के लिए भी किया जाता है; 0x000000 यदि उपयोग नहीं किया गया है) 3
0x01B6 (438) एएपी छवि फ़ाइल या वीबीआर/ईबीआर या एएपी विभाजन के सापेक्ष क्षेत्रों का एलबीए प्रारंभ करें (ईबीआर बूटिंग का समर्थन करने के लिए डॉस 3.31 बीपीबी (या उसके अनुकरण) के "छिपे हुए क्षेत्रों" प्रविष्टि पर लोड किए गए क्षेत्र में +01Cहेक्स को ऑफ़सेट करने के लिए कॉपी किया गया) 4
0x01BA (442) एएपी में क्षेत्रों के लिए आरक्षित (वैकल्पिक; 0x00000000यदि उपयोग नहीं किया गया है) 4
0x01BE (446) विभाजन प्रविष्टि नं०1 विभाजन तालिका
(प्राथमिक विभाजनों के लिए)
16
0x01CE (462) विभाजन प्रविष्टि नं०2 16
0x01DE (478) विभाजन प्रविष्टि नं०3 16
0x01EE (494) विभाजन प्रविष्टि नं०4 16
0x01FE (510) 0x55 बूट चिह्न[lower-alpha 1] 2
0x01FF (511) 0xAA
कुल आकार: 428 + 2 + 16 + 4×16 + 2 512
न्यूएलडीआर एमबीआर की संरचना
पता विवरण आकार
(बाइट)
0x0000 (0) जेएमपीएस (EBhex) / न्यूएलडीआर रिकॉर्ड आकार (प्रायः 0x0A/0x16/0x1C कोड के लिए 0x000C/0x0018/0x001E से प्रारंभ होता है) न्यूएलडीआर रिकॉर्ड (वैकल्पिक) 2
0x0002 (2) "NEWLDR" चिह्न 6
0x0008 (8) लोडर भौतिक ड्राइव और बूट फ्लैग (0x80-0xFE, 0x00-0x7E, 0xFF, 0x7F) (यदि उपयोग नहीं किया जाता है, तो यह और निम्नलिखित 3 बाइट्स सभी 0 होने चाहिए) 1
0x0009 (9) लोडर बूट सेक्टर या प्रतिबिम्ब फ़ाइल का सीएचएस पता (f.e. IBMBIO.LDR) (0x000000 यदि उपयोग नहीं किया गया है) 3
0x000C (12) अनुमत डीएल न्यूनतम, अन्यथा विभाजन तालिका से लें (0x80: स्वतःनिर्धारित; 0x00: हमेशा डीएल का उपयोग करें; 0xFF: हमेशा तालिका प्रविष्टि का उपयोग करें) 1
0x000D (13) आरक्षित (स्वतःनिर्धारित: 0x000000) 3
0x0010 (16) लोडर बूट सेक्टर या प्रतिबिम्ब फ़ाइल का एलबीए (वैकल्पिक; 0x00000000 यदि उपयोग नहीं किया गया है) 4
0x0014 (20) वीबीआर बूट इकाई का पैच ऑफ़सेट (स्वतःनिर्धारित 0x0000 यदि उपयोग नहीं किया जाता है, तो 0024hex या 01FDhex) 2
0x0016 (22) चेकसम (0x0000 यदि उपयोग नहीं किया जाता है) 2
0x0018 (24) ओईएम लोडर चिह्न (MSWIN4 रीयल/32 के लिए, ऑफ़सेट +0DAhex भी देखें, वीबीआर में ऑफ़सेट +003hex पर ओईएम लेबल के अनुरूप है (वैकल्पिक) 6
भिन्न बूटस्ट्रैप कोड क्षेत्र (0x0000 पर कोड प्रविष्टि) भिन्न
0x01AC (428) 0x78 एएपी चिह्न (वैकल्पिक) 2
0x01AD (429) 0x56
0x01AE (430) एएपी विभाजन प्रविष्टि नं०0 विशेष शब्दार्थ के साथ एएपी रिकॉर्ड (वैकल्पिक) 16
0x01BE (446) विभाजन प्रविष्टि नं०1 विभाजन तालिका
(प्राथमिक विभाजनों के लिए)
16
0x01CE (462) विभाजन प्रविष्टि नं०2 16
0x01DE (478) विभाजन प्रविष्टि नं०3 16
0x01EE (494) विभाजन प्रविष्टि नं०4 16
0x01FE (510) 0x55 बूट चिह्न[lower-alpha 1] 2
0x01FF (511) 0xAA
कुल आकार: 30 + 398 + 2 + 16 + 4×16 + 2 512
एएसटी/एनईसी एमएस-डॉस और स्पीडस्टोर एमबीआर की संरचना
पता विवरण आकार
(बाइट)
0x0000 (0) बूटस्ट्रैप कोड क्षेत्र 380
0x017C (380) 0x5A एएसटी/एनईसी हस्ताक्षर (वैकल्पिक; स्पीडस्टोर के लिए नहीं) 2
0x017D (381) 0xA5
0x017E (382) विभाजन प्रविष्टि नं०8 एएसटी/एनईसी विस्तारित विभाजन तालिका

(वैकल्पिक; स्पीडस्टोर के लिए भी)

16
0x018E (398) विभाजन प्रविष्टि नं०7 16
0x019E (414) विभाजन प्रविष्टि नं०6 16
0x01AE (430) विभाजन प्रविष्टि नं०5 16
0x01BE (446) विभाजन प्रविष्टि नं०4 विभाजन तालिका
(प्राथमिक विभाजनों के लिए)
16
0x01CE (462) विभाजन प्रविष्टि नं०3 16
0x01DE (478) विभाजन प्रविष्टि नं०2 16
0x01EE (494) विभाजन प्रविष्टि नं०1 16
0x01FE (510) 0x55 बूट चिह्न[lower-alpha 1] 2
0x01FF (511) 0xAA
कुल आकार: 380 + 2 + 4×16 + 4×16 + 2 512
ऑनट्रैक डिस्क प्रबंधक एमबीआर की संरचना
पता विवरण आकार
(बाइट)
0x0000 (0) बूटस्ट्रैप कोड क्षेत्र 252
0x00FC (252) 0xAA डीएम चिह्न (वैकल्पिक) 2
0x00FD (253) 0x55
0x00FE (254) विभाजन प्रविष्टि डीएम विस्तृत विभाजन तालिका (वैकल्पिक) 16
0x010E (270) विभाजन प्रविष्टि 16
0x011E (286) विभाजन प्रविष्टि 16
0x012E (302) विभाजन प्रविष्टि 16
0x013E (318) विभाजन प्रविष्टि 16
0x014E (334) विभाजन प्रविष्टि 16
0x015E (350) विभाजन प्रविष्टि 16
0x016E (366) विभाजन प्रविष्टि 16
0x017E (382) विभाजन प्रविष्टि 16
0x018E (398) विभाजन प्रविष्टि 16
0x019E (414) विभाजन प्रविष्टि 16
0x01AE (430) विभाजन प्रविष्टि 16
0x01BE (446) विभाजन प्रविष्टि नं०1 विभाजन तालिका
(प्राथमिक विभाजनों के लिए)
16
0x01CE (462) विभाजन प्रविष्टि नं०2 16
0x01DE (478) विभाजन प्रविष्टि नं०3 16
0x01EE (494) विभाजन प्रविष्टि नं०4 16
0x01FE (510) 0x55 बूट चिह्न[lower-alpha 1] 2
0x01FF (511) 0xAA
कुल आकार: 252 + 2 + 12×16 + 4×16 + 2 512

विभाजन तालिका प्रविष्टियाँ

एक 16-बाइट विभाजन प्रविष्टि का अभिविन्यास[13] (सभी मल्टी-बाइट क्षेत्र अल्प-अंत वाले हैं)
ऑफसेट
(बाइट)
क्षेत्र की लम्बाई विवरण
0x00 1 byte स्थिति या भौतिक ड्राइव (बिट 7 सेट सक्रिय या बूट करने योग्य के लिए है, पुराने एमबीआर केवल 0x80 स्वीकार करते हैं, 0x00 का मतलब निष्क्रिय है, और 0x010x7F अमान्य के लिए खड़ा है)[lower-alpha 3]
0x01 3 बाइट विभाजन में पहले पूर्ण क्षेत्र का सीएचएस पता[lower-alpha 4] प्रारूप तीन बाइट्स द्वारा वर्णित है, अगली तीन पंक्तियां देखें।
0x01 1 बाइट
h7–0 हेड[lower-alpha 5]
x x x x x x x x
0x02 1 बाइट
c9–8 s5–0 5-0 बिट्स में सेक्टर; बिट्स 7-6 सिलेंडर के उच्च बिट हैं[lower-alpha 5]
x x x x x x x x
0x03 1 बाइट
c7–0 सिलेंडर के 7-0 बिट्स[lower-alpha 5]
x x x x x x x x
0x04 1 बाइट विभाजन प्रकार[15]
0x05 3 बाइट विभाजन में अंतिम निरपेक्ष क्षेत्र का सीएचएस पता।[lower-alpha 4] प्रारूप 3 बाइट्स द्वारा वर्णित है, अगली 3 पंक्तियाँ देखें।
0x05 1 बाइट
h7–0
x x x x x x x x
0x06 1 बाइट
c9–8 s5–0 0-6 बिट्स में क्षेत्र; बिट्स 7-6 सिलेंडर के उच्च बिट हैं[lower-alpha 5]
x x x x x x x x
0x07 1 बाइट
c7–0 सिलेंडर के 7–0 बिट्स
x x x x x x x x
0x08 4 बाइट विभाजन में पहले निरपेक्ष क्षेत्र तार्किक ब्लॉक पताभिगमन[lower-alpha 6]
0x0C 4 बाइट विभाजन में क्षेत्रों की संख्या[lower-alpha 6]

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

सीएचएस योजना में, क्षेत्र सूचकांक (लगभग) सदैव क्षेत्र 0 के स्थान पर क्षेत्र 1 के साथ प्रारंभ होता है, और एमएस-डॉस/पीसी डॉस के 7.10 तक के सभी संस्करणों में त्रुटि के कारण, हेडों की संख्या सामान्यतः 256 के स्थान पर 255[lower-alpha 7]तक सीमित होती है और जब एक सीएचएस का पता इन क्षेत्रों के अनुरूप होने के लिए अत्यधिक बड़ा होता है, तो आजकल सामान्यतः ट्यूपल (1023, 254, 63) का उपयोग किया जाता है, हालांकि पुराने सिस्टमों, और पुराने डिस्क यंत्रों के साथ, सिलेंडर का मान प्रायः सीएचएस अवरोधक के सापेक्ष लगभग 8 जीबी के करीब स्थित होता है, जो कि अस्पष्टता और डेटा विकार के जोखिम का कारण बनता है। (यदि स्थिति में जीपीटी के साथ डिस्क पर "सुरक्षात्मक" एमबीआर सम्मिलित है, तो इंटेल के विस्तरणीय फ़र्मवेयर अंतर्पृष्ठ विनिर्देश के लिए आवश्यक है कि ट्यूपल (1023, 255, 63) का उपयोग किया जाए।) मूल/लीगेसी आईएनटी 13एच बायोस डिस्क अभिगमन नियमन में कॉल करने की सुविधा के लिए 10-बिट सिलेंडर मान को दो बाइट के भीतर दर्ज किया गया है, जहाँ 16 बिट को क्षेत्र और सिलेंडर भागों में, न कि बाइट सीमाओं पर विभाजित किया गया था।[14]

सीएचएस पताभिगमन की सीमाओं के कारण,[17][18] एलबीए, या तार्किक ब्लॉक पताभिगमन का उपयोग करने के लिए एक संक्रमण किया गया था। विभाजन की लंबाई और विभाजन प्रारंभ पता दोनों विभाजन तालिका प्रविष्टियों में 32-बिट राशियों के रूप में संग्रहित क्षेत्र मान हैं। क्षेत्र का आकार 512 (29) बाइट पर निश्चित माना जाता था, और चिपसेट, बूट क्षेत्र, ऑपरेटिंग सिस्टम, डेटाबेस इंजन, विभाजन उपकरण, बैकअप और फाइल प्रणाली उपयोगिताओं और अन्य सॉफ़्टवेयर सहित महत्वपूर्ण घटकों की एक विस्तृत श्रृंखला का यह मान जटिल-कोडित था। वर्ष 2009 के अंत से, 4096-बाइट क्षेत्रों (4केएन या उन्नत प्रारूप) को नियोजित करने वाले डिस्क ड्राइव उपलब्ध हैं, हालाँकि इनमें से कुछ ड्राइवों के लिए क्षेत्र के आकार को अभी भी हार्ड-ड्राइव फर्मवेयर में रूपांतरण के माध्यम से होस्ट सिस्टम के लिए 512 बाइट के रूप में दर्ज किया गया था और इसे 512 अनुकरण ड्राइव (512ई) के रूप में संदर्भित किया गया था।

चूँकि ब्लॉक के पते और आकार को 32 बिट का उपयोग करके एमबीआर की विभाजन तालिका में संग्रहित किया जाता है, जो कि विभाजनों का उपयोग करने वाली ड्राइवों का अधिकतम आकार और साथ ही उच्चतम प्रारंभ पता है, जिसमें 512-बाइट क्षेत्र (वास्तविक या अनुकरणीय) क्षेत्र होते हैं, और यह 2 टेबिबाइट−512 बाइट (2 199 023 255 040 बाइट या 4 294 967 295 (232−1) क्षेत्र × 512 (29) बाइट प्रति क्षेत्र) से अधिक नहीं हो सकता है।[2] इस क्षमता सीमा को कम करना जीपीटी के विकास के लिए प्रमुख प्रेरणाओं में से एक था।

चूँकि विभाजन जानकारी को एमबीआर विभाजन तालिका में प्रारंभिक ब्लॉक पते और लंबाई का उपयोग करके संग्रहित किया जाता है, इसलिए सैद्धांतिक रूप में विभाजन को इस प्रकार से परिभाषित करना संभव हो सकता है कि 512-बाइट क्षेत्रों के साथ डिस्क के लिए आवंटित स्थान, कुल 4 टेबिबाइट का आकार प्रदान करता है। यदि एक विभाजन को छोड़कर सभी विभाजन 2 टेबिबाइट की सीमा से नीचे स्थित हैं और अंतिम विभाजन को 232−1 को प्रारंभ या बंद करने के रूप में निर्दिष्ट किया गया है और यह 232−1 तक के आकार को निर्दिष्ट करता है, जिससे एक ऐसे विभाजन को परिभाषित किया जाता है, जिसे क्षेत्र पते को अभिगमित करने के लिए 32 बिट के स्थान पर 33 बिट की आवश्यकता होती है । हालाँकि, व्यवहार में, लिनक्स, फ्रीबीएसडी और विंडोज़ 7[19] सहित केवल कुछ एलबीए-48-सक्षम ऑपरेटिंग सिस्टम उपलब्ध हैं, जो 64-बिट क्षेत्र पतों का उपयोग आंतरिक रूप से करते हैं, और वास्तव में इसका समर्थन करते हैं। कोड स्थान की कमी और केवल 32 बिट का समर्थन करने वाली एमबीआर विभाजन तालिका की प्रकृति के कारण बूट क्षेत्र प्रायः 32-बिट गणनाओं का उपयोग करते हैं, जब तक कि ये विशेष रूप से एलबीए-48 की पूर्ण पता श्रेणी का समर्थन करने के लिए या केवल 64-बिट प्लेटफॉर्म पर संचालित होने के लिए संरचित नहीं किए जाते हैं, यद्यपि इन्हें एलबीए-28 के स्थान पर एलबीए-48 का समर्थन करने के लिए सक्षम किया गया हो। आंतरिक रूप से 32-बिट क्षेत्र पतों का उपयोग करने वाला कोई भी बूट कोड या ऑपरेटिंग सिस्टम, पतों को इस विभाजन तक अभिगमन के लिए चारों ओर आवरित कर देता है और इसके परिणामस्वरूप सभी विभाजनों पर गंभीर डेटा विकार उत्पन्न होता है।

यूएसबी बाह्य ड्राइव जैसी डिस्कों के लिए भी सीमाएँ है, जो 512 बाइट के अतिरिक्त एक क्षेत्र आकार प्रस्तुत करती हैं। 4096 के क्षेत्र आकार के परिणामस्वरूप एक विभाजन के आकार में आठ गुना वृद्धि होती है जिसे एमबीआर का उपयोग करके परिभाषित किया जा सकता है, जिससे आकार में 16 टेबिबाइट (232 × 4096 बाइट) तक के विभाजन की अनुमति मिलती है।[20] विंडोज़ एक्सपी की तुलना में हाल के संस्करण बड़े क्षेत्र आकारों के साथ-साथ मैक ओएस एक्स का समर्थन करते हैं, और लिनक्स ने 2.6.31[21] या 2.6.32,[22] के बाद से बड़े क्षेत्र आकारों का समर्थन किया है, लेकिन बूट भारक, विभाजन यंत्रों और कंप्यूटर बायोस कार्यान्वयन के साथ समस्याएँ कुछ सीमाएँ प्रस्तुत करती हैं,[23] क्योंकि ये प्रायः क्षेत्र बफ़रों के लिए केवल 512 बाइट आरक्षित करने के लिए जटिल-तारित होते हैं, जिससे मेमोरी बड़े क्षेत्र आकारों के लिए अधिलेखित हो जाती है। इससे अप्रत्याशित व्यवहार भी हो सकता है, और इसलिए अनुकूलता और मानक अनुरूपता के एक विषय होने पर इससे बचना चाहिए।

जहाँ एक डेटा भंडारण उपकरण को जीपीटी योजना के साथ विभाजित किया गया है, मास्टर बूट रिकॉर्ड में अभी भी एक विभाजन तालिका उपस्थित होती है, लेकिन इसका एकमात्र उद्देश्य जीपीटी के अस्तित्व को इंगित करना और केवल एमबीआर विभाजन तालिका योजना को समझने वाले उपयोगिता कार्यक्रमों को किसी भी विभाजन के निर्माण से रोकना है, जिसमें ये डिस्क पर अन्यथा मुक्त स्थान को देखते हैं, जो गलती से जीपीटी को मिटा देता है।

सिस्टम बूटस्ट्रैपिंग

आईबीएम पीसी-संगत कंप्यूटरों पर, बूटस्ट्रैपिंग प्रक्रिया यन्त्र सामग्री (रीड ऑनली मैमोरी बायोस के भीतर निहित) मास्टर बूट रिकॉर्ड को लोड और निष्पादित करती है।[24] पीसी/एक्सटी (प्रकार 5160) ने इंटेल 8088 कंप्यूटर प्रोसेसर का उपयोग किया। सभी एक्स86 आर्किटेक्चर सिस्टम संगत बने रहने के लिए एक ऑपरेटिंग मोड में माइक्रोप्रोसेसर से प्रारंभ होते हैं, जिसे वास्तविक मोड कहा जाता है। बायोस एमबीआर का पाठन भंडारण उपकरण से भौतिक मेमोरी में करता है, और फिर यह माइक्रोप्रोसेसर को बूट कोड के प्रारंभ के लिए निर्देशित करता है। चूँकि बायोस वास्तविक मोड में संचालित होता है, अतः जब एमबीआर प्रोग्राम निष्पादित होना प्रारंभ होता है तो प्रोसेसर वास्तविक मोड में होता है, और इसलिए एमबीआर के प्रारंभ में वास्तविक-मोड मशीन कोड के सम्मिलित होने की आशा होती है।[24]

चूँकि बायोस बूटस्ट्रैप नियमन को लोड करता है और भौतिक डिस्क से केवल एक क्षेत्र को संचालित करता है, अतः बूट कोड के साथ एमबीआर में विभाजन तालिका होने से यह एमबीआर प्रोग्राम की संरचना को आसान बनाता है। इसमें एक छोटा प्रोग्राम होता है जो लक्षित विभाजन के वॉल्यूम बूट रिकॉर्ड (वीबीआर) को लोड करता है। तब इस कोड को नियंत्रण दिया जाता है, जो वास्तविक ऑपरेटिंग सिस्टम को लोड करने के लिए उत्तरदायी होता है। इस प्रक्रिया को श्रृंखला लोडिंग के रूप में जाना जाता है।

लोकप्रिय एमबीआर कोड प्रोग्राम, पीसी डॉस और एमएस-डॉस को बूट करने के लिए बनाए गए थे, और समान बूट कोड व्यापक उपयोग में हैं। ये बूट क्षेत्र FDISK विभाजन तालिका योजना के उपयोग में होने की आशा करते हैं और एमबीआर की अंतर्निहित विभाजन तालिका में विभाजन की सूची की गहन जाँच करते हैं जिससे केवल एक ऐसे विभाजन को खोजा जा सके जो सक्रिय ध्वज के साथ चिह्नित है।[25] तब यह सक्रिय विभाजन के वॉल्यूम बूट रिकॉर्ड (वीबीआर) को लोड और संचालित करता है।

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

एक्स86 प्रोसेसर का उपयोग न करने वाली मशीनों, या खुला फ़र्मवेयर या विस्तरणीय फ़र्मवेयर अंतर्पृष्ठ (ईएफआई) फ़र्मवेयर जैसे गैर-बायोस फ़र्मवेयर वाली एक्स86 मशीनों पर यह संरचना अनुपयुक्त है, और एमबीआर को सिस्टम बूटस्ट्रैप के हिस्से के रूप में उपयोग नहीं किया जाता है।[26] इसके स्थान पर ईएफआई फर्मवेयर सीधे जीपीटी विभाजन योजना और एफएटी फाइल प्रणाली प्रारूप के अध्ययन में सक्षम है, और ईएफआई प्रणाली विभाजन में फाइलों के रूप में स्थित प्रोग्राम को लोड और संचालित करता है।[27] यदि जीपीटी विभाजन तालिका योजना का उपयोग किया गया है, तो एमबीआर केवल उसी सीमा तक सम्मिलित होगा, जिसमें संगतता उद्देश्यों के लिए एक विभाजन तालिका सम्मिलित हो सकती है।

कुछ एमबीआर प्रतिस्थापन कोड भी उपलब्ध हैं, जो ईएफआई फर्मवेयर के बूटस्ट्रैप का अनुकरण करते हैं, और जो गैर-ईएफआई मशीनों को जीपीटी विभाजन योजना का उपयोग करके डिस्क से बूट करने में सक्षम बनाता है। यह एक जीपीटी का पता लगाता है, प्रोसेसर को सही ऑपरेटिंग मोड में रखता है, और इस कार्य को पूरा करने के लिए ईएफआई संगत कोड को डिस्क से लोड करता है।

डिस्क की पहचान

बाहरी हार्ड ड्राइव के विभाजन तालिका में निहित जानकारी, जैसा कि लिनक्स के तहत चल रहे उपयोगिता कार्यक्रम क्यूटीपार्टेड में दिखाई देता है

बूटस्ट्रैप कोड और विभाजन तालिका के अतिरिक्त, मास्टर बूट रिकॉर्ड में डिस्क चिह्न हो सकते हैं। यह एक 32-बिट मान है जिसका उद्देश्य विशिष्ट रूप से डिस्क माध्यम की पहचान करना है (जैसा कि डिस्क इकाई के विपरीत है - दो आवश्यक रूप से निष्कासनीय हार्ड डिस्कों के लिए समान नहीं हैं)।

डिस्क चिह्न विंडोज एनटी संस्करण 3.5 द्वारा प्रस्तुत किया गया था, लेकिन अब इसका उपयोग कई ऑपरेटिंग सिस्टमों द्वारा किया जाता है, जिसमें लिनक्स कर्नेल संस्करण 2.6 और बाद के सिस्टम सम्मिलित हैं। लिनक्स उपकरण एनटी डिस्क चिह्न का उपयोग यह निर्धारित करने के लिए कर सकते हैं कि मशीन किस डिस्क से बूट हुई है।[28]

विंडोज एनटी (और बाद में माइक्रोसॉफ्ट ऑपरेटिंग सिस्टम), डिस्क चिह्न का उपयोग उस ओएस के तहत कंप्यूटर से जुड़े किसी भी डिस्क पर सभी विभाजनों के लिए एक सूचकांक के रूप में करता है; ये चिह्न मुख्य रूप से डिस्क विभाजन और ड्राइव अक्षरों के बीच निरंतर प्रतिचित्रण को संग्रहित करने के लिए विंडोज़ रजिस्ट्री कुंजियों में रखे जाते हैं। बूट करने योग्य विंडोज़ एनटी (या बाद के) विभाजनों के स्थान का वर्णन करने के लिए इसका उपयोग विंडोज़ एनटी बूट.आईएनआई फ़ाइलों में भी किया जा सकता है (हालांकि अधिकांश ऐसा नहीं करते हैं)।[29] जहाँ एनटी डिस्क चिह्न विंडोज़ 2000/एक्सपी रजिस्ट्री में दिखाई देते हैं, वह एक कुंजी (कई के बीच) है:

HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\

यदि एमबीआर ​​में संग्रहित डिस्क का चिह्न A8 E1 B9 D2 (इस क्रम में) था और इसका पहला विभाजन तार्किक ड्राइव सी: विंडोज़ के अंतर्गत था, तो कुंजी के मान \DosDevices\C: के अंतर्गत REG_BINARY डेटा होगा:

A8 E1 B9 D2 00 7E 00 00 00 00 00 00

पहले चार बाइट्स को डिस्क चिह्न कहा जाता है। (अन्य कुंजियों में, ये बाइट्स एमबीआर क्षेत्र में पाए जाने वाले क्रम से विपरीत क्रम में प्रकट हो सकते हैं।) इसके बाद आठ और बाइट्स होते हैं, जो अल्प-अंत संकेतन में 64-बिट पूर्णांक बनाते हैं, जिनका उपयोग इस विभाजन के बाइट ऑफ़सेट का पता लगाने के लिए किया जाता है। इस स्थिति में, 00 7ई षोडशआधारी मान 0x7ई00 (32,256) के अनुरूप है। इस धारणा के तहत कि विचाराधीन ड्राइव 512 बाइट्स के एक क्षेत्र आकार को सूचित करता है, फिर इस बाइट ऑफ़सेट को 512 से विभाजित करके 63 परिणाम देता है, जो कि भौतिक क्षेत्र संख्या (या एलबीए) है, जिसमें विभाजन का पहला क्षेत्र स्थित होता है (उपयोग की गई क्षेत्र गणना के विपरीत सीएचएस ट्यूपल्स के क्षेत्र मान में, जो एक से गिना जाता है, पूर्ण या एलबीए क्षेत्र मान शून्य से प्रारंभ होता है)।

यदि इस डिस्क में डिस्क चिह्न के बाद मान 00 F8 93 71 02 के साथ एक और विभाजन था (उदाहरण के तहत, कुंजी मान \DosDevices\D:), तो यह बाइट ऑफ़सेट 0x00027193F800 (10,495,457,280) पर प्रारंभ होगा, जो कि भौतिक क्षेत्र 20,498,940 का पहला बाइट भी है।

विंडोज विस्टा से प्रारंभ करते हुए, डिस्क चिह्न को बूट संविन्यास डेटा (बीसीडी) स्टोर में भी संग्रहित किया जाता है, और बूट प्रक्रिया इस पर निर्भर करती है।[30] यदि डिस्क चिह्न परिवर्तित, अप्राप्य या प्रतिकूल है, तो विंडोज़ बूट करने में असमर्थ होता है।[31] जब तक विंडोज को छद्म डिस्क चिह्न के रूप में उन्नत सक्रिय विभाजन प्रविष्टि के एलबीए पते के अतिव्यापी हिस्से का उपयोग करने के लिए प्रेरित नहीं किया जाता है, तब तक विंडोज़ का उपयोग पीटीएस-डॉस 7 और डीआर-डॉस 7.07 की उन्नत सक्रिय विभाजन सुविधा के साथ विरोधाभासी है, विशेष रूप से यदि इनका बूट कोड डिस्क के पहले 8 जीबी के बाहर स्थित है, इसलिए यहाँ एलबीए पताभिगमन का उपयोग किया जाना चाहिए।

प्रोग्रामिंग विचार

एमबीआर की उत्पत्ति पीसी एक्सटी में हुई थी।[32] आईबीएम पीसी-संगत कंप्यूटर अल्प-अंत वाले हैं, जिसका अर्थ है कि प्रोसेसर दो या दो से अधिक बाइट वाले संख्यात्मक मानों में से न्यूनतम महत्वपूर्ण बाइट को मेमोरी में पहले संग्रहित करता है। मीडिया पर एमबीआर का प्रारूप इस परिपाटी को प्रदर्शित करता है। इस प्रकार, एमबीआर चिह्न डिस्क संपादक में अनुक्रम 55 AA के रूप में दिखाई देता है।[lower-alpha 1]

बायोस में बूटस्ट्रैप अनुक्रम पहले मान्य एमबीआर को लोड करता है, जो इसे कंप्यूटर की भौतिक मेमोरी में मेमोरी पता 0x0000:0x7C00 पर मिलता है।[32] एमबीआर प्रति के प्रारंभ में निष्पादन को निर्देशित करने के लिए बायोस कोड में निष्पादित अंतिम निर्देश उस पते पर "जंप" होता है। अधिकांश बायोस के लिए प्राथमिक सत्यापन ऑफ़सेट 0x01FE का चिह्न है, हालांकि एक बायोस कार्यान्वयनकर्ता अन्य जाँचों के सम्मिलितीकरण का चयन कर सकता है, जैसे कि यह सत्यापित करना कि एमबीआर ​​में डिस्क की सूचित क्षमता से परे क्षेत्रों को संदर्भित किए बिना एक मान्य विभाजन तालिका सम्मिलित है।

बायोस के लिए, निष्कासनीय (जैसे फ्लॉपी) और निश्चित डिस्क अनिवार्य रूप से समान हैं। या तो, बायोस मीडिया के पहले भौतिक क्षेत्र को रैम में 0x7C00 के पूर्ण पते पर पढ़ता है, लोड किए गए क्षेत्र के अंतिम दो बाइट में चिह्न की जाँच करता है, और फिर, यदि चिह्न सही पाया जाता है, तो नियंत्रण को जंप (जेएमपी) निर्देश वाले क्षेत्र के पहले बाइट में स्थानांतरित कर देता है। बायोस द्वारा निर्मित एकमात्र वास्तविक अंतर यह है कि (स्वतःनिर्धारित रूप से, या यदि बूट क्रम विन्यास करने योग्य नहीं है) यह पहली निश्चित डिस्क से बूट करने का प्रयास करने से पूर्व पहली निष्कासनीय डिस्क से बूट करने का प्रयास करता है। बायोस के दृष्टिकोण से, रैम में वॉल्यूम बूट रिकॉर्ड द्वारा एमबीआर को लोड करने की क्रिया, ऑपरेटिंग सिस्टम भारक के ऑब्जेक्ट कोड को रैम में लोड करने वाली फ़्लॉपी डिस्क वॉल्यूम बूट रिकॉर्ड की क्रिया के समान ही है। किसी भी स्थिति में, बायोस द्वारा लोड किया गया प्रोग्राम ऑपरेटिंग सिस्टम के श्रृंखला भारण के रूप में कार्य करता है।

जबकि एमबीआर बूट क्षेत्र कोड, भौतिक पते 0x0000:0x7C00 पर लोड होने की आशा करता है,[lower-alpha 8] भौतिक पते 0x0000:0x0501 (पता 0x0000:0x0500 फीनिक्स बायोस द्वारा उपयोग किया गया अंतिम पता है[14]) से 0x0000:0x7FFF की सभी मेमोरीज़,[33] बाद में 0x0000: 0xFFFF[32] (और कभी-कभी[lower-alpha 9] 0x9000: 0xFFFF तक) पर स्थिर हो जाती हैं - पहले 640 केबी का अंत वास्तविक मोड में उपलब्ध है।[lower-alpha 10] INT 12h बायोस बाधित कॉल यह निर्धारित करने में सहायता प्रदान कर सकता है कि कितनी मेमोरी को सुरक्षित रूप से आवंटित किया जा सकता है (स्वतःनिर्धारित रूप से, यह आधार मेमोरी आकार को खंड: ऑफ़सेट स्थान 0x0040:0x0013 से केबी में पढ़ता है, लेकिन यह अन्य स्थानिक प्री-बूट सॉफ़्टवेयर जैसे बायोस ओवरले, रिमोट प्रोग्राम भारक कोड या वायरस द्वारा उपलब्ध मेमोरी की सूचित मात्रा को कम करने के लिए बूट क्षेत्र जैसे अन्य बूट अवस्था सॉफ़्टवेयर को इन्हें अधिलेखित करने से रोकने के लिए अंकुशित किया जा सकता है)।

512-बाइट एमबीआर के अंतिम 66 बाइट, विभाजन तालिका और अन्य जानकारी के लिए आरक्षित हैं, इसलिए एमबीआर बूट क्षेत्र प्रोग्राम 446 बाइट मेमोरी या इससे कम के अनुरूप होने के लिए पर्याप्त छोटा होना चाहिए।

एमबीआर कोड विभाजन तालिका की जाँच करता है, एक उपयुक्त विभाजन का चयन करता है और उस प्रोग्राम को लोड करता है, जो बूट प्रक्रिया के अगले चरण को सामान्यतः आईएनटी 13एच बायोस कॉल का उपयोग करके करता है। एमबीआर बूटस्ट्रैप कोड वॉल्यूम बूट रिकॉर्ड कोड को लोड और संचालित (एक बूट भारक या ऑपरेटिंग सिस्टम पर निर्भर) करता है, जो "सक्रिय" विभाजन की प्रारंभ में स्थित होता है। वॉल्यूम बूट रिकॉर्ड 512-बाइट क्षेत्र के भीतर अनुरूप होता है, लेकिन एमबीआर कोड के लिए अतिरिक्त क्षेत्रों को एक क्षेत्र से अधिक लंबे बूट भारक को समायोजित करने के लिए लोड करना सुरक्षित होता है, लेकिन शर्त यह है कि ये क्षेत्र आकार को अनुमानित ना करें। वास्तव में, प्रत्येक आईबीएम एक्सटी और एटी-क्लास मशीन में 0x7C00 पते पर कम से कम 1 केबी रैम उपलब्ध है, इसलिए 1 केबी क्षेत्र का उपयोग बिना किसी समस्या के किया जा सकता है। एमबीआर के समान, एक वॉल्यूम बूट रिकॉर्ड सामान्य रूप से 0x0000:0x7C00 पते पर लोड होने की अपेक्षा करता है। यह इस तथ्य का परिणाम है कि वॉल्यूम बूट रिकॉर्ड संरचना अविभाजित मीडिया पर उत्पन्न हुई है, जहाँ वॉल्यूम बूट रिकॉर्ड सीधे बायोस बूट प्रक्रिया द्वारा लोड किया जाता है; जैसा कि ऊपर उल्लेख किया गया है, बायोस, एमबीआर और वॉल्यूम बूट रिकॉर्ड (वीबीआर) [lower-alpha 11] को ठीक समान मानता है। चूँकि यह वही स्थान है, जहाँ एमबीआर को लोड किया गया है, एमबीआर के पहले कार्यों में से एक, स्वयं को मेमोरी में किसी अन्य स्थान पर स्थानांतरित करना है। स्थानांतरण पता एमबीआर द्वारा निर्धारित किया जाता है, लेकिन यह प्रायः 0x0000:0x0600 (एमएस-डॉस/पीसी डॉस, ओएस/2 और विंडोज़ एमबीआर कोड के लिए) या 0x0060:0x0000 (अधिकांश डीआर-डॉस एमबीआर) होता है। (यद्यपि ये दोनों खंडित पते वास्तविक मोड में एक ही भौतिक मेमोरी पते को स्थिर मानते हैं, एप्पल डार्विन को बूट करने के लिए, एमबीआर को 0x0060:0x0000 के स्थान पर 0x0000:0x0600 पर स्थानांतरित किया जाना चाहिए, क्योंकि कोड डीएस पर निर्भर करता है, जो कि विभाजन प्रविष्टि के लिए एमबीआर द्वारा प्रदान किया गया एसआई सूचक है, लेकिन यह इसे त्रुटिपूर्वक केवल 0x0000:एसआई के माध्यम से संदर्भित करता है।[34]) यह महत्वपूर्ण है कि मेमोरी में अन्य पतों को स्थानांतरित न किया जाए क्योंकि कई वीबीआर अपनी बूट फ़ाइल को लोड करते समय एक निश्चित मानक मेमोरी अभिविन्यास ग्रहण करते हैं।

विभाजन तालिका रिकॉर्ड में स्थिति क्षेत्र का उपयोग सक्रिय विभाजन को इंगित करने के लिए किया जाता है। मानक-अनुरूप एमबीआर केवल एक विभाजन को सक्रिय चिह्नित करने की अनुमति प्रदान करता है और एक वैध विभाजन तालिका के अस्तित्व को निर्धारित करने के लिए इसे बुद्धिमता-जाँच के हिस्से के रूप में उपयोग करता है। यदि एक से अधिक विभाजनों को सक्रिय चिह्नित किया गया है, तो ये एक त्रुटि संदेश को प्रदर्शित करते हैं। कुछ गैर-मानक एमबीआर इसे एक त्रुटि स्थिति के रूप में नहीं मानते हैं और केवल पंक्ति में पहले चिह्नित विभाजन का उपयोग करते हैं।

परंपरागत रूप से, 0x00 (सक्रिय नहीं) और 0x80 (सक्रिय) के अतिरिक्त अन्य मान अमान्य थे और बूटस्ट्रैप प्रोग्राम, इनका सामना करने पर एक त्रुटि संदेश प्रदर्शित करता है। हालांकि, प्लग और प्ले बायोस विशिष्टता और बायोस बूट विशिष्टता (बीबीएस) ने वर्ष 1994 से अन्य उपकरणों को भी बूट करने योग्य बनने की अनुमति दी थी।[33][35] परिणामस्वरुप, एमएस-डॉस 7.10 (विंडोज़ 95बी) और उच्चतर के प्रारंभ के साथ, एमबीआर ने सेट बिट 7 को सक्रिय ध्वज के रूप में मानना ​​​​प्रारंभ कर दिया और केवल 0x01..0x7F मानों के लिए एक त्रुटि संदेश को प्रदर्शित किया। इसने बाद में संबंधित विभाजन के वीबीआर को लोड करते समय उपयोग की जाने वाली भौतिक ड्राइव इकाई के रूप में प्रविष्टि के उपयोग को जारी रखा, जिससे अब 0x80 के अतिरिक्त अन्य बूट ड्राइव को भी मान्य माना जाता है, हालाँकि, एमएस-डॉस ने इस विस्तार का उपयोग स्वयं नहीं किया। विभाजन तालिका में वास्तविक भौतिक ड्राइव संख्या को संग्रहित करना सामान्य रूप से पश्चगामी संगतता समस्याओं का कारण नहीं बनता है, क्योंकि केवल पहली ड्राइव के अतिरिक्त अन्य ड्राइव पर मान 0x80 से भिन्न होता है (जो वैसे भी पहले बूट करने योग्य नहीं है)। हालाँकि, अन्य ड्राइव को बूट करने के लिए सक्षम सिस्टम के साथ भी, विस्तार अभी भी सार्वभौमिक रूप से कार्य नहीं कर सकता है, उदाहरण के लिए, भौतिक ड्राइव के बायोस समनुदेशन (असाइनमेंट) के बाद जब ड्राइव को हटाया, जोड़ा या विनिमय किया जाता है। इसलिए, बायोस बूट विनिर्देश (बीबीएस) के अनुसार,[33] यह एक आधुनिक एमबीआर के लिए सबसे अच्छा अभ्यास है जो विभाजन तालिका में प्रविष्टि का उपयोग करने के स्थान पर मूल रूप से बायोस द्वारा प्रदान किए गए डीएल मान को पारित करने के लिए सक्रिय ध्वज के रूप में बिट 7 को स्वीकार करता है।

बायोस से एमबीआर अंतर्पृष्ठ

एमबीआर को मेमोरी स्थान 0x0000:0x7C00 पर लोड किया जाता है और निम्न सीपीयू रजिस्टरों के साथ निर्धारित किया जाता है, जब पूर्व बूटस्ट्रैप भारक (सामान्य रूप से बायोस में प्रारंभिक कार्यक्रम भारक) सीपीयू के वास्तविक मोड में 0x0000:0x7C00 पर जाकर निष्पादन भेजता है।

कुछ कॉम्पैक बायोस त्रुटिपूर्वक इसके स्थान पर 0x07C0:0x0000 का उपयोग करते हैं। हालांकि यह वास्तविक मोड मेमोरी में एक ही स्थान को संदर्भित करता है, यह गैर-मानक है और इससे बचा जाना चाहिए, क्योंकि एमबीआर कोड कुछ रजिस्टर मानों को मानता है या स्थानांतरित करने योग्य नहीं लिखता है, अन्यथा यह कार्य नहीं कर सकता है।
डीएल आईबीएम बायोस के साथ-साथ अधिकांश अन्य बायोस द्वारा समर्थित है। तोशिबा टी1000 बायोस, इसे ठीक से समर्थन न करने के लिए जाना जाता है, और कुछ पुराने वाइस 286 बायोस, निश्चित डिस्क के लिए 2 से अधिक या बराबर डीएल मानों का उपयोग करते हैं (जिससे यह बायोस के भौतिक ड्राइव संख्याओं के स्थान पर डॉस के तहत तार्किक ड्राइव संख्याओं को प्रदर्शित करता है)। निष्कासनीय ड्राइव के रूप में विन्यासित यूएसबी स्टिक्स को सामान्यतः डीएल = 0x80, 0x81, आदि का असाइनमेंट मिलता है। हालाँकि, कुछ दुर्लभ बायोस ने त्रुटिपूर्वक इन्हें डीएल = 0x01 के तहत प्रस्तुत किया, जैसे कि इन्हें सुपरफ्लॉपी के रूप में विन्यासित किया गया हो।
एक मानक अनुरूप बायोस, विशेष रूप से निश्चित डिस्क/निष्कासनीय ड्राइव के लिए 0x80 से अधिक या बराबर संख्या निर्दिष्ट करता है, और पारंपरिक रूप से केवल 0x80 तथा 0x00 मान बूट के दौरान भौतिक ड्राइव इकाइयों के रूप में पारित किए गए थे। परिपाटी के अनुसार, केवल निश्चित डिस्क/निष्कासनीय ड्राइव का विभाजन किया जाता है, इसलिए, पारंपरिक रूप से एमबीआर केवल डीएल मान 0x80 को देख सकता था। कई एमबीआर को डीएल मान को अनदेखा करने और जटिल-तारित मान (सामान्य रूप से 0x80) के साथ कार्य करने के लिए कोडित किया गया था।
प्लग और प्ले बायोस विशिष्टता और बायोस बूट विशिष्टता (बीबीएस), वर्ष 1994 से अन्य उपकरणों को भी बूट करने योग्य बनाने की अनुमति देती हैं।[33][35] बाद में अनुशंसा की गई कि एमबीआर ​​और वीबीआर कोड को आंतरिक रूप से जटिल-तारित स्वतःनिर्धारित के स्थान पर डीएल का उपयोग करना चाहिए।[33] जहाँ तक ​​एमबीआर कोड का संबंध है, यह विभिन्न गैर-मानक असाइनमेंट (उपरोक्त उदाहरण देखें) के साथ संगतता भी सुनिश्चित करता है।
एल टोरिटो विनिर्देश के बाद के बूट करने योग्य सीडी-रोम में, इस अंतर्पृष्ठ पर फ्लॉपी या सुपरफ्लॉपी के रूप में होने के लिए बायोस द्वारा आरोहित डिस्क प्रतिबिम्ब हो सकते हैं। संरक्षित क्षेत्र संचालन समय अंतर्पृष्ठ विस्तार सेवाएँ (पार्टीज़) और विश्वसनीय कंप्यूटिंग समूह (टीसीजी) बायोस विस्तार द्वारा 0x00 और 0x01 के डीएल मानों का उपयोग अन्यथा अदृश्य पार्टीज़ के विभाजन तक अभिगमन के लिए विश्वसनीय मोड में किया जा सकता है, जो हार्ड डिस्क के होस्ट संरक्षित क्षेत्र (एचपीए) के अंतिम भौतिक क्षेत्र में बूट अभियांत्रिकी विस्तार रिकॉर्ड (बीईईआर) के माध्यम से स्थित डिस्क प्रतिबिम्ब फ़ाइलें हैं। हालाँकि इन्हें फ्लॉपी या सुपरफ्लॉपी का अनुकरण करने के लिए संरचित किया गया है, एमबीआर कोड इन गैर-मानक डीएल मानों को स्वीकार करते हुए कम से कम ऑपरेटिंग सिस्टम के बूट चरण में विभाजित मीडिया के प्रतिबिम्बों का उपयोग करने की अनुमति देता है।
  • डीएच रजिस्टर बिट 5 = 0: आईएनटी 13एच के माध्यम से समर्थित उपकरण; अन्य: चिंताविषयक नहीं है (शून्य होना चाहिए)। डीएच कुछ आईबीएम बायोस द्वारा समर्थित है।
  • कुछ अन्य रजिस्टरों में मूल आईबीएम रोम बायोस के साथ विशेष रूप से कुछ रजिस्टर मान (डीएस, ईएस, एसएस = 0x0000; एसपी = 0x0400) हो सकते हैं, लेकिन इस पर विश्वास करने के लिए कुछ भी नहीं है, क्योंकि अन्य बायोस अन्य मानों का उपयोग कर सकते हैं। इसी कारण आईबीएम, माइक्रोसॉफ्ट, डिजिटल रिसर्च आदि के एमबीआर कोड ने कभी इसका लाभ नहीं लिया। बूट क्षेत्रों में इन रजिस्टर मानों पर विश्वास करने से श्रृंखला-बूट परिदृश्यों में भी समस्या हो सकती है।

प्लग-और-प्ले बायोस या बीबीएस समर्थन वाले सिस्टम, डीएल के अतिरिक्त पीएनपी डेटा के लिए एक सूचक प्रदान करते हैं:[33][35]

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

एमबीआर से वीबीआर अंतर्पृष्ठ

परिपाटी के अनुसार, एक मानक अनुरूप एमबीआर, सीपीयू के वास्तविक मोड में 0x0000:0x7C00 पर जाकर निम्नलिखित रजिस्टरों को व्यवस्थित रखने या विशेष रूप से निर्धारित करने के साथ मेमोरी स्थान 0x0000:0x7C00 पर सफलतापूर्वक लोड किए गए वीबीआर को निष्पादन भेजता है:

  • सीएस: आईपी = 0x0000:0x7C00[lower-alpha 12] (निरंतर)
  • डीएल = बूट ड्राइव यूनिट (ऊपर देखें)
एमएस-डॉस 2.0-7.0 / पीसी डॉस 2.0-6.3 एमबीआर प्रविष्टि पर प्राप्त डीएल मान को पारित नहीं करते हैं, बल्कि ये भौतिक बूट ड्राइव इकाई के रूप में चयनित प्राथमिक विभाजन की विभाजन तालिका प्रविष्टि में बूट स्थिति प्रविष्टि का उपयोग करते हैं। चूँकि यह परिपाटी द्वारा अधिकांश एमबीआर विभाजन तालिकाओं में 0x80 है, यह वस्तुओं को तब तक नहीं बदलता है जब तक कि बायोस पंक्ति में पहली निश्चित डिस्क/निष्कासनीय ड्राइव के अतिरिक्त किसी भौतिक उपकरण को बूट करने का प्रयास न करे। यही कारण है कि ये ऑपरेटिंग सिस्टम दूसरी हार्ड डिस्क आदि को बूट नहीं कर सकते हैं। कुछ एफडिस्क उपकरण द्वितीयक डिस्क पर विभाजन को "सक्रिय" के रूप में भी चिह्नित करने की अनुमति देते हैं। यह जानते हुए कि ये ऑपरेटिंग सिस्टम वैसे भी अन्य ड्राइव को बूट नहीं कर सकते हैं, इस स्थिति में इनमें से कुछ उपकरण, पारंपरिक रूप से निश्चित मान 0x80 को सक्रिय चिह्नक के रूप में उपयोग करना जारी रखते हैं, जबकि अन्य उपकरण वर्तमान में निर्दिष्ट भौतिक ड्राइव इकाइयों (0x81, 0x82) के अनुरूप मानों का उपयोग करते हैं। जिससे कम से कम सैद्धांतिक रूप से अन्य ड्राइव से बूट करने की अनुमति मिलती है। वास्तव में, यह कई एमबीआर कोड के साथ कार्य करता है, जो 0x80 पर बल देने के स्थान पर बूट स्थिति प्रविष्टि के सेट बिट 7 को सक्रिय ध्वज के रूप में ग्रहण करते हैं, हालांकि, एमएस-डॉस/पीसी डॉस एमबीआर के केवल निश्चित मान 0x80 को स्वीकार करने के लिए जटिल-तारित हैं। विभाजन तालिका में वास्तविक भौतिक ड्राइव संख्या को संग्रहित करने से भी समस्याएँ उत्पन्न होती हैं, जब भौतिक ड्राइव का बायोस असाइनमेंट परिवर्तित होता है, उदाहरण के लिए जब ड्राइव को हटाया, जोड़ा या विनिमय किया जाता है। इसलिए, एक सामान्य एमबीआर के बिट 7 को सक्रिय ध्वज के रूप में स्वीकार करने और अन्यथा केवल वीबीआर का उपयोग करने और पारित करने के लिए, मूल रूप से बायोस द्वारा प्रदान किया गया डीएल मान अधिकतम लचीलेपन की अनुमति प्रदान करता है। एमएस-डॉस 7.1 - 8.0, एमबीआर बिट 7 को सक्रिय ध्वज के रूप में और किसी भी मान 0x01..0x7F को अमान्य मानने के लिए परिवर्तित हो गए हैं, लेकिन ये अभी भी बायोस द्वारा प्रदान किए गए डीएल मान का उपयोग करने के स्थान पर विभाजन तालिका से भौतिक ड्राइव इकाई को ग्रहण करते हैं। डीआर-डॉस 7.07, विस्तारित एमबीआर बिट 7 को सक्रिय ध्वज के रूप में मानते हैं और स्वतःनिर्धारित रूप से बायोस डीएल मान का उपयोग करते हैं और इन मानों को पारित भी करते हैं (गैर-मानक मान 0x00..0x01 सहित मान कुछ बायोस द्वारा विभाजित मीडिया के लिए भी उपयोग किए जाते हैं), लेकिन ये लोडर और रियल/32 के संयोजन के साथ-साथ एमबीआर के विस्तृत व्यवहार के परिवर्तन हेतु वैकल्पिक बूट विधियों का समर्थन करने के लिए एक विशेष न्यूएलडीआर विन्यास खंड भी प्रदान करते हैं, जिससे यह विभाजन तालिका से प्राप्त ड्राइव मानों के साथ भी कार्य कर सके (लोडर और संयोजन के साथ महत्वपूर्ण एएपी, न्यूएलडीआर ऑफ़सेट 0x000C देखें), वाइस गैर-मानक ड्राइव इकाई 0x02..0x7F को 0x80..0xFD में रूपांतरित कर सके, और वैकल्पिक रूप से ड्राइव मान (विस्तारित बायोस पैमाना ब्लॉक (ईबीपीबी) में 0x019 या क्षेत्र ऑफ़सेट में 0x01FD ऑफ़सेट पर संग्रहित) को लोड किए गए वीबीआर में उन्हें निष्पादित करने से पहले को ठीक कर सके (न्यूएलडीआर ऑफ़सेट 0x0014 देखें); यह अन्य बूट भारकों को न्यूएलडीआर को श्रृंखला-भारक के रूप में उपयोग करने की अनुमति प्रदान करता है, फ्लाई पर इसकी मेमोरी के आंतरिक प्रतिबिम्ब को विन्यासित करता है और न्यूएलडीआर के माध्यम से वीबीआर, ईबीआर, या एएपी की लोडिंग को "टनल" करता है।
  • डीएच और ईएस की सामग्री: डीआई को एमबीआर द्वारा पूर्ण प्लग-और-प्ले समर्थन (ऊपर देखें) के लिए संरक्षित किया जाना चाहिए, हालाँकि, एमएस-डॉस 2.0 - 8.0 / पीसी डॉस 2.0 - 6.3 और विंडोज़ एनटी सहित कई एमबीआर /2000/एक्सपी को संरक्षित नहीं करना चाहिए। (यह आश्चर्यजनक नहीं है, क्योंकि डॉस के ये संस्करण प्लग-और-प्ले बायोस मानक से पहले के हैं, और पिछले मानकों और परिपाटियों ने डीएल के अतिरिक्त किसी अन्य रजिस्टर को संरक्षित करने की कोई आवश्यकता नहीं बताई है।) कुछ एमबीआर डीएच को 0 पर निर्धारित करते हैं।

एमबीआर कोड कई कार्यान्वयनों में वीबीआर को अतिरिक्त जानकारी प्रदान करता है:

  • डीएस:एसआई = यह सक्रिय वीबीआर के अनुरूप 16-बाइट एमबीआर विभाजन तालिका प्रविष्टि (स्थानांतरित एमबीआर में) को इंगित करता है। पीसी-मॉस 5.1, बूट करने के लिए इस पर निर्भर करता है, यदि विभाजन तालिका में किसी विभाजन को बूट करने योग्य के रूप में चिह्नित नहीं किया गया है। बहुउपयोगकर्ता डॉस और रीयल/32 बूट क्षेत्र, बूट फ़ाइल (लोडर.सिस) के प्राप्त ना हो सकने पर भारक के संयोजन के साथ सक्रिय विभाजन (या अन्य बूटस्ट्रैप भारक जैसे आईबीएमबायो.एलडीआर डिस्क पर एक निश्चित स्थिति पर) के बूट क्षेत्र का पता लगाने के लिए इसका उपयोग करते हैं। पीटीएस-डॉस 6.6 और एस/डॉस 1.0, इसे अपने उन्नत सक्रिय विभाजन (एएपी) सुविधा के साथ संयोजन में उपयोग करते हैं। लोडर और एएपी के लिए समर्थन के अतिरिक्त, डीआर-डॉस 7.07 अपने दोहरे सीएचएस/एलबीए वीबीआर कोड का उपयोग करते समय आवश्यक आईएनटी 13एच अभिगमन विधि का निर्धारण करने के लिए इसका उपयोग कर सकता है और यह विभाजन प्रविष्टि में बूट ड्राइव/स्थिति ध्वज क्षेत्र को प्रभावी रूप से उपयोग किए जाने वाले डीएल मान के अनुसार आद्यतित करता है। डार्विन बूटभारक (एप्पल के boot1h, boot1u, और डेविड इलियट के boot1fat32) इस संकेतक पर भी निर्भर करते हैं, लेकिन इसके अतिरिक्त ये डीएस का उपयोग नहीं करते हैं, परन्तु इसके स्थान पर 0x0000 पर निर्धारित होने की कल्पना करते हैं।[34] यदि यह धारणा गलत है तो यह समस्याएँ उत्पन्न करता है। ओएस/2, एमएस-डॉस 2.0 से 8.0, पीसी डॉस 2.0 से 7.10 और विंडोज़ एनटी/2000/एक्सपी का एमबीआर कोड भी यही अंतर्पृष्ठ प्रदान करता है, हालाँकि ये सिस्टम इसका उपयोग नहीं करते हैं। विंडोज़ विस्टा/7 एमबीआर, अब यह डीएस:एसआई सूचक प्रदान नहीं करता है। जबकि कुछ विस्तार केवल 16-बाइट विभाजन तालिका प्रविष्टि पर ही निर्भर करते हैं, अन्य विस्तारों के लिए संपूर्ण 4 (या 5 प्रविष्टि) विभाजन तालिकाओं के उपस्थित होने की भी आवश्यकता हो सकती है।
  • डीएस:बीपी रजिस्टर = यह वैकल्पिक रूप से सक्रिय वीबीआर के अनुरूप 16-बाइट एमबीआर विभाजन तालिका प्रविष्टि (स्थानांतरित एमबीआर में) को इंगित करता है। यह डीएस:एसआई (ऊपर देखें) द्वारा प्रदान किए गए संकेतक के समान है और यह एमएस-डॉस 2.0-8.0, पीसी डॉस 2.0-7.10, विंडोज़ एनटी/2000/एक्सपी/विस्टा/7 एमबीआर द्वारा प्रदान किया गया है। हालाँकि, यह अधिकांश तृतीय-पक्ष एमबीआर द्वारा समर्थित नहीं है।

डीआर-डॉस 7.07 के तहत एक विस्तारित अंतर्पृष्ठ को विस्तारित एमबीआर और लोडर के संयोजन द्वारा वैकल्पिक रूप से प्रदान किया जा सकता है:

  • एएक्स = मैजिक चिह्न इस न्यूएलडीआर विस्तार (0x0EDC) की उपस्थिति का संकेत देता है
  • डीएल = बूट ड्राइव इकाई (ऊपर देखें)
  • डीएस:एसआई = प्रयुक्त 16-बाइट एमबीआर विभाजन तालिका प्रविष्टि की ओर संकेत करता है (ऊपर देखें)
  • ईएस:बीएक्स = बूट क्षेत्र या न्यूएलडीआर क्षेत्र प्रतिबिम्ब (सामान्यतः 0x7C00) का प्रारम्भ
  • सीएक्स रजिस्टर = आरक्षित

जीपीटी के संयोजन में, एक उन्नत डिस्क ड्राइव विशिष्टता (ईडीडी) 4 हाइब्रिड एमबीआर प्रस्ताव, अंतर्पृष्ठ के लिए एक और विस्तार की सलाह देता है:[36]

  • ईएक्स रजिस्टर = 0x54504721 ( "!GPT")
  • डीएल = बूट ड्राइव इकाई (ऊपर देखें)
  • डीएस:एसआई = एक हाइब्रिड एमबीआर हस्तांतरण संरचना को इंगित करता है, जिसमें अतिरिक्त डेटा के बाद 16-बाइट प्रतिरूपी एमबीआर विभाजन तालिका प्रविष्टि (ऑफ़सेट 0x00 पर बूट ध्वज के लिए और ऑफसेट 0x04 पर विभाजन प्रकार को छोड़कर सभी बिट समूह के साथ) सम्मिलित है। यह ऊपर वर्णित पुराने डीएस:एसआई विस्तार के साथ आंशिक रूप से संगत है: यदि इन पुराने विस्तारों द्वारा केवल 16-बाइट विभाजन प्रविष्टि आवश्यकता है, न कि संपूर्ण विभाजन तालिका की।
चूँकि पुराने ऑपरेटिंग सिस्टम (इनके वीबीआर सहित) इस विस्तार का समर्थन नहीं करते हैं और न ही वे 2 टेबिबाइट बाधा से परे के क्षेत्रों को पता प्रदान करने में सक्षम हैं, एक जीपीटी-सक्षम हाइब्रिड बूट भारक को अभी भी 16-बाइट प्रतिरूपी एमबीआर विभाजन तालिका प्रविष्टि का अनुकरण करना चाहिए, यदि बूट विभाजन पहले 2 टीआईबी के भीतर स्थित है।[lower-alpha 13]
  • ईएस:डीआई = "$PnP" संस्थापन जाँच संरचना को इंगित करता है (ऊपर देखें)

सामग्री का संपादन और प्रतिस्थापन

यद्यपि विभिन्न डिस्क संपादकों का उपयोग करके सीधे एमबीआर क्षेत्र में बाइट्स में हेरफेर करना संभव है, फिर भी एमबीआर को कार्यकारी कोड के निश्चित समूहों के लेखन के लिए कई उपकरण उपलब्ध हैं। एमएस-डॉस 5.0 के बाद से, प्रोग्राम FDISK में स्विच /MBR सम्मिलित है, जो एमबीआर कोड का पुनर्लेखन करता है।[37] विंडोज 2000 और विन्डोज़ एक्सपी के अंतर्गत, पुनर्प्राप्ति कंसोल का उपयोग इसके fixmbr कमांड का उपयोग करके भंडारण उपकरण में नया एमबीआर कोड लिखने के लिए किया जा सकता है। विडोज़ विस्टा और विंडोज 7 के अंतर्गत, पुनर्प्राप्ति पर्यावरण का उपयोग BOOTREC /FIXMBR कमांड का उपयोग करके नया एमबीआर कोड लिखने के लिए किया जा सकता है। एमबीआर विज़ार्ड जैसी कुछ तृतीय-पक्ष उपयोगिताओं का उपयोग विभाजन तालिकाओं की सामग्री को सीधे संपादित करने के लिए (षोडश आधारी या डिस्क/क्षेत्र संपादकों के किसी भी ज्ञान की आवश्यकता के बिना) भी किया जा सकता है।[lower-alpha 14]

dd एक पीओएसआईएक्स कमांड है, जिसका उपयोग सामान्यतः एमबीआर सहित भंडारण उपकरण पर किसी भी स्थान के पाठन या लेखन के लिए किया जाता है। लिनक्स में, एमएस-सिस का उपयोग विंडोज़ एमबीआर को स्थापित करने के लिए किया जा सकता है। जीआरयूबी और एलआईएलओ परियोजनाओं में एमबीआर क्षेत्र के लिए कोड-लेखन के लिए grub-install और lilo -mbr नामक उपकरण उपलब्ध हैं। जीआरयूबी लीगेसी पारस्परिक कंसोल, setup और embed कमांड का उपयोग करके एमबीआर का लेखन कर सकता है, लेकिन जीआरयूबी2 को वर्तमान में एक ऑपरेटिंग सिस्टम के भीतर से संचालित करने के लिए grub-install की आवश्यकता होती है।

विभिन्न प्रोग्राम, प्राथमिक विभाजन तालिका और विस्तारित विभाजन में तार्किक विभाजन दोनों का "बैकअप" के निर्माण में सक्षम हैं।

लिनक्स sfdisk (सिस्टमरेस्क्यूसीडी पर) प्राथमिक और विस्तारित विभाजन तालिका के बैकअप को सुरक्षित रखने में सक्षम है। यह एक फाइल का निर्माण करता है जिसे टेक्स्ट सम्पादक में पढ़ा जा सकता है, या इस फाइल का उपयोग एसएफडिस्क द्वारा प्राथमिक/विस्तारित विभाजन तालिका को पुनर्स्थापित करने के लिए किया जा सकता है। विभाजन तालिका का बैकअप लेने के लिए उदाहरण कमांड sfdisk -d /dev/hda > hda.out और पुनर्स्थापित करने के लिए sfdisk /dev/hda < hda.out है। विभाजन तालिका को एक डिस्क से दूसरी डिस्क में इस प्रकार से कॉपी करना संभव है, जो प्रतिबिम्बन की स्थापना के लिए उपयोगी है, लेकिन एसएफडिस्क sfdisk -d /dev/sda | sfdisk /dev/sdb उपयोग करके बिना संकेत/चेतावनियों के कमांड को निष्पादित करता है।[38]

यह भी देखें

टिप्पणियाँ

  1. 1.0 1.1 1.2 1.3 1.4 1.5 1.6 The signature at offset 0x01FE in boot sectors is 55hex AAhex, that is 0x55 at offset 0x01FE and AAhex at offset 0x01FF. Since little-endian representation must be assumed in the context of IBM PC compatible machines, this can be written as 16-bit word AA55hex in programs for x86 processors (note the swapped order), whereas it would have to be written as 55AAhex in programs for other CPU architectures using a big-endian representation. Since this has been mixed up numerous times in books and even in original Microsoft reference documents, this article uses the offset-based byte-wise on-disk representation to avoid any possible misinterpretation.
  2. In order to ensure the integrity of the MBR boot loader code, it is important that the bytes at 0x00DA to 0x00DF are never changed, unless either all six bytes represent a value of 0 or the whole MBR bootstrap loader code (except for the (extended) partition table) is replaced at the same time as well. This includes resetting these values to 00 00 00 00 00 00hex unless the code stored in the MBR is known. Windows adheres to this rule.
  3. Originally, status values other than 0x00 and 0x80 were invalid, but modern MBRs treat the bit 7 as active flag and use this entry to store the physical boot unit.
  4. 4.0 4.1 The starting sector fields are limited to 1023+1 cylinders, 255+1 heads, and 63 sectors; ending sector fields have the same limitations.
  5. 5.0 5.1 5.2 5.3 The range for sector is 1 through 63; the range for cylinder is 0 through 1023; the range for head is 0 through 255 inclusive.[14]
  6. 6.0 6.1 The number of sectors is an index field; thus, the zero value is invalid, reserved and must not be used in normal partition entries. The entry is used by operating systems in certain circumstances; in such cases the CHS addresses are ignored.[16]
  7. "Quote: [Most] versions of MS-DOS (including MS-DOS 7 [Windows 95]) have a bug which prevents booting on hard disks with 256 heads (FFh), so many modern BIOSes provide mappings with at most 255 (FEh) heads." RBIL[39][40]
  8. The address 0000hex:7C00hex is the first byte of the 32nd KB of RAM. The loading of the boot program at this address historically was the reason why, while the minimum RAM size of an original IBM PC (type 5150) was 16 KB, 32 KB were required for the disk option in the IBM XT.
  9. If there is an EBDA, the available memory ends below it.
  10. Very old machines may have less than 640 KB (A0000hex or 655,360 bytes) of memory. In theory, only 32 KB (up to 0000hex:7FFFhex) or 64 KB (up to 0000hex:FFFFhex) are guaranteed to exist; this would be the case on an IBM XT-class machine equipped with only the required minimum amount of memory for a disk system.
  11. This applies when the BIOS handles a VBR, which is when it is in the first physical sector of unpartitioned media. Otherwise, the BIOS has nothing to do with the VBR. The design of VBRs is such as it is because VBRs originated solely on unpartitioned floppy disk media—the type 5150 IBM PC originally had no hard disk option—and the partitioning system using an MBR was later developed as an adaptation to put more than one volume, each beginning with its own VBR as-already-defined, onto a single fixed disk. By this design, essentially the MBR emulates the BIOS boot routine, doing the same things the BIOS would do to process this VBR and set up the initial operating environment for it just as if the BIOS had found that VBR on an unpartitioned medium.
  12. IP is set as a result of the jump. CS may be set to 0 either by executing a far jump or by loading the register value explicitly before executing a near jump. (It is impossible for jumped-to x86 code to detect whether a near or far jump was used to reach it [unless the code that made the jump separately passes this information in some way].)
  13. This is not part of the above mentioned proposal, but a natural consequence of pre-existing conditions.
  14. For example, PowerQuest's Partition Table Editor (PTEDIT32.EXE), which runs under Windows operating systems, is still available here: Symantec's FTP site.

संदर्भ

  1. Howe, Denis (2009-05-19) [1985]. "master boot record". FOLDOC. Archived from the original on 24 August 2017. Retrieved 2015-05-02.
  2. 2.0 2.1 2.2 2.3 "Windows support for hard disks that are larger than 2 TB". 1. Microsoft. 2013-06-26. 2581408. Archived from the original on 2017-04-27. Retrieved 2013-08-28.
  3. 3.0 3.1 3.2 Sedory, Daniel B. (2004). "The Mystery Bytes (or the Drive/Timestamp Bytes) of the MS-Windows 95B, 98, 98SE and Me Master Boot Record (MBR)". Master Boot Records. thestarman.pcministry.com. Archived from the original on 2017-08-24. Retrieved 2012-08-25.
  4. Lucas, Michael (2003). Absolute OpenBSD: Unix for the practical paranoid. p. 73. ISBN 9781886411999. Retrieved 2011-04-09. Every operating system includes tools to manage MBR partitions. Unfortunately, every operating system handles MBR partitions in a slightly different manner.
  5. Norton, Peter; Clark, Scott (2002). Peter Norton's New Inside the PC. Sams Publishing. pp. 360–361. ISBN 0-672-32289-7.
  6. Graves, Michael W. (2004). A+ Guide To PC Hardware Maintenance and Repair. Thomson Delmar. p. 276. ISBN 1-4018-5230-0.
  7. Andrews, Jean (2003). Upgrade and Repair with Jean Andrews. Thomson Course Technology. p. 646. ISBN 1-59200-112-2.
  8. Boswell, William (2003). Inside Windows Server 2003. Addison-Wesley Professional. p. 13. ISBN 0-7357-1158-5.
  9. Smith, Roderick W. (2000). The Multi-Boot Configuration Handbook. Que Publishing. pp. 260–261. ISBN 0-7897-2283-6.
  10. Brouwer, Andries Evert (2004-04-22) [2000]. "Properties of partition tables". Partition types. Archived from the original on 2017-08-24. Retrieved 2017-08-24. Matthias [R.] Paul writes: "[…] PTS-DOS [uses] a special fifth partition entry in front of the other four entries in the MBR and corresponding AAP-aware MBR bootstrap code. […]"
  11. Sedory, Daniel B. (2007-05-18) [2003]. "Notes on the Differences in one OEM version of the DOS 3.30 MBR". Master Boot Records. Archived from the original on 2017-08-24. Retrieved 2017-08-24. When we added partitions to this NEC table, the first one was placed at offsets 0x01EE through 0x01FD and the next entry was added just above it. So, the entries are inserted and listed backwards from that of a normal Table. Thus, looking at such a Table with a disk editor or partition listing utility, it would show the first entry in a NEC eight-entry table as being the last one (fourth entry) in a normal Partition Table. (NB. Shows an 8-entry partition table and where its boot code differs from MS-DOS 3.30.)
  12. Brouwer, Andries Evert (2004-04-22) [2000]. "Properties of partition tables". Partition types. Archived from the original on 2017-08-24. Retrieved 2017-08-24. Some OEM systems, such as AST DOS (type 14hex) and NEC DOS (type 24hex) had 8 instead of 4 partition entries in their MBR sectors. (Matthias R. Paul). (NB. NEC MS-DOS 3.30 and AST MS-DOS partition tables with eight entries are preceded with a signature A55Ahex at offset 0x017C.)
  13. "Partition Table". osdev.org. 2017-03-18 [2007-03-06]. Archived from the original on 2017-08-24. Retrieved 2017-08-24.
  14. 14.0 14.1 14.2 System BIOS for IBM PC/XT/AT Computers and Compatibles. Phoenix technical reference. Addison-Wesley. 1989. ISBN 0-201-51806-6.
  15. Brouwer, Andries Evert (2013) [1995]. "List of partition identifiers for PCs". Partition types. Archived from the original on 2017-08-24. Retrieved 2017-08-24.
  16. Wood, Sybil (2002). Microsoft Windows 2000 Server Operations Guide. Microsoft Press. p. 18. ISBN 978-0-73561796-4.
  17. "An Introduction to Hard Disk Geometry". Tech Juice. 2012-12-06 [2011-08-08]. Archived from the original on 2013-02-04.
  18. Kozierok, Charles M. (2001-04-17). "BIOS and the Hard Disk". The PC Guide. Archived from the original on 2017-06-17. Retrieved 2013-04-19.
  19. Smith, Robert (2011-06-26). "Working Around MBR's Limitations". GPT fdisk Tutorial. Archived from the original on 2017-08-24. Retrieved 2013-04-20.
  20. "More than 2 TiB on a MBR disk". superuser.com. 2013-03-07. Archived from the original on 2017-08-24. Retrieved 2013-10-22.
  21. "Transition to Advanced Format 4K Sector Hard Drives". Tech Insight. Seagate Technology. 2012. Archived from the original on 2017-08-24. Retrieved 2013-04-19.
  22. Calvert, Kelvin (2011-03-16). "WD AV‐GP Large Capacity Hard Drives" (PDF). Western Digital. Retrieved 2013-04-20.
  23. Smith, Roderick W. (2010-04-27). "Linux on 4KB-sector disks: Practical advice". DeveloperWorks. IBM. Archived from the original on 2017-08-24. Retrieved 2013-04-19.
  24. 24.0 24.1 "MBR (x86)". OSDev Wiki. OSDev.org. 2012-03-05. Archived from the original on 2017-08-24. Retrieved 2013-04-20.
  25. Sedory, Daniel B. (2003-07-30). "IBM DOS 2.00 Master Boot Record". The Starman's Realm. Archived from the original on 2017-08-24. Retrieved 2011-07-22.
  26. Singh, Amit (2009-12-25) [December 2003]. "Booting Mac OS X". Mac OS X Internals: The Book. Retrieved 2011-07-22.
  27. de Boyne Pollard, Jonathan (2011-07-10). "The EFI boot process". Frequently Given Answers. Archived from the original on 2017-08-24. Retrieved 2011-07-22.
  28. Domsch, Matt (2005-03-22) [2003-12-19]. "Re: RFC 2.6.0 EDD enhancements". Linux Kernel Mailing List. Archived from the original on 2017-08-24. Retrieved 2017-08-24.
  29. "Windows may use Signature() syntax in the BOOT.INI file". KnowledgeBase. Microsoft.
  30. McTavish (February 2014). "Vista's MBR Disk Signature". Multibooters: Dual and Multibooting with Vista. Archived from the original on 2017-08-24. Retrieved 2017-08-24.
  31. Russinovich, Mark (2011-11-08). "Fixing Disk Signature Collisions". Mark Russinovich's Blog. Microsoft. Archived from the original on 2017-08-24. Retrieved 2013-04-19.
  32. 32.0 32.1 32.2 Sakamoto, Masahiko (2010-05-13). "Why BIOS loads MBR into 0x7C00 in x86?". Glamenv-Septzen.net. Archived from the original on 2017-08-24. Retrieved 2011-05-04.
  33. 33.0 33.1 33.2 33.3 33.4 33.5 Compaq Computer Corporation; Phoenix Technologies Ltd.; Intel Corporation (1996-01-11). "BIOS Boot Specification 1.01" (PDF). 1.01. ACPICA. Archived (PDF) from the original on 2017-08-24. Retrieved 2013-04-20. [1]
  34. 34.0 34.1 Elliott, David F. (2009-10-12). "Why does the "standard" MBR set SI?". tgwbd.org. Archived from the original on 2017-08-24. Retrieved 2013-04-20.
  35. 35.0 35.1 35.2 Compaq Computer Corporation; Phoenix Technologies Ltd.; Intel Corporation (1994-05-05). "Plug and Play BIOS Specification 1.0A" (PDF). 1.0A. Intel. Archived from the original (PDF) on 2017-08-24. Retrieved 2013-04-20.
  36. Elliott, Robert (2010-01-04). "EDD-4 Hybrid MBR boot code annex" (PDF). Hewlett Packard, T13 Technical Committee. e09127r3. Archived (PDF) from the original on 2017-08-24. Retrieved 2013-04-20.
  37. "FDISK /MBR rewrites the Master Boot Record". Support. 1. Microsoft. 2011-09-23. 69013. Archived from the original on 2017-02-08. Retrieved 2013-04-19.
  38. "sfdisk(8) – Linux man page". die.net. 2013 [2007]. Archived from the original on 2017-08-24. Retrieved 2013-04-20.
  39. Brown, Ralf D. (2000-07-16). "Ralf Browns Interrupt List (v61 html)". Delorie Software. Retrieved 2016-11-03.
  40. Brown, Ralf D. (2000-07-16). "B-1302: INT 13 - DISK - READ SECTOR(S) INTO MEMORY". Ralf Brown's Interrupt List (RBIL) (61 ed.). Retrieved 2016-11-03. (NB. See file INTERRUP.B inside archive "INTER61A.ZIP.)

अग्रिम पठन

बाहरी संबंध