从树莓派中提取MBR

时间:2014-06-06 02:57:28

标签: arm raspberry-pi mbr

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

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

但是,在file上执行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

[编辑] 我还读到了引导序列here;树莓派甚至使用MBR吗?

1 个答案:

答案 0 :(得分:2)

  

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

因为它是。从技术上讲,即使“x86”太宽泛,“IBM PC-XT兼容”也更准确,但是由于多年来无处不在的IBM兼容性,MBR是目前最低标准的事实标准之一。

  

树莓派甚至使用MBR吗?

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

  

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

整个复杂的BIOS链式引导程序设置是具有128k RAM的16位机器的遗留问题。现在感谢EFI和GPT,它最终将成为该机器的其他功能,如ROM BASIC和录音带接口;)


*包括目前大多数x86 PC,因为EFI处理“以16位实模式启动,假装是8086”愚蠢