加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

磁盘主引导记录(MBR)详解

发布时间:2020-12-15 07:10:54 所属栏目:百科 来源:网络整理
导读:前言:xxc取名叫“详解”,不是说xxc要打多少字(xxc指法不好,多多谅解),在说了,把问题的要点提出来,也就够了。个人之见,只共参考。 一、? ? ? ? MBR 简介 Master Boot Record,位于磁盘的Cyclinder0,Head0,Sector1(Notice: Sector No. start from??ONE
前言:xxc取名叫“详解”,不是说xxc要打多少字(xxc指法不好,多多谅解),在说了,把问题的要点提出来,也就够了。个人之见,只共参考。

一、? ? ? ? MBR 简介
Master Boot Record,位于磁盘的Cyclinder0,Head0,Sector1(Notice: Sector No. start from??ONE.),在NAND Flash / DOM上如果你有partition的话,也有相同的MBR。只是没有Cyclinder,Head组织结构。MBR结构图如下:
Offset? ? ? ? length(B)? ? ? ? illustration
_____________________________
0x000? ? ? ? 446? ? ? ? ? ? ? ? ? ? ? ? 启动代码 (by the way,BR 与 MBR的主要不同就在与它没有启动代码,全0填充)
0x1be? ? ? ? 16? ? ? ? ? ? ? ? ? ? ? ? DPT Entry 1
0x1ce? ? ? ? 16? ? ? ? ? ? ? ? ? ? ? ? DPT Entry 2
0x1de? ? ? ? 16? ? ? ? ? ? ? ? ? ? ? ? DPT Entry 3
0x1ee? ? ? ? 16? ? ? ? ? ? ? ? ? ? ? ? DPT Entry 4
0x1fe? ? ? ? 2? ? ? ? ? ? ? ? ? ? ? ? 0x55AA

二、? ? ? ? DPT(Disk partition Table)结构
Offset? ? ? ? Length? ? ? ? ? ? ? ? illustration
__________________________________________________________
0x00? ? ? ? 1B? ? ? ? ? ? ? ? ? ? ? ? 0X00: not default partion,whereas 0x80 is ok.
0x01? ? ? ? 1B? ? ? ? ? ? ? ? ? ? ? ? Starting Head(SH) of this partition
0x02? ? ? ? 6bit? ? ? ? ? ? ? ? ? ? ? ? Starting Head(SH) of this partition
0x03? ? ? ? 10bit? ? ? ? ? ? ? ? Starting Cyclinder(SC) of this partition
0x04? ? ? ? 1B? ? ? ? ? ? ? ? ? ? ? ? System Type(ST) 即分区的FS type
0x05? ? ? ? 1B? ? ? ? ? ? ? ? ? ? ? ? End Head(EH) of this partition
0x06? ? ? ? 6bit? ? ? ? ? ? ? ? ? ? ? ? End Head(EH) of this partition
0x07? ? ? ? 10bit? ? ? ? ? ? ? ? End Cyclinder(EC) of this partition
0x08? ? ? ? 4B? ? ? ? ? ? ? ? ? ? ? ? Start Sector Address (SSA)

0x0C? ? ? ? 4B? ? ? ? ? ? ? ? ? ? ? ? Sector Number (SN)

分区表中有以下关系:(首先要说明两个参数: firstly,HPC (Head Per Cyclinder),secondly,SPLT (Sector Per logic Track),一般都为 255和63。 通过#fdisk –l 就可以看到这两个参数。)
SSA??= (SC * HPC + SH)* SPLT + (SS-1)? ?(1)
ESA??= (EC * HPC + EH) * SPLT + (ES-1)? ? ? ? (2)
SN? ?=??ESA – SSA + 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (3)
(看不懂这个等式的话,就得去看看disk结构了哈。)
不难推断出,如果要满足(1)(2),则每个分区不得大雨8.4G(这个就是早期disk partition的限制的原因); 但同时我们也可以看出 EH,ES,EC,SH,SS,SC都是冗余数据。于是在现在的disk partition中考虑兼容性,保留了原来的这些参数,但把出MBR DPT Entry 1 中的SH,SC之外的各个DPT Entry中都设置为其最大直,依次为:0xfe,0x 3f,0x3ff,0xfe,0x3f,0x3ff。
ST: 文件系统的类型,可以通过
#fdisk /dev/had
#Command (m for help): l??查看。注意一点,disk被fdisk后就有ST,但只有mkfs了才真正生效。

三、? ? ? ? 也许友人就问了, MBR才4个partition,> 4怎么办呢?
这就要用到BR,在每个partiition的开始部分有一个和MBR相同的结构,(BR 与 MBR
的主要不同就在与它没有启动代码,全0填充)
本来想画一个图的,这个上面不好操作,就不华了

四、? ? ? ? 以我自己的disk为例子说明
首先我copy出我的disk的MBR
#dd if=/dev/had of=mbr.bin bs=512 count=1
然后导出文本格式
#od –x mbr.bin > mbr
打开
#vi mbr
(片段)
(启动代码)。。。。。。。。
0000660 ? ? ? ? 0000 0000 0000 0000 1a5e 0003 0000 0180
0000700 ? ? ? ? 0001 fe83 ffff 003f 0000 1637 0271 fe00
0000720 ? ? ? ? ffff fe82 ffff 1676 0271 ef01 000f fe00
0000740 ? ? ? ? ffff fe05 ffff 0577 0281 df4a 06cf 0000
0000760 ? ? ? ? 0000 0000 0000 0000 0000 0000 0000 aa55
0001000
其中, 0180? ? ? ? (80 可以知道是 default分区)
0000700 ? ? ? ? 0001 fe83 ffff 003f 0000 1637 0271 为分区表入口1 (由fe83中的83知道是EXT3分区)
fe00
0000720 ? ? ? ? ffff fe82 ffff 1676 0271 ef01 000f为分区表入口2 (由fe82中的82知道是swap分区)
fe00
0000740 ? ? ? ? ffff fe05 ffff 0577 0281 df4a 06cf 0000为分区表入口3??(由fe05中的05知道是扩展分区)
0000
0000760 ? ? ? ? 0000 0000 0000 0000 0000 0000 0000为分区表入口4 (没有第4个主分区)
哎呀,这个上面实在表素工具有限,要把这串数字都懂还是要花点时间的。里面还有好几点细节呢。不过想回来,除了要注意第一列是8禁止地址,其他为16禁止,注意是小顶端哦,其他的我前面的原理已经说的还酸清楚了。

既然第3个是扩展分区,那一定有一个BR所定义的逻辑分区撒,且看 0281 df4a(实际为: 0xdf4a 0x81),及从这个sector开的地方,长度自然还是512哈。于是,
#dd if=/dev/had of=mbr.bin bs=512 count=1 skip=42009975 ( == 0xdf4a 0x81 )
然后导出文本格式
#od –x br.bin > br
打开
#vi br
(全部)
0000000 ? ? ? ? 0000 0000 0000 0000 0000 0000 0000 0000
*??(这个也不是MBR,启动代码当然没有了)
0000660 ? ? ? ? 0000 0000 0000 0000 0000 0000 0000 fe00
0000700 ? ? ? ? ffff fe83 ffff 003f 0000 5342 012a fe00
0000720 ? ? ? ? ffff fe05 ffff 5381 012a 26bb 001e 0000
0000740 ? ? ? ? 0000 0000 0000 0000 0000 0000 0000 0000
0000760 ? ? ? ? 0000 0000 0000 0000 0000 0000 0000 aa55
0001000 (512B)分析就和上面的相同了和, 我就不分析了。

推荐另一个资料:http://blog.csdn.net/nydzdoking/article/details/3720972

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读