您的位置:首页 > 运维架构 > Linux

如何查看linux中的MBR记录

2015-12-09 14:58 501 查看
大家是不是经常会谈论到MBR(main boot record)。MBR是由bootloader、dpt、结尾标志组成的。简单的来说MBR=bootloader+dpt+结尾标志(55 aa)。其中bootloader即引导记录(446字节),dpt磁盘分区表(64字节)

结尾标志(2字节)。那我们怎么看这里面的内容呢,哈哈。linux有很方便的方法。请大家接着往下看:

1、[root@centos5 ~]# dd if=/dev/sda of=mbr.bin bs=1 count=512

512+0 records in

512+0 records out

512 bytes (512 B) copied, 0.001414 seconds, 362 kB/s

(这里面主要是用到了dd这个工具,dd这个工具很强大。大家可以看下它的用法。)

2、[root@centos5 ~]# hexdump -C mbr.bin

00000000 eb 48 90 d0 bc 00 7c 8e c0 8e d8 be 00 7c bf 00 |.H….|……|..|

00000010 06 b9 00 02 fc f3 a4 50 68 1c 06 cb fb b9 04 00 |…….Ph…….|

00000020 bd be 07 80 7e 00 00 7c 0b 0f 85 0e 01 83 c5 10 |….~..|……..|

00000030 e2 f1 cd 18 88 56 00 55 c6 46 11 05 c6 46 03 02 |…..V.U.F…F..|

00000040 80 00 00 80 28 5f 44 01 00 08 fa 90 90 f6 c2 80 |….(_D………|

00000050 75 02 b2 80 ea 59 7c 00 00 31 c0 8e d8 8e d0 bc |u….Y|..1……|

00000060 00 20 fb a0 40 7c 3c ff 74 02 88 c2 52 f6 c2 80 |. ..@|<.t…R…|

00000070 74 54 b4 41 bb aa 55 cd 13 5a 52 72 49 81 fb 55 |tT.A..U..ZRrI..U|

00000080 aa 75 43 a0 41 7c 84 c0 75 05 83 e1 01 74 37 66 |.uC.A|..u….t7f|

00000090 8b 4c 10 be 05 7c c6 44 ff 01 66 8b 1e 44 7c c7 |.L…|.D..f..D|.|

000000a0 04 10 00 c7 44 02 01 00 66 89 5c 08 c7 44 06 00 |….D…f…D..|

000000b0 70 66 31 c0 89 44 04 66 89 44 0c b4 42 cd 13 72 |pf1..D.f.D..B..r|

000000c0 05 bb 00 70 eb 7d b4 08 cd 13 73 0a f6 c2 80 0f |…p.}….s…..|

000000d0 84 f0 00 e9 8d 00 be 05 7c c6 44 ff 00 66 31 c0 |……..|.D..f1.|

000000e0 88 f0 40 66 89 44 04 31 d2 88 ca c1 e2 02 88 e8 |..@f.D.1……..|

000000f0 88 f4 40 89 44 08 31 c0 88 d0 c0 e8 02 66 89 04 |..@.D.1……f..|

00000100 66 a1 44 7c 66 31 d2 66 f7 34 88 54 0a 66 31 d2 |f.D|f1.f.4.T.f1.|

00000110 66 f7 74 04 88 54 0b 89 44 0c 3b 44 08 7d 3c 8a |f.t..T..D.;D.}<.|

00000120 54 0d c0 e2 06 8a 4c 0a fe c1 08 d1 8a 6c 0c 5a |T…..L……l.Z|

00000130 8a 74 0b bb 00 70 8e c3 31 db b8 01 02 cd 13 72 |.t…p..1……r|

00000140 2a 8c c3 8e 06 48 7c 60 1e b9 00 01 8e db 31 f6 |*….H|`……1.|

00000150 31 ff fc f3 a5 1f 61 ff 26 42 7c be 7f 7d e8 40 |1…..a.&B|..}.@|

00000160 00 eb 0e be 84 7d e8 38 00 eb 06 be 8e 7d e8 30 |…..}.8…..}.0|

00000170 00 be 93 7d e8 2a 00 eb fe 47 52 55 42 20 00 47 |…}.*…GRUB .G|

00000180 65 6f 6d 00 48 61 72 64 20 44 69 73 6b 00 52 65 |eom.Hard Disk.Re|

00000190 61 64 00 20 45 72 72 6f 72 00 bb 01 00 b4 0e cd |ad. Error…….|

000001a0 10 ac 3c 00 75 f4 c3 00 00 00 00 00 00 00 00 00 |..<.u………..|

000001b0 00 00 00 00 00 00 00 00 90 5d ce c0 00 00 00 20 |………]….. |

000001c0 21 00 83 fe ff ff 00 08 00 00 00 00 80 0c 80 fe |!……………|

000001d0 ff ff 07 fe ff ff fc ea ff 18 3f 34 80 0c 00 fe |……….?4….|

000001e0 ff ff 0f fe ff ff 3b 1f 80 25 9a 24 40 01 00 fe |……;..%.$@…|

000001f0 ff ff 07 fe ff ff 00 48 c0 26 00 00 00 19 55 aa |…….H.&….U.|

00000200

看到没,55 aa就是结束标志。

看出一些门道来了:

1、第一列数字逢8进位,故为8进制,8列亦印证,0o1000=0d512 Byte,512B为一个扇区的大小。

2、看到0xaa55了吗?这就是Boot Sector结束标志。

至此提一提另外一种说法:MBR

Main(Mater)Boot Record主引导记录,实际上只是Boot Sector的一部分,Boot Sector:

a、MBR,占头446B

b、DPT,Disk Partion Table主分区表,4个主分区信息,每个16B

c、Boot Record ID,2B,若为合法分区,其值为0x0000aa55。

硬盘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)

  6 7 8 结束的磁头 FE 柱面 FF 扇区FF值

  9 10 11 12 本分区之前已用扇区数

  13 14 15 16 本分区大小

虚拟MBR

  即 EBR (extent boot record)扩展引导记录

  其记录表项 与MBR相同 ,用于管理扩展还能分区上的逻辑驱动器。

show disk partition

[root@XXX Desktop]# fdisk -l

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes

255 heads, 63 sectors/track, 121601 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 4096 bytes

I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Disk identifier: 0xc0ce5d90

Device Boot Start End Blocks Id System

/dev/sda1 1 13055 104857600 83 Linux

/dev/sda2 * 26109 39163 104864287+ 7 HPFS/NTFS

Partition 2 does not start on physical sector boundary.

/dev/sda3 39164 40469 10490445 f W95 Ext’d (LBA)

Partition 3 does not start on physical sector boundary.

/dev/sda4 40470 66578 209715200 7 HPFS/NTFS

/dev/sda5 39164 40469 10490413+ 7 HPFS/NTFS

Partition 5 does not start on physical sector boundary.

[root@s5248 Desktop]#

Display all 2786 possibilities? (y or n)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux