Arm 从树莓皮中提取MBR

Arm 从树莓皮中提取MBR,arm,raspberry-pi,mbr,Arm,Raspberry Pi,Mbr,我尝试从我的raspberry pi(SD卡上加载了raspbian)中提取MBR,就像在任何Linux机器上一样 dd if=/dev/<devname> of=mbr.bin bs=512 count=1 dd if=/dev/of=mbr.bin bs=512 count=1 但是,在mbr.bin上执行文件时,我收到以下消息:- mbr.bin:x86引导扇区;分区1:ID=0xc,starthead 130,startsector 8192,114688扇区;分区2:I

我尝试从我的raspberry pi(SD卡上加载了raspbian)中提取MBR,就像在任何Linux机器上一样

dd if=/dev/<devname> of=mbr.bin bs=512 count=1
dd if=/dev/of=mbr.bin bs=512 count=1
但是,在
mbr.bin
上执行
文件时,我收到以下消息:-

mbr.bin:x86引导扇区;分区1:ID=0xc,starthead 130,startsector 8192,114688扇区;分区2:ID=0x83,starthead 0,startsector 122880,15400960扇区,代码偏移量0xb8

为什么它说它是一个
x86引导扇区

[编辑] 我还阅读了有关引导顺序的内容;覆盆子pi是否使用MBR

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

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

覆盆子pi是否使用MBR

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

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

整个复杂的BIOS链式引导设置是一台16位机器的遗留,具有128k的RAM。现在多亏了EFI和GPT,它终于走上了该机器其他功能的道路,比如ROM BASIC和盒式磁带接口;)



*包括现在的大多数x86 PC,因为EFI处理了“以16位实模式启动假装为8086”的愚蠢行为

事实上,据我所知,这只是一个保护性MBR,任何最新的启动代码都会忽略它,只是用来防止不推荐的软件乱来。