MBR,(master boot record)即主引导记录,是硬盘逻辑上第一个扇区。MBR由系统引导代码段、分区表和有效标志组成,MBR分区表的最大可寻址的存储空间只有2Tb(232×512字节),当PC加电BIOS自检完毕后将控制权交给MBR中的引导代码段,由MBR代码加载操作系统完成启动过程,MBR信息不能存在于不可分区的媒介或高级分区,如软盘、LVM等分区中,是因为系统开机时没有相关驱动,无法识别有效的分区信息。
硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR)。它由三个部分组成,主引导程序、硬盘分区表DPT(Disk Partition table)和分区有效标志(55AA)。在总共512字节的主引导扇区里主引导程序(boot loader)占446个字节,第二部分是Partition table区(分区表),即DPT,占64个字节,硬盘中分区有多少以及每一分区的大小都记在其中。第三部分是magic number,占2个字节,固定为55AA。
另外MBR信息是可以备份的,也建议将服务器的MBR信息备份一下,复制到安全的地方,以避免突然断电等非正常关机后导致MBR丢失而无法开机。
备份MBR信息:
[root@localhost ~]# dd if=/dev/sda of=/root/mbr bs=1 count=512
即从sda读取512个块,每个块大小为1字节,即512字节,也就是将整个MBR导出成mbr文件
文件导出后是二进制文件,是无法使用cat或vim等命令直接打开或编辑的,但是可以使用od命令查看
od命令常用参数:
-Ax :左边地址显示用十六进制显示
-tx1 :显示内容以十六进制显示,并以一个字节为一个显示单位
[root@localhost ~]# od -tx1 -Ax /root/mbr
000000 eb 48 90 10 8e d0 bc 00 b0 b8 00 00 8e d8 8e c0
000010 fb be 00 7c bf 00 06 b9 00 02 f3 a4 ea 21 06 00
000020 00 be be 07 38 04 75 0b 83 c6 10 81 fe fe 07 75
000030 f3 eb 16 b4 02 b0 01 bb 00 7c b2 80 8a 74 03 02
000040 80 00 00 80 fc 44 08 00 00 08 fa 90 90 f6 c2 80
000050 75 02 b2 80 ea 59 7c 00 00 31 c0 8e d8 8e d0 bc
000060 00 20 fb a0 40 7c 3c ff 74 02 88 c2 52 f6 c2 80
000070 74 54 b4 41 bb aa 55 cd 13 5a 52 72 49 81 fb 55
000080 aa 75 43 a0 41 7c 84 c0 75 05 83 e1 01 74 37 66
000090 8b 4c 10 be 05 7c c6 44 ff 01 66 8b 1e 44 7c c7
0000a0 04 10 00 c7 44 02 01 00 66 89 5c 08 c7 44 06 00
0000b0 70 66 31 c0 89 44 04 66 89 44 0c b4 42 cd 13 72
0000c0 05 bb 00 70 eb 7d b4 08 cd 13 73 0a f6 c2 80 0f
0000d0 84 f0 00 e9 8d 00 be 05 7c c6 44 ff 00 66 31 c0
0000e0 88 f0 40 66 89 44 04 31 d2 88 ca c1 e2 02 88 e8
0000f0 88 f4 40 89 44 08 31 c0 88 d0 c0 e8 02 66 89 04
000100 66 a1 44 7c 66 31 d2 66 f7 34 88 54 0a 66 31 d2
000110 66 f7 74 04 88 54 0b 89 44 0c 3b 44 08 7d 3c 8a
000120 54 0d c0 e2 06 8a 4c 0a fe c1 08 d1 8a 6c 0c 5a
000130 8a 74 0b bb 00 70 8e c3 31 db b8 01 02 cd 13 72
000140 2a 8c c3 8e 06 48 7c 60 1e b9 00 01 8e db 31 f6
000150 31 ff fc f3 a5 1f 61 ff 26 42 7c be 7f 7d e8 40
000160 00 eb 0e be 84 7d e8 38 00 eb 06 be 8e 7d e8 30
000170 00 be 93 7d e8 2a 00 eb fe 47 52 55 42 20 00 47
000180 65 6f 6d 00 48 61 72 64 20 44 69 73 6b 00 52 65
000190 61 64 00 20 45 72 72 6f 72 00 bb 01 00 b4 0e cd
0001a0 10 ac 3c 00 75 f4 c3 00 00 00 00 00 00 00 00 00 #以上为主引导程序(boot loader)
0001b0 00 00 00 00 00 00 00 00 c1 fc 0b 00 00 00 80 0c #第一个分区信息
0001c0 0d 00 83 c5 06 3f 00 03 00 00 00 9f 0f 00 00 c5 #第二个分区信息
0001d0 07 3f 83 fe ff ff 00 a2 0f 00 00 fe 7f 0c 00 fe #第三个分区信息
0001e0 ff ff 83 fe ff ff 00 a0 8f 0c 00 5f 50 32 00 00 #第四个分区信息
0001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa #55 aa为分区合法标志
前446个字节是系统的主引导程序,
MBR是由安装操作系统时写入到硬盘里面的,它的主要功能是在开机从BIOS接到引导后,检测硬盘分区表是否完整,如果分区表有问题则会显示一个横杠在屏幕闪动或GRUB界面,然后在分附表中查找标记为活动的分区,并将活动分区的第一逻辑扇区装在到内存,将引导交予活动分区继续引导
分区表46字节:
记录了磁盘的详细分区信息,如有多少个主分区等,共有4个分区记录,即每个分区项要占用16字节,这也就是为什么最多只能分4个主分区的原因。
最后2个字节:分区合法标注
用于标注一个磁盘是否已经划分分区,如果有就表示已经进行过分区,如果没有55 aa,则会识别为一个未分区的磁盘,如格新买的磁盘就没有55 aa,将一个磁盘的分区全部删除完以后应该也是没有55 aa的,但是要实际验证一下。
总结:
分区信息最好要备份,MBR的功能是检测分区表状态、查找活动分区加载到内存并将启动交给活动分区继续引导系统启动。
MBR备份命令:
[root@localhost ~]# dd if=/dev/sda of=/root/mbr bs=1 count=512
MBR恢复命令:
[root@localhost ~]# dd if=/root/mbr of=/dev/sda bs=1 count=512
本文出自 “Linux” 博客,请务必保留此出处http://zhangshijie.blog.51cto.com/806066/1578996
原文地址:http://zhangshijie.blog.51cto.com/806066/1578996