linux MBR

来源:互联网 发布:软件管家官方下载 编辑:程序博客网 时间:2024/04/30 17:21

http://www.ibm.com/developerworks/cn/linux/l-linuxboot/index.html

IBM这篇将boot的过程的文章,提到MBR的结构:



找了一台linux虚拟机,取数据如下:

[winlin@dev6 ~]$ df -hFilesystem            Size  Used Avail Use% Mounted on/dev/sda1             485M   30M  430M   7% /boot

可见启动分区在/dev/sda这个设备上,取MBR如下:

[winlin@dev6 ~]$ sudo dd if=/dev/sda of=mbr.bin bs=512 count=11+0 records in1+0 records out512 bytes (512 B) copied, 0.000196681 s, 2.6 MB/s[winlin@dev6 ~]

取到的数据在mbr.bin文件中,用hex shop看如下:


按照说明,分成三部分:


其中,BootLoader为446字节,即0x1be字节:

EB 48 90 10 8E D0 BC 00 B0 B8 00 00 8E D8 8E C0 FB BE 00 7C BF 00 06 B9 00 02 F3 A4 EA 21 06 00 00 BE BE 07 38 04 75 0B 83 C6 10 81 FE FE 07 75 F3 EB 16 B4 02 B0 01 BB 00 7C B2 80 8A 74 03 02 80 00 00 80 D4 49 08 00 00 08 FA 90 90 F6 C2 80 75 02 B2 80 EA 59 7C 00 00 31 C0 8E D8 8E D0 BC 00 20 FB A0 40 7C 3C FF 74 02 88 C2 52 F6 C2 80 74 54 B4 41 BB AA 55 CD 13 5A 52 72 49 81 FB 55 AA 75 43 A0 41 7C 84 C0 75 05 83 E1 01 74 37 66 8B 4C 10 BE 05 7C C6 44 FF 01 66 8B 1E 44 7C C7 04 10 00 C7 44 02 01 00 66 89 5C 08 C7 44 06 00 70 66 31 C0 89 44 04 66 89 44 0C B4 42 CD 13 72 05 BB 00 70 EB 7D B4 08 CD 13 73 0A F6 C2 80 0F 84 F0 00 E9 8D 00 BE 05 7C C6 44 FF 00 66 31 C0 88 F0 40 66 89 44 04 31 D2 88 CA C1 E2 02 88 E8 88 F4 40 89 44 08 31 C0 88 D0 C0 E8 02 66 89 04 66 A1 44 7C 66 31 D2 66 F7 34 88 54 0A 66 31 D2 66 F7 74 04 88 54 0B 89 44 0C 3B 44 08 7D 3C 8A 54 0D C0 E2 06 8A 4C 0A FE C1 08 D1 8A 6C 0C 5A 8A 74 0B BB 00 70 8E C3 31 DB B8 01 02 CD 13 72 2A 8C C3 8E 06 48 7C 60 1E B9 00 01 8E DB 31 F6 31 FF FC F3 A5 1F 61 FF 26 42 7C BE 7F 7D E8 40 00 EB 0E BE 84 7D E8 38 00 EB 06 BE 8E 7D E8 30 00 BE 93 7D E8 2A 00 EB FE 47 52 55 42 20 00 47 65 6F 6D 00 48 61 72 64 20 44 69 73 6B 00 52 65 61 64 00 20 45 72 72 6F 72 00 BB 01 00 B4 0E CD 10 AC 3C 00 75 F4 C3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 AA ED 0D 00 00 00                                                 

接下来的是partition table,64字节长,即0x40字节:

80 20 21 00 83 DD 1E 3F 00 08 00 00 00 A0 0F 00 00 DD 1F 3F 8E FE FF FF 00 A8 0F 00 00 58 30 1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00       

最后是2字节的校验位:

55 AA