跳转到内容

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/ [已过期]

华夏公益教科书