MBR(Master Boot Record)

2013-06-21

MBR(Master Boot Record)即硬盘的主引导记录,在硬盘的0磁头0柱面1扇区。从硬盘启动时,BIOS通常是转向第一块硬盘的第一个扇区,即主引导记录(MBR)。


1、主引导记录由三部分组成:
(1)Bootloader 主引导程序;就是引导代码,其作用主要是加载第二阶段启动(即stage2)
(2)四个分区表;(DPT,Disk Partition Table)
(3)主引导记录有效标志字,Magic Number 魔数,就是那个 55AA 标志,用以检验该 MBR 的有效性。

2、查看方法
1)下载一个winhex ,菜单--工具--打开磁盘(F9)--选择你要查看的磁盘(物理)。开头的512字节就是MBR。其中分区表是64字节,从1BEH--1FDH.

2)也可以用分区魔术师选择硬盘右击查看扇区(开头的512字节)

3)linux看mbr
#dd if=/dev/sda of=mbrtest bs=512 count=1
#od -x mbrtest这个结果看着是反的
#xxd mbrtest

3、下面是一些分析:
a、输出最前面的一列是8进制的位偏移,所以每行有16个字节了。
b、mbr总共512字节,前446个字节是主引导记录,是bios加电自检后要运行的代码
c、从第447个字节开始后的64个字节,每16个字节为一组,是硬盘分区表,就是
红色的部分了。
d、看到0xaa55了吗?这就是Boot Sector结束标志。

e、关于硬盘分区表(DPT,Disk Partion Table)各个字节比较详细一点的说明如下:
0 Activeflag.活动标志.若为0x80H,则表示该分区为活动分区.若为0x00H,则表示该分区为非活动分区.   
1,2,3 该分区的起始磁头号,扇区号,柱面号:
磁头号 -- 1字节, 扇区号 -- 2字节低6位,柱面号 -- 2字节高2位 + 3字节   
4 分区文件系统标志:  
分区未用: 0x00H.   
扩展分区: 0x05H, 0x0FH.  
FAT16分区: 0x06H.  
FAT32分区: 0x0BH, 0x1BH, 0x0CH, 0x1CH.  
NTFS分区: 0x07H.   
5,6,7 该分区的结束磁头号,扇区号,柱面号,含义同上.   
8,9,10,11 逻辑起始扇区号。表示分区起点之前已用了的扇区数.   
12,13,14,15 该分区所占用的扇区数
f、根据第五点分析我的硬盘,(1)有两个主分区 (2) 第1个主分区前几个字节是
00 010100 07 feffff 0000003f 012a1481(表示数值的部分调整了顺序)
00因此该分区不是活动分区;010100表示该分区从硬盘的0柱面1磁头1扇区开始;
07代表该分区文件系统是ntfs;feffff其实是因为现在的硬盘超出了传统的
表示范围用最大值表示;0000003f,开始之前已经用的扇区数为什么是0x3f呢,
这个我也没搞懂,后面那个16进制的扇区数计算后大约9.35GB,与我的C盘大小
基本吻合。后面的照此分析了。
g、注意到一点就是没有activeflag为80的分区,我觉得原因是双系统装grub时覆盖了原系统的mbr,grub把活动分区划到了某个逻辑分区,系统启动查找分区表链时找到该分区。

4、BOOTICE和mbr
BOOTICE 是一个启动相关的维护的小工具,主要用于安装、修复、备份和恢复磁盘的 MBR(Master Boot Record)或分区上的 PBR(Partition Boot Record),以及查看编辑 Vista/win7/win8 的 BCD,此外还具有磁盘分区管理,磁盘镜像处理,编辑grldr引导代码,对可移动磁盘的重新分区和格式化等功能。

5、grub和mbr
我们可以用如下命令导出该扇区到文件(假设该硬盘为 hda):
dd if=/dev/hda of=mbr.bin bs=512 count=1
然后我们用
xxd mbr.bin
xxd /boot/grub/stage1
仔细对比发现,该扇区的 Bootloader 部分与 MagicNumber部分与 stage1 文件完全一样,原来,在使用 grub 的安装命令进行引导器安装时,grub 会用 stage1 文件的前 446 字节覆盖 MBR的前446 字节。在这里我们得到另一个启示,那就是不能简单的认为 MBR 等价于 stage1 ,为了保护 MBR ,我们还是应该对 MBR 做备份。

6、安装BootMgr/NTLDR到MBR
bootrec /fixmbr重写mbr
bootrec /fixboot命令重写pbr
bootsect /nt60 sys /mbr
windows引导过程:
BIOS-->MBR-->DPT-->pbr--> Bootmgr-->bcd-->Winload.exe-->内核加载 -->整个windows系统

分类:操作系统 | 标签: |

相关日志

评论被关闭!