2

我尝试从我的树莓派中提取 MBR(在 SDCARD 上加载了 raspbian),就像在任何 Linux 机器上一样。

dd if=/dev/<devname> of=mbr.bin bs=512 count=1

但是,在执行fileon时,mbr.bin我收到以下消息:-

mbr.bin: x86 boot sector; partition 1: ID=0xc, starthead 130, startsector 8192, 114688 sectors; partition 2: ID=0x83, starthead 0, startsector 122880, 15400960 sectors, code offset 0xb8

为什么说它是一个x86 boot sector

[编辑] 我还在这里阅读了有关启动顺序的信息;树莓派甚至使用 MBR 吗?

4

1 回答 1

3

为什么说它是 x86 引导扇区?

因为它是。从技术上讲,甚至“x86”都过于宽泛,“IBM PC-XT 兼容”更准确,但由于多年来 IBM 兼容产品无处不在,如今 MBR 已成为那些最低公分母的事实标准之一。

树莓派甚至使用 MBR 吗?

是和不是。由于MBR 包含(16 位)BIOS 引导代码分区表,任何不通过 IBM 兼容的 BIOS* 引导的东西都关心后者,但可以忽略前者。由于 MBR 和 FAT 格式的简单性(由于已有 30 年的历史),固件很容易简单地进入数据结构,拉出第一个分区并查找它想要的文件,这正是包括 Pi 在内的许多系统都可以 - 引用问题中链接的页面:

另请注意,没有标记为活动(可引导)的分区。RPi 固件被编码为在第一个 FAT32 分区中查找文件 bootcode.bin - 正常的 MBR - 不遵循分区引导过程。

整个复杂的 BIOS 链式引导设置是具有 128k RAM 的 16 位机器的遗留问题。现在多亏了 EFI 和 GPT,它终于可以采用该机器的其他功能,例如 ROM BASIC 和录音带接口;)


* 包括当今大多数 x86 PC,因为 EFI 处理了“以 16 位实模式启动并伪装成 8086”的愚蠢行为

于 2014-06-06T08:57:47.863 回答