手机MBR

fdisk /dev/sda 进入交互模式,输入i可以参看分区文件类型与数字对应表,5 表示扩展分区
df -T 会显示出分区类型
dumpe2fs -h 列出superblock

MBR(main boot record),MBR是由bootloader、dpt、结尾标志组成的。
MBR=bootloader+dpt+结尾标志(55 aa)。其中bootloader即引导记录(446字节),dpt磁盘分区表(64字节),结尾标志(2字节)
读取/dev/sda MBR
#dd if=/dev/sda of=mbr.bin bs=1 count=512
#dexdump mbr.bin
可以看到510 与511字节为0x550xaa,这就是Boot Sector结束标志。根据这个标准来确认是否是MBR。
该区相当于一个小程序,作用是判断哪个分区被标记为活动分区,然后去读取那个分区的启动区,并运行该区中的代码。

MBR:
Main(Mater)Boot Record主引导记录,实际上只是Boot Sector的一部分,Boot Sector:
1、MBR,占头446B
2、DPT,Disk Partion Table主分区表,4个主分区信息,每个16B
3、Boot Record ID,2B,若为合法分区,其值为0x550xaa。

硬盘MBR扇区
  •主引导程序(偏移地址0000H–0088H),它负责从活动分区中装载,并运行系统引导程序。
  •出错信息数据区,偏移地址0089H–00E1H为出错信息,00E2H–01BDH全为0字节。
  •分区表(DPT,Disk Partition Table)含4个分区项,偏移地址01BEH–01FDH,每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4。
•结束标志字,偏移地址01FE–01FF的2个字节值为结束标志55AA,如果该标志错误系统就不能启动。

MBR的结构如下表所示
字节偏移(16进制) 字节数 描述
00~1BD 446 引导代码
1BE~1CD 16 分区表项1
1CE~1DD 16 分区表项2
1DE~1ED 16 分区表项3
1EE~1FD 16 分区表项4
1FE~1FF 2 签名值55AA
具体含义如下:
  (1)0x00~0x1BD:446个字节,包含一段指令,用以通知计算机如何访问分区表并定位操作系统的位置
  这部分的代码会因为操作系统不同而不同,利用引导代码可以实现多重系统引导。多系统引导有两种方法可以实现:一种方法是用Windows操作系统在引导分区中设置一段代码,先加载进入用户选择系统的界面,允许用户选择要进入的系统,再进入指定的系统;第二种方法是改变MBR中的引导代码,该代码直接呈现给用户一个选择系统的界面。
  (2)0x1BE~0x1FD:64个字节,4个分区表项,每个表项占用16个字节,描述一个分区,最多可以描述4个分区(这就是为什么MBR分区体系只能分成4个区【我们平时看到的分区一般可以从26个字母中选取任意多个当做分区标识(多于4个),这是因为那些分区是逻辑分区,这里的4个分区指的是主分区和扩展分区的数目,而逻辑分区是在扩展分区中划分出来的,也叫做二级、三级扩展分区。】)。
  分区表项并没有顺序要求,即不要求第一个分区表项在第二个分区表项前。
  分区表也不要求从第一个分区表项开始
(3)0x1FE~0x1FF:2个字节,有效结束标志“55AA”。如果没有这个标志,操作系统会认为磁盘没有初始化,无法正确加载磁盘的分区。
  分区表参数含义(字节)
  1 活动(80)或非活动分区(00)
  2 3 4 起始的磁头 01 柱面 01 扇区00值
  5 分区类型符 NTFS(07 06)FAT32(0B 0C)扩展(0F 05)( 05)表示扩展分区。
  6 7 8 结束的磁头 FE 柱面 FF 扇区FF值
  9 10 11 12 本分区之前已用扇区数(分区起始位置)
  13 14 15 16 本分区大小
  虚拟MBR
  即 EBR (extent boot record)扩展引导记录
  其记录表项 与MBR相同 ,用于管理扩展还能分区上的逻辑驱动器

这里写图片描述

MBR中
第一个分区类型05为扩展分区
分区空间起始 00000400 大小 ffffffff 说明该分区是整个硬盘空间
0x400*512=512k 从分区表中可知这正是MBR分区大小
第二个分区类型83为ext4分区
分区空间起始 00004800 大小 00005000
0x5000*512=10M 这里对应为 PROTECT_F
第三个分区类型为83
起始00009800 大小 00005000即10M
这里对应为 PROTECT_S
但是第一个扩展分区400与第二个分区4800之间有4400空间,其大小为
0x4400*512=8.5M
这个从分区表中可以知道顺序对应EBR1 0.5M、PRO_INFO 3M、NVRAM 5M
第四个分区类型为83
分区空间起始 00022c00 大小 00003000
0x3000*512=6M 这里对应为 SEC_RO
第三个分区9800与第四个分区22c00之间有(0x22c00-0x9800)*512=40.5M空间
这个从分区表可知顺序对应着SECFG 0.125M、LK 0.375M、BOOTIMAGE 20M、RECOVERY 20M
EBR1中
第一个分区类型是83
分区空间起始00027800 大小 001d1000
0x101000*512=930M 这里对应着CUST_PACK
这一个分区与上一个分区之间空间 (0x1d1000-0x22c00-0x3000)*512=3.5M
这个从分区表可知顺序对应着MISC 0.5M、BOOTLOGO 3M、EBR2 0.5M
这里看上去总大小为4M大于实际3.5M,
所以实际上这个分区起始地址不是00027800,而是0x00027800*512+0.5M=0x4f80000,从cust_pack开始往后的分区起始位置均会偏移0.5M
第二个分区类型是83
1f8800 4000
大小8M 对应MOBILE_INFO
第三个分区类型是83
201800 104000
大小520M 对应SYSTEM
这个分区与上个分区间空间 (0x201800-0x1f8800-0x4000)*512=10M
这个从分区表可知是EXPDB分区
第四个分区是扩展分区
27400 ffffffff
EBR2中
第一个分区类型是83
2de400 640000
大小200M 对应CACHE
这个分区与上一个分区:201800+104000-2de400=27400
这里不清楚为什么分区是从27400开始,这里与CUST_PACK分区起始位置27800相差0.5M
第二个分区类型是83
342400 ffc967ff
大小约2T
这里从分区表对应DATA 1G
还有OTP 43M、BMTPOOL 21M 与MBR没关系,由分区表确定。

这里写图片描述

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值