这篇博客是从旧博客 WordPress 迁移过来,内容可能存在转换异常。
MBR(Master Boot Record),主引导记录,又称主引导扇区,总大小是512字节。(更多)
图1. MBR整体结构 (以上摘自维基百科)
其中MBR分区表占64字节,分为4个16字节的主分区表入口。
图2. MBR64字节的分区表结构
查看本机硬盘分区:
图3. fdisk
可以看到,一共分了四个区。
在本机下,首先:
> > dd if=/dev/sda of=/tmp/mbr bs=1 count=512 > >
把前512字节的内容取出,放到.tmp目录下,名字是mbr
然后:
> > hexdump –C mbr > >
可以看到:
图4. hexdump显示512字节的MBR内容
现在开始分析:
从图1可以看到,从01BE H开始是MBR分区表的开始,分区表占64字节,每个住分区时16个字节
看第一个主分区表的内容:
> > 80 20 21 00 83 df 13 0c 00 08 00 00 00 20 03 00 > >
根据图2参考:
第1字节是80,表示活动分区
第2字节是分区起始磁头号,为20H=32
第3、4两个字节,其中分区起始扇区号是100001B=33,磁柱号为0
第5字节是83,文件系统标志位,查到是linux文件系统(参考:http://en.wikipedia.org/wiki/Partition_type)
第6字节是dfH=223,表示分区结束的磁头号,对应第2字节
第7、8两个字节,其中分区结束扇区号是010011B=19,磁柱号为0000110000B=48
第9、10、11、12四个字节,为分区起始相对的扇区号,即00000800H=2048
第13、14、15、16四个字节,为分区的扇区数,即00032000H=204800
根据图3,可以看到,第一个分区的信息:
Start是2048,End是206847
Start就对应上面求出的9~12字节,2048+204800-1=206847,对应的End
参考: