跳轉到內容

Oberon/ETH Oberon/bootmbr

來自華夏公益教科書,開放的書本,開放的世界

本文件最初託管在 ETHZ。它仍然在 ETH 許可 下,並且在 WayBack 存檔 中。

主引導記錄,及其在 ETH Oberon 中的應用
摘要

引導複雜性的下一個層次是從硬碟的 MBR 引導。每個硬碟都包含一個 MBR,但 BIOS 通常只能訪問第一個硬碟(裝置號為 80H 的硬碟)的 MBR,而對其他 MBR 的訪問最終可以透過機器系統設定來控制,具體取決於其功能。

無論使用哪種作業系統,它附帶的 MBR 都是一箇中心資訊儲存庫。它包含的引導載入程式程式碼因作業系統而異,因此其功能也隨之變化。多個作業系統的安裝順序也會影響 MBR 內容。當安裝 引導管理器 時,引導載入程式程式碼也會被功能不同的程式碼替換。因此,Oberon 使用者在任何情況下都必須處理並掌握圍繞 MBR 的所有事項,這是一個超出 ETH Oberon 關注範圍的廣闊主題。這裡只提供少量基本資訊,足以建立通往 相關 Oberon 材料 的橋樑。有關該主題的更多資訊可以在 維基百科關於引導的條目 中找到。

BIOS 在引導序列中的活動 - 跟蹤部分

基於 x86 的 PC 引導 中找到的描述的初始部分仍然適用。但是,如果

  • 在第一個軟盤驅動器上沒有找到引導扇區,或者
  • BIOS 設定被設定為從連線到 IDE、SCSI 或 USB 控制器的大容量儲存裝置引導,

INT 19 嘗試從第一個硬碟上的第一個扇區讀取 MBR。如果找到 MBR,它將被讀入記憶體位置 0000:7C00,並且 BIOS 檢查扇區的最後兩個位元組是否為“AA 55”。如果正確,該例程將跳轉到記憶體位置 0000:7C00。MBR 中的小程式將嘗試在其分割槽表中找到一個活動可引導的分割槽,從中可以啟動作業系統。如果 Oberon 分割槽處於活動狀態,則 Oberon 會使用 ETH Oberon 引導載入程式 啟動,這與使用引導軟盤的情況類似。例如,當安裝 DOS 時,分割槽中的第一個記錄包含一個 DOS 引導扇區。如果 DOS 分割槽處於活動狀態,則啟動程式碼將載入 IO.SYS,它將依次載入 DOS,等等……

當安裝引導管理器時,特定作業系統的真實 MBR 會被替換,並且“活動”分割槽概念變得無關緊要。相反,任何分割槽、主分割槽或擴充套件分割槽中的邏輯驅動器都可以被引導。一些引導管理器也可以級聯。

ETH Oberon 和 MBR

ETH Oberon 不提供 MBR。它期望第三方軟體提供的 MBR 在安裝 Oberon 之前存在。嘗試在空的/空白的第一個硬碟上安裝 Oberon 將不可避免地導致錯誤訊息“硬碟上沒有引導扇區”。由於 MBR 在系統啟動過程中發揮著如此重要的作用,因此有必要了解在啟動之前,在啟動大容量儲存裝置上的分割槽上的 Oberon 的啟動機制部分。

MS-DOS MBR

DOS MBR 儲存分割槽表和 446 位元組的引導載入程式程式碼,在機器啟動時發揮著重要作用。

MBR 位於硬碟的第一個扇區(柱面 0,磁頭 0,扇區 1),其結構如下

Offset Bytes  Meaning 
in hex.
0000    446   Boot Loader code 
01BE     16   1. partition entry 
01CE     16   2. partition entry 
01DE     16   3. partition entry 
01EE     16   4. partition entry 
01FE      2   Signature (55H AAH)

分割槽條目的結構如下

Offset Bytes  Meaning 
in hex.
00        1   80H = active partition / 00H = not active 
01        1   begin of partition (head number) 
02        1   begin of partition (sector number) 
03        1   begin of partition (cylinder number) 
04        1   partition type - 76 = 4CH for AosFS and NatFS 
05        1   end of partition (head number) 
06        1   end of partition (sector number) 
07        1   end of partition (cylinder number) 
08        4   rel. sectors (# of sectors to partition beginning) 
0C        4   number of sectors in partition

維基百科關於引導的條目 中可以找到對引導載入程式機制的良好描述。

替換 MBR

替換 MBR 是一個相當大的系統修改,可能會對安裝的所有作業系統造成較小的損害。事先確保作業系統仍然可以使用預先準備併為此類事件而留下的引導軟盤啟動。還要記住,無論何時在磁碟上新增、刪除或調整分割槽大小,分割槽表都會被修改,任何先前的備份 MBR 都將完全失效,並且是一個潛在的威脅!

如何寫入或替換 MBR

建議謹慎:替換 MBR 是一項危險的操作,會導致大量資料丟失。

MBR 的建立方式很多

  • 它可能存在於新購買的硬碟上 - 然後由製造商放置
  • 當安裝作業系統時。DOS:FDISK 用於格式化分割槽;Windows;Linux;BeOS;…
  • 當安裝另一個作業系統時。安裝順序起著重要作用。
  • 當安裝 引導管理器 時。
  • 當解除安裝引導管理器時。安裝時被取代的原始 MBR 被恢復。
  • 當執行 fdisk /mbr 時。
  • 當使用磁碟檢查實用程式時。
  • 等等。

此列表並不詳盡,建議讀者查閱與所使用的作業系統、商業軟體或共享軟體一起提供的文件。

ETH Oberon 透過在 ETH Oberon 簡介 / PC 本地 alpha 和 beta 版本 中描述的許多命令提供操縱或檢查 MBR 所需的功能

  • Partitions.WriteMBR dev#0 filename ~
  • Partitions.PartitionToFile dev#part filename [block blocks] ~
  • Partitions.FileToPartition dev#part filename [block blocks] ~
  • Partitions.ShowBlocks dev#part block [blocks] ~

一個有趣的副作用是,ETH Oberon 可以用於修復任何 MBR,包括外來作業系統的 MBR,而無需購買其他實用程式軟體。

災難恢復

如果您的機器不再像以前一樣啟動,可能是 MBR 被損壞或覆蓋。資料分割槽中的資料極不可能受到影響。繞過引導載入程式是解決這種情況的一種方法。使用在安裝期間建立的引導軟盤,讓您回到 Oberon。如果都沒有,請使用 Oberon-0 軟盤作為 通用救援軟盤

2002 年 11 月 21 日 - 版權所有 © 2002 ETH Zürich。保留所有權利。
電子郵件:oberon-web at inf.ethz.ch [已過期]
主頁:http://www.ethoberon.ethz.ch/ [已過期]

華夏公益教科書