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

From Vigyanwiki

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

एमबीआर में यह जानकारी निहित होती है कि डिस्क के क्षेत्रों को विभाजनों में कैसे विभाजित किया जाता है, जिनमें से प्रत्येक विभाजन में एक फाइल प्रणाली होती है। एमबीआर में स्थापित ऑपरेटिंग सिस्टम के लिए भारक (लोडर) के रूप में, सामान्यतः भारक के दूसरे चरण पर नियंत्रण पारित करके, या प्रत्येक विभाजन के वॉल्यूम बूट रिकॉर्ड (वीबीआर) के संयोजन के साथ कार्य करने के लिए निष्पादनीय कोड भी होता है। यह एमबीआर कोड सामान्यतः बूट भारक के रूप में जाना जाता है।[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 उपयोगिता की शुरुआत की। जब एक भंडारण उपकरण को इस योजना के अनुसार विभाजित किया जाता है, तो इसके एमबीआर में एक विभाजन तालिका होती है, जो विभाजन के रूप में संदर्भित रैखिक क्षेत्रों के स्थान, आकार और अन्य विशेषताओं का वर्णन करती है।

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

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

क्षेत्र लेआउट

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

Structure of a classical generic एमबीआर
Address Description Size
(bytes)
0x0000 (0) Bootstrap code area 446
0x01BE (446) Partition entry №1 Partition table
(for primary partitions)
16
0x01CE (462) Partition entry №2 16
0x01DE (478) Partition entry №3 16
0x01EE (494) Partition entry №4 16
0x01FE (510) 0x55 Boot signature[lower-alpha 1] 2
0x01FF (511) 0xAA
Total size: 446 + 4×16 + 2 512
Structure of a modern standard एमबीआर
Address Description Size
(bytes)
0x0000 (0) Bootstrap code area (part 1) 218
0x00DA (218) 0x0000 Disk timestamp[3][lower-alpha 2] (optional; विंडोज़ 95B/98/98SE/ME (MS-डॉस 7.1–8.0). Alternatively, can serve as OEM loader signature with NEWLDR) 2
0x00DC (220) Original physical drive (0x800xFF) 1
0x00DD (221) Seconds (0–59) 1
0x00DE (222) Minutes (0–59) 1
0x00DF (223) Hours (0–23) 1
0x00E0 (224) Bootstrap code area (part 2, code entry at 0x0000) 216 (or 222)
0x01B8 (440) 32-bit disk signature Disk signature (optional; UEFI, लिनक्स, विंडोज़ NT family and other OSes) 4
0x01BC (444) 0x0000 (0x5A5A if copy-protected) 2
0x01BE (446) Partition entry №1 Partition table
(for primary partitions)
16
0x01CE (462) Partition entry №2 16
0x01DE (478) Partition entry №3 16
0x01EE (494) Partition entry №4 16
0x01FE (510) 0x55 Boot signature[lower-alpha 1] 2
0x01FF (511) 0xAA
Total size: 218 + 6 + 216 + 6 + 4×16 + 2 512
Structure of AAP एमबीआर
Address Description Size
(bytes)
0x0000 (0) Bootstrap code area 428
0x01AC (428) 0x78 AAP signature (optional) 2
0x01AD (429) 0x56
0x01AE (430) AAP physical drive (0x80-0xFE; 0x00: not used; 0x01-0x7F, 0xFF: reserved) AAP record (optional) (AAP partition entry #0 with special semantics) 1
0x01AF (431) CHS (start) address of AAP partition/image file or VBR/EBR 3
0x01B2 (434) Reserved for AAP partition type (0x00 if not used) (optional) 1
0x01B3 (435) Reserved for CHS end address in AAP (optional; byte at offset 0x01B5 is also used for एमबीआर checksum (PTS DE, BootWizard); 0x000000 if not used) 3
0x01B6 (438) Start एलबीए of AAP image file or VBR/EBR or relative sectors of AAP partition (copied to offset +01Chex in the loaded sector over the "hidden sectors" entry of a डॉस 3.31 BPB (or emulation thereof) to also support EBR booting) 4
0x01BA (442) Reserved for sectors in AAP (optional; 0x00000000 if not used) 4
0x01BE (446) Partition entry №1 Partition table
(for primary partitions)
16
0x01CE (462) Partition entry №2 16
0x01DE (478) Partition entry №3 16
0x01EE (494) Partition entry №4 16
0x01FE (510) 0x55 Boot signature[lower-alpha 1] 2
0x01FF (511) 0xAA
Total size: 428 + 2 + 16 + 4×16 + 2 512
Structure of NEWLDR एमबीआर
Address Description Size
(bytes)
0x0000 (0) JMPS (EBhex) / NEWLDR record size (often 0x0A/0x16/0x1C for code start at 0x000C/0x0018/0x001E) NEWLDR record (optional) 2
0x0002 (2) "NEWLDR" signature 6
0x0008 (8) LOADER physical drive and boot flag (0x80-0xFE, 0x00-0x7E, 0xFF, 0x7F) (if not used, this and following 3 bytes must be all 0) 1
0x0009 (9) CHS address of LOADER boot sector or image file (f.e. आईबीएमBIO.LDR) (0x000000 if not used) 3
0x000C (12) Allowed DL minimum, else take from partition table (0x80: default; 0x00: always use DL; 0xFF: always use table entry) 1
0x000D (13) Reserved (default: 0x000000) 3
0x0010 (16) एलबीए of LOADER boot sector or image file (optional; 0x00000000 if not used) 4
0x0014 (20) Patch offset of VBR boot unit (default 0x0000 if not used, else 0024hex or 01FDhex) 2
0x0016 (22) Checksum (0x0000 if not used) 2
0x0018 (24) OEM loader signature ("MSWIN4" for REAL/32, see also offset +0DAhex, corresponds with OEM label at offset +003hex in VBRs (optional) 6
Varies Bootstrap code area (code entry at 0x0000) Varies
0x01AC (428) 0x78 AAP signature (optional) 2
0x01AD (429) 0x56
0x01AE (430) AAP partition entry №0 with special semantics AAP record (optional) 16
0x01BE (446) Partition entry №1 Partition table
(for primary partitions)
16
0x01CE (462) Partition entry №2 16
0x01DE (478) Partition entry №3 16
0x01EE (494) Partition entry №4 16
0x01FE (510) 0x55 Boot signature[lower-alpha 1] 2
0x01FF (511) 0xAA
Total size: 30 + 398 + 2 + 16 + 4×16 + 2 512
Structure of AST/NEC MS-डॉस and SpeedStor एमबीआर
Address Description Size
(bytes)
0x0000 (0) Bootstrap code area 380
0x017C (380) 0x5A AST/NEC signature (optional; not for SpeedStor) 2
0x017D (381) 0xA5
0x017E (382) Partition entry №8 AST/NEC expanded partition table
(optional; also for SpeedStor)
16
0x018E (398) Partition entry №7 16
0x019E (414) Partition entry №6 16
0x01AE (430) Partition entry №5 16
0x01BE (446) Partition entry №4 Partition table
(for primary partitions)
16
0x01CE (462) Partition entry №3 16
0x01DE (478) Partition entry №2 16
0x01EE (494) Partition entry №1 16
0x01FE (510) 0x55 Boot signature[lower-alpha 1] 2
0x01FF (511) 0xAA
Total size: 380 + 2 + 4×16 + 4×16 + 2 512
Structure of Ontrack Disk Manager एमबीआर
Address Description Size
(bytes)
0x0000 (0) Bootstrap code area 252
0x00FC (252) 0xAA DM signature (optional) 2
0x00FD (253) 0x55
0x00FE (254) Partition entry DM expanded partition table
(optional)
16
0x010E (270) Partition entry 16
0x011E (286) Partition entry 16
0x012E (302) Partition entry 16
0x013E (318) Partition entry 16
0x014E (334) Partition entry 16
0x015E (350) Partition entry 16
0x016E (366) Partition entry 16
0x017E (382) Partition entry 16
0x018E (398) Partition entry 16
0x019E (414) Partition entry 16
0x01AE (430) Partition entry 16
0x01BE (446) Partition entry №1 Partition table
(for primary partitions)
16
0x01CE (462) Partition entry №2 16
0x01DE (478) Partition entry №3 16
0x01EE (494) Partition entry №4 16
0x01FE (510) 0x55 Boot signature[lower-alpha 1] 2
0x01FF (511) 0xAA
Total size: 252 + 2 + 12×16 + 4×16 + 2 512

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

Layout of one 16-byte partition entry[13] (all multi-byte fields are little-endian)
Offset
(bytes)
Field
length
Description
0x00 1 byte Status or physical drive (bit 7 set is for active or bootable, old एमबीआर only accept 0x80, 0x00 means inactive, and 0x010x7F stand for invalid)[lower-alpha 3]
0x01 3 bytes CHS address of first absolute sector in partition.[lower-alpha 4] The format is described by three bytes, see the next three rows.
0x01 1 byte
h7–0 head[lower-alpha 5]
x x x x x x x x
0x02 1 बाइट
c9–8 s5–0 sector in bits 5–0; bits 7–6 are high bits of cylinder[lower-alpha 5]
x x x x x x x x
0x03 1 बाइट
c7–0 bits 7–0 of cylinder[lower-alpha 5]
x x x x x x x x
0x04 [15]|- 0x05 3 बाइट विभाजन में अंतिम निरपेक्ष क्षेत्र का सिलेंडर-हेड-क्षेत्र।[lower-alpha 4] प्रारूप 3 बाइट्स द्वारा वर्णित है, अगली 3 पंक्तियाँ देखें।
0x05 1 बाइट
h7–0 head[lower-alpha 5]
x x x x x x x x
0x06 1 बाइट
c9–8 s5–0 sector in bits 5–0; bits 7–6 are high bits of cylinder[lower-alpha 5]
x x x x x x x x
0x07 1 बाइट
c7–0 bits 7–0 of cylinder
x x x x x x x x
0x08 4 बाइट विभाजन में पहले निरपेक्ष क्षेत्र का तार्किक ब्लॉक एड्रेसिंग[lower-alpha 6]
0x0C 4 बाइट विभाजन में क्षेत्रों की संख्या[lower-alpha 6]

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

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

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

चूंकि ब्लॉक पते और आकार 32 बिट्स का उपयोग करके एमबीआर की विभाजन तालिका में संग्रहीत किए जाते हैं, अधिकतम आकार, साथ ही उच्चतम प्रारंभ पता, 512-बाइट क्षेत्र (वास्तविक या अनुकरणीय) वाले ड्राइव का उपयोग करने वाले विभाजन का 2 TiB से अधिक नहीं हो सकता है। −512 बाइट्स (2199023255040 बाइट्स या 4294967295 (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] यदि जीपीटी विभाजन तालिका योजना का उपयोग किया गया है, तो एमबीआर केवल उसी सीमा तक सम्मिलित होगा, जिसमें संगतता उद्देश्यों के लिए एक विभाजन तालिका सम्मिलित हो सकती है।

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

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

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

बूटस्ट्रैप कोड और विभाजन तालिका के अतिरिक्त, मास्टर बूट रिकॉर्ड में डिस्क चिह्न हो सकते हैं। यह एक 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 पर कूद कर निष्पादन पास करता है।

कुछ कॉम्पैक बायोस इसके बजाय गलती से 0x07C0:0x0000 का उपयोग करते हैं। हालांकि यह वास्तविक मोड मेमोरी में एक ही स्थान पर हल होता है, यह गैर-मानक है और इससे बचा जाना चाहिए, क्योंकि एमबीआर कोड कुछ रजिस्टर मूल्यों को मानता है या स्थानांतरित करने योग्य नहीं लिखा जाता है, अन्यथा काम नहीं कर सकता है।
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]

यह जानकारी एमबीआर में बूट भारक (या वीबीआर, यदि पास हो) को सक्रिय रूप से बायोस या एक निवासी 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 और संयोजन के साथ महत्वपूर्ण) AAPs, देखें NEWLDR ऑफ़सेट 0x000C), Wyse गैर-मानक ड्राइव यूनिट 0x02..0x7F को 0x80..0xFD में ट्रांसलेट करें, और वैकल्पिक रूप से ड्राइव वैल्यू को ठीक करें (विस्तारित बायोस पैरामीटर ब्लॉक (EBPB) में 0x019 या क्षेत्र ऑफ़सेट में 0x01FD ऑफ़सेट पर संग्रहीत) 0x01FD ) लोड किए गए VBRs में उन्हें निष्पादित करने से पहले (NEWLDR ऑफ़सेट 0x0014 देखें) - यह अन्य बूट भारकों को NEWLDR को चेन-भारक के रूप में उपयोग करने की अनुमति देता है, फ्लाई पर इसकी इन-मेमोरी इमेज को कॉन्फ़िगर करता है और VBRs की लोडिंग को "टनल" करता है, EBRs, या AAPs 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 इसे अपने उन्नत सक्रिय विभाजन (AAP) सुविधा के साथ संयोजन में उपयोग करते हैं। LOADER और AAPs के लिए समर्थन के अलावा, 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]

यह भी देखें


टिप्पणियाँ

  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 5.4 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.)


अग्रिम पठन


इस पेज में लापता आंतरिक लिंक की सूची

  • आईबीएम पर्सनल कंप्यूटर एक्सटी
  • बीएसडी डिस्कलेबल
  • विभाजन प्रकार
  • ठोस राज्य ड्राइव
  • भौतिक स्मृति
  • फाइल आवन्टन तालिका
  • छोटा एंडियन
  • स्व-स्थानांतरण
  • सेब डार्विन
  • एल टोरिटो (मानक सीडी-रोम)
  • मेजबान संरक्षित क्षेत्र
  • एन रजिस्टर
  • एमबीआर विभाजन तालिका
  • एक्स रजिस्टर
  • बीएक्स रजिस्टर
  • बढ़ी हुई डिस्क ड्राइव विशिष्टता
  • लिलो (बूट भारक)
  • Apple विभाजन का नक्शा

बाहरी संबंध