是否有任何類型的 MBR(主引導記錄)格式的完整 RFC 文件 - 最好有解釋?

是否有任何類型的 MBR(主引導記錄)格式的完整 RFC 文件 - 最好有解釋?

我正在設計枚舉系統中分區的程式碼。閱讀大量文件我無法設計出完整且明確的演算法約束列表,並找出約束存在的原因。

  • 根MBR有4個條目,因此MBR可能包含4個主分割區;
  • 在此根 MBR 清單中,可能只有一個擴充分割區,然後該分割區會連結到具有邏輯磁碟區的輔助 MBR。

問題:

  1. 為什麼 DOS 6.22 FDISK 不允許建立 3 個主分割區,而只能建立一個?
  2. 為什麼擴展分割區鏈中的輔助MBR只能有1個邏輯卷,而可以有3個(為擴展分割區列表節省2個附加連結)?
  3. 當檢查擴展分區的邏輯驅動器直到其鏈末尾時,枚舉是否返回到根 MBR 並從擴展分區條目後的下一個條目繼續?為什麼不?
  4. 如果 DOS 或 Windows 作業系統發現 MBR 條目不符合約束(請參閱上面的問題 1 到 3),會發生什麼情況?換句話說,是否有作業系統列舉其分區/邏輯驅動器的過程的描述?

答案1

主開機記錄是一種用於 IBM PC 相容系統的開機磁區。 MBR 的原始版本由 IBM 的 David Litton 於 1982 年 6 月編寫,並於 1983 年隨 PC-DOS 2.0 公開推出。然而,PC-DOS 只實現了最重要的功能,而不是全部。

最接近「規範」(我知道)的是https://thestarman.pcministry.com/asm/mbr/STDMBR.htm

MBR結構如下:

位址十六進位(十進位) 尺寸 功能
0x0000 (0) 第440章 引導程式
0x01B8 (440) 4 磁碟簽章(自 Windows NT 系列以來)
0x01BC 和 0x01BC(444 和 445) 2 零 (0x0000)
0x01BE (446) 64 分區表
0x01FE 和 0x01FF(510 和 511) 2 簽名
全部的 第512章

答案:

  1. 為什麼 DOS 6.22 FDISK 不允許建立 3 個主分割區,而只能建立一個?

1983 年 3 月,IBM PC DOS 2.0 引入了對分區介質的支持,但當時僅支援一個主分區。這一點從未改變。 DOS本身絕不使用了多個主分區。因此,FDISK無法建立多個主分割區。

  1. 為什麼擴展分割區鏈中的輔助MBR只能有1個邏輯卷,而可以有3個(為擴展分割區列表節省2個附加連結)?

不完全確定“輔助 MBR”的確切含義,因此最終以下內容無法回答您的問題。 (請小心處理!)

DOS 3.2 新增了對擴展分區的支援。 DOS 3.30 附帶了擴充分割區內的嵌套邏輯磁碟機。

每個擴展分區表精確定義一個邏輯分區並指向下一個擴展分區表(如果需要)。換句話說 - 擴展分區表根據鍊錶原理工作。它的起始扇區是相對於目前分區表的位置指定的。第二個條目可以包含與另一個擴充分割區表的串聯,且型別始終為 5。由於它是按定義連結的,因此您無法引用所有擴充分割區,因此無法儲存 2 個附加連結。

  1. 當檢查擴展分區的邏輯驅動器直到其鏈末尾時,枚舉是否返回到根 MBR 並從擴展分區條目後的下一個條目繼續?為什麼不?

不。

  1. 如果 DOS 或 Windows 作業系統發現 MBR 條目不符合約束(請參閱上面的問題 1 到 3),會發生什麼情況?換句話說,是否有作業系統列舉其分區/邏輯驅動器的過程的描述?

如果分區不可識別,則不會使用它們。如果找不到第一個主分割區,則 DOS/Windows 無法啟動。

筆記: 先前版本的 Windows 依賴 MS-DOS 確定的磁碟機號,但從 Windows 2000 開始,這些對映儲存在登錄項目中,例如 HKLM\SYSTEM\MountedDevices。對於某些系統星座,磁碟簽章也用在 boot.ini 檔案中,該檔案是 Windows NT 開機載入程式 (NTLDR) 的一部分。 Windows 在初始化新磁碟時指派磁碟簽章。

相關內容