主引导记录(MBR)分析

 

主引导记录Master Boot Record,缩写:MBR),又叫做主引导扇区,是计算机开机后访问硬盘时所必须要读取的首个扇区,它在硬盘上的三维地址为(柱面,磁头,扇区)=(0,0,1)。详情:http://zh.wikipedia.org/wiki/%E4%B8%BB%E5%BC%95%E5%AF%BC%E8%AE%B0%E5%BD%95

 

首先使用shell如何查看MBR信息:

1 #使用dd导出MBR到mbr.bin文件
2 dd if=/dev/sda of=mbr.bin bs=512 count=1 
3 #使用dd导出MBR并且使用xxd显示
4 dd if=/dev/sda bs=512 count=1 | xxd
5 #使用dd导出MBR并且使用xxd显示分区信息
6 dd if=/dev/sda bs=512 count=1 | xxd -s 446

虚拟机上的使用实例:

 1 #取得sda中的MBR中的分区信息,得出2个分区,第一个分区为活动分区(可以引导系统)
 2 #第一个分区信息存储在mbr的0x01be偏移
 3 #最后一个分区结束在mbr的0x01fe偏移
 4 #至于16个字节的具体含义,就参见下文
 5 [root@localhost ~]# dd if=/dev/sda bs=512 count=1 |xxd -s 446 -c 16 -g 1   # dd if=/dev/sda bs=512 count=1 |xxd -s 0x01be -c 16 -g 1
 6 00001be: 80 20 21 00 83 dd 1e 3f 00 08 00 00 00 a0 0f 00  . !....?........
 7 00001ce: 00 dd 1f 3f 8e fe ff ff 00 a8 0f 00 00 58 b0 03  ...?.........X..
 8 00001de: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
 9 00001ee: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
10 1+0 records in
11 1+0 records out
12 512 bytes (512 B) copied, 0.000361566 s, 1.4 MB/s
13 00001fe: 55 aa                                            U.

 上面只能表示4个主分区,不能表示扩展分区。扩展分区和主分区的具体存储如下图:

以下内容从维基百科上摘录,整个MBR分为下面三部分。

启动代码

主引导记录最开头是第一阶段引导代码。其中的硬盘引导程序的主要作用是检查分区表是否正确并且在系统硬件完成自检以后将控制权交给硬盘上的引导程序(如GNU GRUB)。MBR是由分区程序(如Fdisk)所产生的,它不依赖任何操作系统,而且硬盘引导程序也是可以改变的,从而能够实现多系统引导

硬盘分区表

      硬盘分区表占据主引导扇区的64个字节(偏移01BEH--偏移01FDH),可以对四个分区的信息进行描述,其中每个分区的信息占据16个字节。具体每个字节的定义可以参见硬盘分区结构信息。下面是一个例子:

如果某一分区在硬盘分区表的信息如下

80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00

则我们可以看到,最前面的"80"是一个分区的激活标志,表示系统可引导;"01 01 00"表示分区开始的磁头号为01,开始的扇区号为01,开始的柱面号为00;"0B"表示分区的系统类型是FAT32,其他比较常用的有04(FAT16)、07(NTFS);"FE BF FC"表示分区结束的磁头号为254,分区结束的扇区号为63、分区结束的柱面号为764;"3F 00 00 00"表示首扇区的相对扇区号为63;"7E 86 BB 00"表示总扇区数为12287662。

对于现代大于8.4G的硬盘,CHS已经无法表示, BIOS使用LBA模式,对于超出的部分,CHS值通常设为 FEFFFF, 并加以忽略,直接使用08-0f的4字节相对值,再进行内部转换.

硬盘分区结构信息
偏移长度(字节)意义
00H1分区状态:00-->非活动分区;80--> 活动分区;
其它数值没有意义
01H1分区起始磁头号(HEAD),用到全部8位
02H2分区起始扇区号(SECTOR),占据02H的位0-5;
该分区的起始磁柱号(CYLINDER),占据
02H的位6-7和03H的全部8位
04H1文件系统标志位
05H1分区结束磁头号(HEAD),用到全部8位
06H2分区结束扇区号(SECTOR),占据06H的位0-5;
该分区的起始磁柱号(CYLINDER),占据
06H的位6-7和07H的全部8位
08H4分区起始相对扇区号
0CH4分区总的扇区数

      结束标志字

结束标志字55,AA(偏移1FEH-偏移1FFH)是主引导扇区的最后两个字节,是检验主引导记录是否有效的标志。

未完成!!!

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值