मास्टर बूट रिकॉर्ड
मास्टर बूट रिकॉर्ड (एमबीआर) एक विशेष प्रकार का बूट क्षेत्र है जो आईबीएम पीसी-संगत सिस्टम और इसके बाद के सिस्टमों में उपयोग के लिए नियत डिस्क (हार्ड डिस्क ड्राइव) या निष्कासनीय ड्राइव जैसे विभाजित कंप्यूटर मॉस संग्रहण उपकरण के ठीक प्रारंभ में स्थित होता है। एमबीआर की अवधारणा को वर्ष 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)
|
मूल भौतिक ड्राइव (0x80 –0xFF )
|
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 |
विभाजन तालिका प्रविष्टियाँ
ऑफसेट (बाइट) |
क्षेत्र की लम्बाई | विवरण | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0x00 | 1 byte | स्थिति या भौतिक ड्राइव (बिट 7 सेट सक्रिय या बूट करने योग्य के लिए है, पुराने एमबीआर केवल 0x80 स्वीकार करते हैं, 0x00 का मतलब निष्क्रिय है, और 0x01–0x7F अमान्य के लिए खड़ा है)[lower-alpha 3] | ||||||||||||||||||
0x01 | 3 बाइट | विभाजन में पहले पूर्ण क्षेत्र का सीएचएस पता।[lower-alpha 4] प्रारूप तीन बाइट्स द्वारा वर्णित है, अगली तीन पंक्तियां देखें। | ||||||||||||||||||
0x01 | 1 बाइट |
| ||||||||||||||||||
0x02 | 1 बाइट |
| ||||||||||||||||||
0x03 | 1 बाइट |
| ||||||||||||||||||
0x04 | 1 बाइट | विभाजन प्रकार[15] | ||||||||||||||||||
0x05 | 3 बाइट | विभाजन में अंतिम निरपेक्ष क्षेत्र का सीएचएस पता।[lower-alpha 4] प्रारूप 3 बाइट्स द्वारा वर्णित है, अगली 3 पंक्तियाँ देखें। | ||||||||||||||||||
0x05 | 1 बाइट |
| ||||||||||||||||||
0x06 | 1 बाइट |
| ||||||||||||||||||
0x07 | 1 बाइट |
| ||||||||||||||||||
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 देता है। TiB, यदि एक को छोड़कर सभी विभाजन 2 TiB सीमा से नीचे स्थित हैं और अंतिम विभाजन को 232−1 को प्रारंभ करने या बंद करने के रूप में निर्दिष्ट किया गया है और 232−1 तक के आकार को निर्दिष्ट करता है, जिससे एक विभाजन को परिभाषित किया जाता है जिसके लिए 33 की बजाय आवश्यकता होती है एक्सेस किए जाने वाले क्षेत्र एड्रेस के लिए 32 बिट्स। हालाँकि, व्यवहार में, केवल कुछ एलबीए-48-सक्षम ऑपरेटिंग सिस्टम, जिसमें लिनक्स, FreeBSD और विंडोज़ 7[19] शामिल हैं, जो 64-बिट क्षेत्र पतों का आंतरिक रूप से उपयोग करते हैं, वास्तव में इसका समर्थन करते हैं। कोड स्थान की कमी और एमबीआर विभाजन तालिका की प्रकृति के कारण केवल 32 बिट्स, बूट क्षेत्रों का समर्थन करने के लिए, भले ही एलबीए-28 के बजाय एलबीए-48 का समर्थन करने के लिए सक्षम किया गया हो, अक्सर 32-बिट गणनाओं का उपयोग करते हैं, जब तक कि वे विशेष रूप से समर्थन करने के लिए डिज़ाइन नहीं किए जाते हैं एलबीए-48 की पूर्ण पता श्रेणी या केवल 64-बिट प्लेटफॉर्म पर चलने का इरादा है। आंतरिक रूप से 32-बिट क्षेत्र पतों का उपयोग करने वाला कोई भी बूट कोड या ऑपरेटिंग सिस्टम पतों को इस विभाजन तक पहुँचने के लिए चारों ओर लपेट देगा और इसके परिणामस्वरूप सभी विभाजनों पर गंभीर डेटा भ्रष्टाचार होगा।
डिस्क के लिए जो 512 बाइट्स के अलावा एक क्षेत्र आकार प्रस्तुत करता है, जैसे USB बाहरी ड्राइव, वहाँ भी सीमाएँ हैं। 4096 के एक क्षेत्र आकार के परिणामस्वरूप एक विभाजन के आकार में आठ गुना वृद्धि होती है जिसे एमबीआर का उपयोग करके परिभाषित किया जा सकता है, जिससे आकार में 16 TiB (232 × 4096 बाइट्स) तक के विभाजन की अनुमति मिलती है।[20] विंडोज़ XP की तुलना में हाल के संस्करण बड़े क्षेत्र आकारों के साथ-साथ Mac OS X का समर्थन करते हैं, और लिनक्स ने 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 के पूर्ण पते पर रैम में पढ़ता है, लोड किए गए क्षेत्र के अंतिम दो बाइट्स में चिह्न की जांच करता है, और फिर, यदि सही चिह्न पाया जाता है, तो नियंत्रण को पहले बाइट में स्थानांतरित कर देता है जंप (JMP) निर्देश वाला क्षेत्र। एकमात्र वास्तविक अंतर जो बायोस बनाता है वह यह है कि (डिफ़ॉल्ट रूप से, या यदि बूट क्रम कॉन्फ़िगर करने योग्य नहीं है) यह पहली निश्चित डिस्क से बूट करने का प्रयास करने से पहले पहली हटाने योग्य डिस्क से बूट करने का प्रयास करता है। बायोस के दृष्टिकोण से, RAM में वॉल्यूम बूट रिकॉर्ड को एमबीआर लोड करने की क्रिया ठीक वैसी ही है, जैसे ऑपरेटिंग सिस्टम भारक के ऑब्जेक्ट कोड को RAM में लोड करने वाली फ़्लॉपी डिस्क वॉल्यूम बूट रिकॉर्ड की क्रिया। किसी भी मामले में, बायोस लोड किया गया प्रोग्राम ऑपरेटिंग सिस्टम को लोड करने की श्रृंखला के काम के बारे में जा रहा है।
जबकि एमबीआर बूट क्षेत्र कोड भौतिक पते 0x0000:0x7C00 पर लोड होने की उम्मीद करता है,[lower-alpha 8] भौतिक पते से सभी मेमोरी 0x0000:0x0501 (पता 0x0000:0x0500 फीनिक्स बायोस द्वारा उपयोग किया जाने वाला अंतिम है[14]) से 0x0000:0x7FFF,[33] बाद में 0x0000: 0xFFFF[32] (और कभी-कभी[lower-alpha 9] 0x9000: 0xFFFF तक) के लिए आराम दिया गया - पहले 640 KB का अंत वास्तविक मोड में उपलब्ध है।[lower-alpha 10] INT 12h
बायोस इंटरप्ट कॉल यह निर्धारित करने में मदद कर सकता है कि कितनी मेमोरी को सुरक्षित रूप से आवंटित किया जा सकता है (डिफ़ॉल्ट रूप से, यह केबी में आधार स्मृति विभाजन आकार को खंड से पढ़ता है: ऑफ़सेट स्थान 0x0040:0x0013, लेकिन यह अन्य निवासी प्री-बूट सॉफ़्टवेयर जैसे बायोस ओवरले द्वारा हुक किया जा सकता है, रिमोट प्रोग्राम भारक कोड या वायरस उपलब्ध मेमोरी की रिपोर्ट की गई मात्रा को कम करने के लिए बूट क्षेत्र जैसे अन्य बूट स्टेज सॉफ़्टवेयर को ओवरराइट करने से रोकने के लिए)।
512-बाइट एमबीआर के अंतिम 66 बाइट्स विभाजन तालिका और अन्य जानकारी के लिए आरक्षित हैं, इसलिए एमबीआर बूट क्षेत्र प्रोग्राम 446 बाइट्स मेमोरी या उससे कम में फिट होने के लिए पर्याप्त छोटा होना चाहिए।
एमबीआर कोड विभाजन तालिका की जांच करता है, एक उपयुक्त विभाजन का चयन करता है और उस प्रोग्राम को लोड करता है जो बूट प्रक्रिया के अगले चरण को सामान्यतः INT 13h बायोस कॉल का उपयोग करके करेगा। एमबीआर बूटस्ट्रैप कोड लोड करता है और चलाता है (एक बूट भारक- या ऑपरेटिंग सिस्टम पर निर्भर) वॉल्यूम बूट रिकॉर्ड कोड जो "सक्रिय" विभाजन की शुरुआत में स्थित है। वॉल्यूम बूट रिकॉर्ड 512-बाइट क्षेत्र के भीतर फिट होगा, लेकिन एमबीआर कोड के लिए अतिरिक्त क्षेत्रों को एक क्षेत्र से अधिक लंबे बूट भारक को समायोजित करने के लिए लोड करना सुरक्षित है, बशर्ते कि वे क्षेत्र आकार के बारे में कोई अनुमान न लगाएं। वास्तव में, प्रत्येक आईबीएम XT- और AT-क्लास मशीन में 0x7C00 पते पर कम से कम 1 KB RAM उपलब्ध है, इसलिए 1 KB क्षेत्र का उपयोग बिना किसी समस्या के किया जा सकता है। एमबीआर की तरह, एक वॉल्यूम बूट रिकॉर्ड सामान्य रूप से 0x0000:0x7C00 पते पर लोड होने की अपेक्षा करता है। यह इस तथ्य से निकला है कि वॉल्यूम बूट रिकॉर्ड डिजाइन अविभाजित मीडिया पर उत्पन्न हुआ, जहां वॉल्यूम बूट रिकॉर्ड सीधे बायोस बूट प्रक्रिया द्वारा लोड किया जाएगा; जैसा कि ऊपर उल्लेख किया गया है, बायोस एमबीआर और वॉल्यूम बूट रिकॉर्ड (वीबीआर) [lower-alpha 11] को बिल्कुल समान मानता है। चूंकि यह वही स्थान है जहां एमबीआर लोड किया गया है, एमबीआर के पहले कार्यों में से एक स्मृति में कहीं और खुद को स्थानांतरित करना है। स्थानांतरण पता एमबीआर द्वारा निर्धारित किया जाता है, लेकिन यह अक्सर 0x0000:0x0600 (MS-डॉस/पीसी डॉस, OS/2 और विंडोज़ एमबीआर कोड के लिए) या 0x0060:0x0000 (अधिकांश DR-डॉस एमबीआर) होता है। (भले ही ये दोनों खंडित पते वास्तविक मोड में एक ही भौतिक मेमोरी पते को हल करते हैं, Apple डार्विन को बूट करने के लिए, एमबीआर को 0x0060:0x0000 के बजाय 0x0000:0x0600 पर स्थानांतरित किया जाना चाहिए, क्योंकि कोड DS पर निर्भर करता है: SI सूचक एमबीआर द्वारा प्रदान की गई विभाजन प्रविष्टि के लिए, लेकिन यह ग़लती से इसे केवल 0x0000:एसआई के माध्यम से संदर्भित करता है।[34]) यह महत्वपूर्ण है कि स्मृति में अन्य पतों को स्थानांतरित न किया जाए क्योंकि कई वीबीआर अपने बूट को लोड करते समय एक निश्चित मानक मेमोरी लेआउट ग्रहण करेंगे। फ़ाइल।
विभाजन तालिका रिकॉर्ड में स्थिति फ़ील्ड का उपयोग सक्रिय विभाजन को इंगित करने के लिए किया जाता है। मानक-अनुरूप एमबीआर केवल एक विभाजन को सक्रिय चिह्नित करने की अनुमति देगा और एक वैध विभाजन तालिका के अस्तित्व को निर्धारित करने के लिए इसे विवेक-जांच के हिस्से के रूप में उपयोग करेगा। यदि एक से अधिक पार्टीशन को सक्रिय चिह्नित किया गया है, तो वे एक त्रुटि संदेश प्रदर्शित करेंगे। कुछ गैर-मानक एमबीआर इसे एक त्रुटि स्थिति के रूप में नहीं मानेंगे और केवल पंक्ति में पहले चिह्नित विभाजन का उपयोग करेंगे।
परंपरागत रूप से, 0x00 (सक्रिय नहीं) और 0x80 (सक्रिय) के अलावा अन्य मान अमान्य थे और बूटस्ट्रैप प्रोग्राम उनका सामना करने पर एक त्रुटि संदेश प्रदर्शित करेगा। हालांकि, प्लग एंड प्ले बायोस विशिष्टता और बायोस बूट विशिष्टता (BBS) ने 1994 से अन्य उपकरणों को भी बूट करने योग्य बनने की अनुमति दी थी।[33][35] नतीजतन, MS-डॉस 7.10 (विंडोज़ 95B) और उच्चतर की शुरुआत के साथ, एमबीआर ने सेट बिट 7 को सक्रिय ध्वज के रूप में मानना प्रारंभ कर दिया और केवल 0x01..0x7F मानों के लिए एक त्रुटि संदेश दिखाया। यह बाद में संबंधित विभाजन के VBR को लोड करते समय उपयोग की जाने वाली भौतिक ड्राइव इकाई के रूप में प्रविष्टि का उपयोग करना जारी रखता है, जिससे अब 0x80 के अलावा अन्य बूट ड्राइव को भी मान्य माना जाता है, हालाँकि, MS-डॉस ने इस एक्सटेंशन का उपयोग स्वयं नहीं किया। विभाजन तालिका में वास्तविक भौतिक ड्राइव संख्या को संग्रहीत करना सामान्य रूप से पश्चगामी संगतता समस्याओं का कारण नहीं बनता है, क्योंकि मान 0x80 से केवल पहले वाले के अलावा अन्य ड्राइव पर भिन्न होगा (जो पहले बूट करने योग्य नहीं है, वैसे भी)। हालाँकि, अन्य ड्राइव को बूट करने के लिए सक्षम सिस्टम के साथ भी, एक्सटेंशन अभी भी सार्वभौमिक रूप से काम नहीं कर सकता है, उदाहरण के लिए, भौतिक ड्राइव के बायोस असाइनमेंट के बाद जब ड्राइव को हटा दिया जाता है, जोड़ा या स्वैप किया जाता है। इसलिए, बायोस बूट स्पेसिफिकेशन (बीबीएस) के अनुसार,[33] यह एक आधुनिक एमबीआर के लिए सबसे अच्छा अभ्यास है जो विभाजन तालिका में प्रविष्टि का उपयोग करने के बजाय मूल रूप से बायोस द्वारा प्रदान किए गए डीएल मान को पारित करने के लिए सक्रिय ध्वज के रूप में बिट 7 को स्वीकार करता है।
बायोस से एमबीआर इंटरफ़ेस
एमबीआर को स्मृति स्थान 0x0000:0x7C00 पर लोड किया जाता है और निम्न CPU रजिस्टरों के साथ सेट किया जाता है जब पूर्व बूटस्ट्रैप भारक (सामान्य रूप से बायोस में प्रारंभिक कार्यक्रम भारक) सी पी यू के वास्तविक मोड में 0x0000:0x7C00 पर कूद कर निष्पादन पास करता है।
- सीएस रजिस्टर:आईपी रजिस्टर = 0x0000:0x7C00 (हल किया गया)
- कुछ कॉम्पैक बायोस इसके बजाय गलती से 0x07C0:0x0000 का उपयोग करते हैं। हालांकि यह वास्तविक मोड मेमोरी में एक ही स्थान पर हल होता है, यह गैर-मानक है और इससे बचा जाना चाहिए, क्योंकि एमबीआर कोड कुछ रजिस्टर मूल्यों को मानता है या स्थानांतरित करने योग्य नहीं लिखा जाता है, अन्यथा काम नहीं कर सकता है।
- DL = boot drive unit (fixed disks / removable drives: 0x80 = first, 0x81 = second, ..., 0xFE; floppies / superfloppies: 0x00 = first, 0x01 = second, ..., 0x7E; values 0x7F and 0xFF are reserved for ROM / remote drives and must not be used on disk).[citation needed]
- DL आईबीएम बायोस के साथ-साथ अधिकांश अन्य बायोस द्वारा समर्थित है। Toshiba T1000 बायोस इसे ठीक से समर्थन नहीं करने के लिए जाना जाता है, और कुछ पुराने Wyse 286 बायोस निश्चित डिस्क के लिए DL मानों को 2 से अधिक या बराबर का उपयोग करते हैं (जिससे बायोस के भौतिक ड्राइव नंबरों के बजाय डॉस के तहत लॉजिकल ड्राइव नंबरों को दर्शाता है)। हटाने योग्य ड्राइव के रूप में कॉन्फ़िगर की गई USB स्टिक्स को सामान्यतः DL = 0x80, 0x81, आदि का असाइनमेंट मिलता है। हालाँकि, कुछ दुर्लभ बायोस ने गलती से उन्हें DL = 0x01 के तहत प्रस्तुत कर दिया, जैसे कि उन्हें सुपरफ्लॉपी के रूप में कॉन्फ़िगर किया गया हो।
- एक मानक अनुरूप बायोस विशेष रूप से निश्चित डिस्क/हटाने योग्य ड्राइव के लिए 0x80 से अधिक या बराबर संख्या निर्दिष्ट करता है, और पारंपरिक रूप से केवल 0x80 तथा 0x00 मान बूट के दौरान भौतिक ड्राइव इकाइयों के रूप में पारित किए गए थे। परिपाटी के अनुसार, केवल फिक्स्ड डिस्क/रिमूवेबल ड्राइव का विभाजन किया जाता है, इसलिए, पारंपरिक रूप से एमबीआर केवल DL मान देख सकता था जो 0x80 था। कई एमबीआर को डीएल मान को अनदेखा करने और हार्ड-वायर्ड मान (सामान्य रूप से 0x80) के साथ काम करने के लिए कोडित किया गया था।
- प्लग एंड प्ले बायोस विशिष्टता और बायोस बूट विशिष्टता (BBS) 1994 से अन्य उपकरणों को भी बूट करने योग्य बनाने की अनुमति देते हैं।[33][35] बाद में अनुशंसा की गई कि एमबीआर और VBR कोड को आंतरिक रूप से हार्डवेयर्ड डिफ़ॉल्ट के बजाय DL का उपयोग करना चाहिए।[33] जहां तक एमबीआर कोड का संबंध है, यह विभिन्न गैर-मानक असाइनमेंट (उपरोक्त उदाहरण देखें) के साथ संगतता भी सुनिश्चित करेगा।
- एल टोरिटो विनिर्देश के बाद बूट करने योग्य सीडी-रोम में इस इंटरफ़ेस पर फ्लॉपी या सुपरफ्लॉपी के रूप में होने के लिए बायोस द्वारा माउंट की गई डिस्क छवियां हो सकती हैं। 0x00 और 0x01 के DL मानों का उपयोग संरक्षित क्षेत्र रन टाइम इंटरफेस एक्सटेंशन सेवाएं (पार्टीज़) और विश्वसनीय कंप्यूटिंग समूह (TCG) बायोस एक्सटेंशन द्वारा विश्वसनीय मोड में किया जा सकता है, अन्यथा अदृश्य पार्टियों के विभाजन, बूट इंजीनियरिंग एक्सटेंशन रिकॉर्ड के माध्यम से स्थित डिस्क छवि फ़ाइलों तक पहुँचने के लिए (BEER) हार्ड डिस्क के होस्ट प्रोटेक्टेड एरिया (HPA) के अंतिम भौतिक क्षेत्र में। जबकि फ्लॉपी या सुपरफ्लॉपी का अनुकरण करने के लिए डिज़ाइन किया गया है, एमबीआर कोड इन गैर-मानक डीएल मूल्यों को स्वीकार करते हुए कम से कम ऑपरेटिंग सिस्टम के बूट चरण में विभाजित मीडिया की छवियों का उपयोग करने की अनुमति देता है
- डीएच रजिस्टर बिट 5 = 0: INT 13h के माध्यम से समर्थित उपकरण; अन्य: परवाह नहीं है (शून्य होना चाहिए)। DH कुछ आईबीएम बायोस द्वारा समर्थित है।
- कुछ अन्य रजिस्टरों में मूल आईबीएम ROM बायोस के साथ विशेष रूप से कुछ रजिस्टर मान (डीएस, ईएस, एसएस = 0x0000; एसपी = 0x0400) हो सकते हैं, लेकिन इस पर भरोसा करने के लिए कुछ भी नहीं है, क्योंकि अन्य बायोस अन्य मानों का उपयोग कर सकते हैं। इसी वजह से आईबीएम, माइक्रोसॉफ्ट, डिजिटल रिसर्च आदि के एमबीआर कोड ने कभी इसका फायदा नहीं उठाया। बूट क्षेत्रों में इन रजिस्टर मूल्यों पर भरोसा करने से चेन-बूट परिदृश्यों में भी समस्या हो सकती है।
प्लग-एंड-प्ले बायोस या BBS समर्थन वाले सिस्टम, DL के अतिरिक्त PnP डेटा के लिए एक सूचक प्रदान करेंगे:[33][35]
- डीआई रजिस्टर:DI रजिस्टर = पॉइंट टू
$PnP
स्थापना जांच संरचना
- यह जानकारी एमबीआर में बूट भारक (या वीबीआर, यदि पास हो) को सक्रिय रूप से बायोस या एक निवासी PnP / BBS बायोस ओवरले के साथ बूट ऑर्डर को कॉन्फ़िगर करने के लिए मेमोरी में ओवरले करने की अनुमति देती है, आदि, हालांकि, इस जानकारी को नजरअंदाज कर दिया जाता है अधिकांश मानक एमबीआर और वीबीआर द्वारा। आदर्श रूप से, लोडेड ऑपरेटिंग सिस्टम द्वारा बाद में उपयोग के लिए ES:DI को VBR पर भेज दिया जाता है, लेकिन PnP-सक्षम ऑपरेटिंग सिस्टम में सामान्यतः PnP बायोस प्रविष्टि बिंदु को बाद में पुनर्प्राप्त करने के लिए फ़ॉलबैक विधियाँ भी होती हैं ताकि अधिकांश ऑपरेटिंग सिस्टम इस पर भरोसा न करें।
एमबीआर से वीबीआर इंटरफ़ेस
प्रथा के अनुसार, एक मानक अनुरूप एमबीआर, CPU के वास्तविक मोड में 0x0000:0x7C00 पर कूद कर निम्नलिखित रजिस्टरों को बनाए रखने या विशेष रूप से सेट करने के साथ सफलतापूर्वक लोड किए गए VBR को निष्पादन पास करता है, स्मृति स्थान 0x0000:0x7C00 पर लोड किया जाता है:
- सीएस: आईपी = 0x0000:0x7C00[lower-alpha 12] (निरंतर)
- डीएल = बूट ड्राइव यूनिट (ऊपर देखें)
- एमएस-डॉस 2.0-7.0 / पीसी डॉस 2.0-6.3 एमबीआर प्रवेश पर प्राप्त DL मान को पारित नहीं करते हैं, बल्कि वे भौतिक बूट ड्राइव इकाई के रूप में चयनित प्राथमिक विभाजन की विभाजन तालिका प्रविष्टि में बूट स्थिति प्रविष्टि का उपयोग करते हैं। चूंकि यह अधिकांश एमबीआर विभाजन तालिकाओं में सम्मेलन द्वारा, 0x80 है, यह चीजों को तब तक नहीं बदलेगा जब तक कि बायोस पंक्ति में पहली निश्चित डिस्क/हटाने योग्य ड्राइव के अलावा किसी भौतिक उपकरण को बूट करने का प्रयास न करे। यही कारण है कि ये ऑपरेटिंग सिस्टम दूसरी हार्ड डिस्क आदि को बूट नहीं कर सकते हैं। कुछ FDISK उपकरण द्वितीयक डिस्क पर विभाजन को "सक्रिय" के रूप में भी चिह्नित करने की अनुमति देते हैं। इस स्थिति में, यह जानते हुए कि ये ऑपरेटिंग सिस्टम वैसे भी अन्य ड्राइव को बूट नहीं कर सकते हैं, उनमें से कुछ 0x80 के पारंपरिक रूप से निश्चित मान को सक्रिय मार्कर के रूप में उपयोग करना जारी रखते हैं, जबकि अन्य वर्तमान में निर्दिष्ट भौतिक ड्राइव यूनिट (0x81, 0x82) के अनुरूप मानों का उपयोग करते हैं। जिससे अन्य ड्राइव से बूटिंग की अनुमति मिलती है, कम से कम सैद्धांतिक रूप से। वास्तव में, यह कई एमबीआर कोड के साथ काम करेगा, जो 0x80 पर जोर देने के बजाय बूट स्थिति प्रविष्टि के सेट बिट 7 को सक्रिय ध्वज के रूप में लेते हैं, हालांकि, एमएस-डॉस/पीसी डॉस एमबीआर के निश्चित मूल्य को स्वीकार करने के लिए हार्ड-वायर्ड हैं केवल 0x80। विभाजन तालिका में वास्तविक भौतिक ड्राइव संख्या को संग्रहीत करने से भी समस्याएँ पैदा होंगी, जब भौतिक ड्राइव का बायोस असाइनमेंट बदलता है, उदाहरण के लिए जब ड्राइव को हटाया जाता है, जोड़ा जाता है या स्वैप किया जाता है।
- इसलिए, एक सामान्य एमबीआर के लिए बिट 7 को सक्रिय ध्वज के रूप में स्वीकार करना और अन्यथा केवल वीबीआर का उपयोग करना और पास करना, मूल रूप से बायोस द्वारा प्रदान किया गया डीएल मान अधिकतम लचीलेपन की अनुमति देता है। MS-डॉस 7.1 - 8.0 एमबीआर बिट 7 को सक्रिय ध्वज के रूप में और किसी भी मान 0x01..0x7F को अमान्य मानने के लिए बदल गए हैं, लेकिन वे अभी भी बायोस द्वारा प्रदान किए गए DL मान का उपयोग करने के बजाय विभाजन तालिका से भौतिक ड्राइव इकाई लेते हैं। DR-डॉस 7.07 विस्तारित एमबीआर बिट 7 को सक्रिय ध्वज के रूप में मानते हैं और डिफ़ॉल्ट रूप से बायोस DL मान का उपयोग और पास करते हैं (गैर-मानक मान 0x00..0x01 सहित कुछ बायोस द्वारा विभाजित मीडिया के लिए भी उपयोग किए जाते हैं), लेकिन वे एक विशेष NEWLDR भी प्रदान करते हैं LOADER और REAL/32 के संयोजन के साथ-साथ एमबीआर के विवरण व्यवहार को बदलने के लिए वैकल्पिक बूट विधियों का समर्थन करने के लिए कॉन्फ़िगरेशन ब्लॉक, ताकि यह विभाजन तालिका से प्राप्त ड्राइव मानों के साथ भी काम कर सके (LOADER और संयोजन के साथ महत्वपूर्ण) एएपीs, देखें NEWLDR ऑफ़सेट
0x000C
), Wyse गैर-मानक ड्राइव यूनिट 0x02..0x7F को 0x80..0xFD में ट्रांसलेट करें, और वैकल्पिक रूप से ड्राइव वैल्यू को ठीक करें (विस्तारित बायोस पैरामीटर ब्लॉक (EBPB) में0x019
या क्षेत्र ऑफ़सेट में0x01FD
ऑफ़सेट पर संग्रहीत) 0x01FD ) लोड किए गए VBRs में उन्हें निष्पादित करने से पहले (NEWLDR ऑफ़सेट0x0014
देखें) - यह अन्य बूट भारकों को NEWLDR को चेन-भारक के रूप में उपयोग करने की अनुमति देता है, फ्लाई पर इसकी इन-मेमोरी इमेज को कॉन्फ़िगर करता है और VBRs की लोडिंग को "टनल" करता है, EBRs, या एएपीs NEWLDR के माध्यम से।
- DH और ES की सामग्री: DI को एमबीआर द्वारा पूर्ण प्लग-एंड-प्ले समर्थन (ऊपर देखें) के लिए संरक्षित किया जाना चाहिए, हालाँकि, MS-डॉस 2.0 - 8.0 / पीसी डॉस 2.0 - 6.3 और विंडोज़ NT सहित कई एमबीआर /2000/XP, नहीं। (यह आश्चर्यजनक नहीं है, क्योंकि डॉस के वे संस्करण प्लग-एंड-प्ले बायोस मानक से पहले के हैं, और पिछले मानकों और सम्मेलनों ने DL के अलावा किसी अन्य रजिस्टर को संरक्षित करने की कोई आवश्यकता नहीं बताई है।) कुछ एमबीआर DH को 0 पर सेट करते हैं।
एमबीआर कोड कई कार्यान्वयनों में वीबीआर को अतिरिक्त जानकारी देता है:
- डीएस: एसआई = सक्रिय वीबीआर के अनुरूप 16-बाइट एमबीआर पार्टीशन टेबल प्रविष्टि (स्थानांतरित एमबीआर में) को इंगित करता है। पीसी-एमओएस 5.1 बूट करने के लिए इस पर निर्भर करता है यदि विभाजन तालिका में कोई विभाजन बूट करने योग्य के रूप में फ़्लैग नहीं किया गया है। भारक के संयोजन के साथ, बहुउपयोगकर्ता डॉस और रीयल/32 बूट क्षेत्र सक्रिय विभाजन के बूट क्षेत्र का पता लगाने के लिए इसका उपयोग करते हैं (या अन्य बूटस्ट्रैप भारक जैसे आईबीएमBIO.LDR डिस्क पर एक निश्चित स्थिति पर) यदि बूट फ़ाइल (LOADER.SYS) कर सकता है नहीं मिला। PTS-डॉस 6.6 और S/डॉस 1.0 इसे अपने उन्नत सक्रिय विभाजन (एएपी) सुविधा के साथ संयोजन में उपयोग करते हैं। LOADER और एएपीs के लिए समर्थन के अलावा, DR-डॉस 7.07 अपने दोहरे CHS/एलबीए VBR कोड का उपयोग करते समय आवश्यक INT 13h एक्सेस विधि का निर्धारण करने के लिए इसका उपयोग कर सकता है और यह विभाजन प्रविष्टि में बूट ड्राइव/स्टेटस फ़्लैग फ़ील्ड को इसके अनुसार अपडेट करेगा प्रभावी रूप से उपयोग किए जाने वाले डीएल मूल्य। डार्विन बूटभारक्स (Apple के
boot1h
,boot1u
, और डेविड इलियट केboot1fat32
) इस सूचक पर भी निर्भर करते हैं, लेकिन इसके अतिरिक्त वे DS का उपयोग नहीं करते हैं, लेकिन इसके बजाय 0x0000 पर सेट होने की कल्पना करते हैं।[34] यदि यह धारणा गलत है तो यह समस्याएँ पैदा करेगा। OS/2, MS-डॉस 2.0 से 8.0, पीसी डॉस 2.0 से 7.10 और विंडोज़ NT/2000/XP का एमबीआर कोड भी यही इंटरफ़ेस प्रदान करता है, हालाँकि ये सिस्टम इसका उपयोग नहीं करते हैं। विंडोज़ Vista/7 एमबीआर अब यह DS:SI सूचक प्रदान नहीं करते हैं। जबकि कुछ एक्सटेंशन केवल 16-बाइट पार्टीशन टेबल एंट्री पर ही निर्भर करते हैं, अन्य एक्सटेंशन के लिए पूरे 4 (या 5 एंट्री) पार्टीशन टेबल की भी आवश्यकता हो सकती है। - DS:बीपी रजिस्टर = वैकल्पिक रूप से सक्रिय VBR के अनुरूप 16-बाइट एमबीआर विभाजन तालिका प्रविष्टि (स्थानांतरित एमबीआर में) को इंगित करता है। यह DS:SI (ऊपर देखें) द्वारा प्रदान किए गए पॉइंटर के समान है और MS-डॉस 2.0-8.0, पीसी डॉस 2.0-7.10, विंडोज़ NT/2000/XP/Vista/7 एमबीआर द्वारा प्रदान किया गया है। हालाँकि, यह अधिकांश तृतीय-पक्ष एमबीआर द्वारा समर्थित नहीं है।
DR-डॉस 7.07 के तहत विस्तारित एमबीआर द्वारा और LOADER के संयोजन में एक विस्तारित इंटरफ़ेस वैकल्पिक रूप से प्रदान किया जा सकता है:
- AX = मैजिक चिह्न इस NEWLDR एक्सटेंशन (0x0EDC) की उपस्थिति का संकेत देता है
- डीएल = बूट ड्राइव यूनिट (ऊपर देखें)
- DS:SI = प्रयुक्त 16-बाइट एमबीआर पार्टीशन टेबल प्रविष्टि की ओर इशारा करता है (ऊपर देखें)
- ES:BX = बूट क्षेत्र की शुरुआत या NEWLDR क्षेत्र इमेज (सामान्यतः 0x7C00)
- सीएक्स रजिस्टर = आरक्षित
जीपीटी के संयोजन में, एक उन्नत डिस्क ड्राइव विशिष्टता (ईडीडी) 4 हाइब्रिड एमबीआर प्रस्ताव इंटरफ़ेस के लिए एक और विस्तार की सिफारिश करता है:[36]
- ईएक्स रजिस्टर = 0x54504721 ( "
!जीपीटी")
- डीएल = बूट ड्राइव यूनिट (ऊपर देखें)
- डीएस:एसआई = एक हाइब्रिड एमबीआर हैंडओवर संरचना को इंगित करता है, जिसमें 16-बाइट डमी एमबीआर विभाजन तालिका प्रविष्टि शामिल है (ऑफ़सेट 0x00 पर बूट फ्लैग को छोड़कर सभी बिट्स सेट के साथ और ऑफसेट 0x04 पर विभाजन प्रकार) अतिरिक्त डेटा के बाद। यह पुराने DS के साथ आंशिक रूप से संगत है: ऊपर चर्चा की गई SI एक्सटेंशन, यदि केवल 16-बाइट विभाजन प्रविष्टि है, तो इन पुराने एक्सटेंशन के लिए संपूर्ण विभाजन तालिका की आवश्यकता नहीं है।
- चूंकि पुराने ऑपरेटिंग सिस्टम (उनके VBRs सहित) इस विस्तार का समर्थन नहीं करते हैं और न ही वे 2 TiB बाधा से परे के क्षेत्रों को संबोधित करने में सक्षम हैं, एक जीपीटी-सक्षम हाइब्रिड बूट भारक को अभी भी 16-बाइट डमी एमबीआर विभाजन तालिका प्रविष्टि का अनुकरण करना चाहिए यदि बूट विभाजन पहले 2 टीआईबी के भीतर स्थित है।[lower-alpha 13]
- ES:DI = "
$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]
यह भी देखें
- विस्तारित बूट रिकॉर्ड (ईबीआर)
- वॉल्यूम बूट रिकॉर्ड (वीबीआर)
- GUID विभाजन तालिका (GPT)
- BIOS बूट विभाजन
- EFI सिस्टम विभाजन
- बूट इंजीनियरिंग एक्सटेंशन रिकॉर्ड (BEER)
- मेजबान संरक्षित क्षेत्र (HPA)
- डिवाइस कॉन्फ़िगरेशन ओवरले (DCO)
- Apple विभाजन मानचित्र (APM)
- अमिगा कठोर डिस्क ब्लॉक (आरडीबी)
- सामग्री की मात्रा तालिका (VTOC)
- बीएसडी डिस्कलेबल
- बूट लोडर
- डिस्क क्लोनिंग
- रिकवरी डिस्क
- जीएनयू जुदा
- विभाजन संरेखण
टिप्पणियाँ
- ↑ 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 andAAhex
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 wordAA55hex
in programs for x86 processors (note the swapped order), whereas it would have to be written as55AAhex
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. - ↑ 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. - ↑ 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.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.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.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]
- ↑ "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]
- ↑ 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. - ↑ If there is an EBDA, the available memory ends below it.
- ↑ Very old machines may have less than 640 KB (
A0000hex
or 655,360 bytes) of memory. In theory, only 32 KB (up to0000hex
:7FFFhex
) or 64 KB (up to0000hex
: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. - ↑ 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.
- ↑ 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].)
- ↑ This is not part of the above mentioned proposal, but a natural consequence of pre-existing conditions.
- ↑ For example, PowerQuest's Partition Table Editor (PTEDIT32.EXE), which runs under Windows operating systems, is still available here: Symantec's FTP site.
संदर्भ
- ↑ Howe, Denis (2009-05-19) [1985]. "master boot record". FOLDOC. Archived from the original on 24 August 2017. Retrieved 2015-05-02.
- ↑ 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.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.
- ↑ 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.
- ↑ Norton, Peter; Clark, Scott (2002). Peter Norton's New Inside the PC. Sams Publishing. pp. 360–361. ISBN 0-672-32289-7.
- ↑ Graves, Michael W. (2004). A+ Guide To PC Hardware Maintenance and Repair. Thomson Delmar. p. 276. ISBN 1-4018-5230-0.
- ↑ Andrews, Jean (2003). Upgrade and Repair with Jean Andrews. Thomson Course Technology. p. 646. ISBN 1-59200-112-2.
- ↑ Boswell, William (2003). Inside Windows Server 2003. Addison-Wesley Professional. p. 13. ISBN 0-7357-1158-5.
- ↑ Smith, Roderick W. (2000). The Multi-Boot Configuration Handbook. Que Publishing. pp. 260–261. ISBN 0-7897-2283-6.
- ↑ 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. […]"
- ↑ 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.) - ↑ 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
(NB. NEC MS-DOS 3.30 and AST MS-DOS partition tables with eight entries are preceded with a signature14hex
) and NEC DOS (type24hex
) had 8 instead of 4 partition entries in their MBR sectors. (Matthias R. Paul).A55Ahex
at offset 0x017C.) - ↑ "Partition Table". osdev.org. 2017-03-18 [2007-03-06]. Archived from the original on 2017-08-24. Retrieved 2017-08-24.
- ↑ 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.
- ↑ 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.
- ↑ Wood, Sybil (2002). Microsoft Windows 2000 Server Operations Guide. Microsoft Press. p. 18. ISBN 978-0-73561796-4.
- ↑ "An Introduction to Hard Disk Geometry". Tech Juice. 2012-12-06 [2011-08-08]. Archived from the original on 2013-02-04.
- ↑ 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.
- ↑ 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.
- ↑ "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.
- ↑ "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.
- ↑ Calvert, Kelvin (2011-03-16). "WD AV‐GP Large Capacity Hard Drives" (PDF). Western Digital. Retrieved 2013-04-20.
- ↑ 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.0 24.1 "MBR (x86)". OSDev Wiki. OSDev.org. 2012-03-05. Archived from the original on 2017-08-24. Retrieved 2013-04-20.
- ↑ 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.
- ↑ Singh, Amit (2009-12-25) [December 2003]. "Booting Mac OS X". Mac OS X Internals: The Book. Retrieved 2011-07-22.
- ↑ 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.
- ↑ 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.
- ↑ "Windows may use Signature() syntax in the BOOT.INI file". KnowledgeBase. Microsoft.
- ↑ 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.
- ↑ 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.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.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.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.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.
- ↑ 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.
- ↑ "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.
- ↑ "sfdisk(8) – Linux man page". die.net. 2013 [2007]. Archived from the original on 2017-08-24. Retrieved 2013-04-20.
- ↑ Brown, Ralf D. (2000-07-16). "Ralf Browns Interrupt List (v61 html)". Delorie Software. Retrieved 2016-11-03.
- ↑ 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.)
अग्रिम पठन
- Gilbert, Howard (1996-01-01) [1995]. "Partitions and Volumes". PC Lube & Tune. Archived from the original on 2016-03-03.
- Knights, Ray (2004-12-22) [2000-12-16]. "Ray's Place". MBR and Windows Boot Sectors (includes code disassembly and explanations of boot process). Archived from the original on 2017-08-24. Retrieved 2017-08-24.
- Landis, Hale (2002-05-06). "Master Boot Record". How It Works. Archived from the original on 2014-07-01.
- Sedory, Daniel B. (2015-06-25) [2007]. "MBRs (Master Boot Records)". Boot Records Revealed. Archived from the original on 2017-08-24. Retrieved 2017-08-24. [2] [3]
इस पेज में लापता आंतरिक लिंक की सूची
- आईबीएम पर्सनल कंप्यूटर एक्सटी
- बीएसडी डिस्कलेबल
- विभाजन प्रकार
- ठोस राज्य ड्राइव
- भौतिक स्मृति
- फाइल आवन्टन तालिका
- छोटा एंडियन
- स्व-स्थानांतरण
- सेब डार्विन
- एल टोरिटो (मानक सीडी-रोम)
- मेजबान संरक्षित क्षेत्र
- एन रजिस्टर
- एमबीआर विभाजन तालिका
- एक्स रजिस्टर
- बीएक्स रजिस्टर
- बढ़ी हुई डिस्क ड्राइव विशिष्टता
- लिलो (बूट भारक)
- Apple विभाजन का नक्शा