我尝试从我的覆盆子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吗?
答案 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”愚蠢