硬盘MBR的原理 Unknown 2009/03/28

| |

请注意,我标题中所指的是针对硬盘,并非软盘或光盘。

MBR是英文Master Boot Record的缩写,中文意为主引导记录。它位于硬盘的0柱面,0磁头的第1个扇区,它的内容大小占512字节。

而在这512字节的区域里,又可以分为三个部分。

第一部分为pre-boot区(启动区,主引导程序),占446字节,这个硬盘能自举的最关键的引导程序所放置的地方;

这段pre-boot代码(主引导代码)实现下列功能:
1.扫描分区表查找活动分区;
2.寻找活动分区的起始扇区;
3.将活动分区的引导扇区读到内存;
4.执行引导扇区的运行代码。

如果主引导代码未完成这些功能,系统显示下列错误信息之一:
* Invalid partition table
* Error loading operating system
* Missing operating system

第二部分是Disk Partition Table区(DPT,分区表),占64个字节,包括分区的引导标志、分区类型、起始扇区、结束扇区。每个分区信息用16个字节表示,四个分区就用掉了16x4=64个字节(这就是为什么一块硬盘上最多只能有四个主分区的由来)。

其中:
第0个字节是自举标志,其值为80H时,表示该分区是当前活动分区,可引导。其值为00H时,表示该分区不可引导。
第1-3个字节是起始扇区。其中第1个字节是起始磁头,第2-3个字节为起始柱面。
第4个字节是分区类型。FAT32为01,NTFS为07。具体可以在Google中搜索“硬盘分区类型表”得到。
第5-7个字节是终止扇区。其中第5个字节是终止磁头,第6-7个字节为终止柱面。
第8-11个字节表示该分区之前的绝对扇区数。
第12-15字节表示该分区实际占用的扇区数。

第三部分:在DPT(硬盘分区表)后,紧接着两个字节AA和55被称为幻数(Magic Number),BOIS读取MBR的时候总是检查最后是不是有这两个幻数,如果没有就被认为是一个没有被分区的硬盘。尽管分区表中明明有数据,也会报错,告诉你系统不存在。所以,对硬盘加密的简单办法就是从MBR中擦掉这两个字节。那么这个硬盘挂到任何电脑上都会显示为一个没有分区的空白硬盘。但是只要把这两个字节重新写上,数据又能读出。

具体原理请参见下面的图(这是我的笔记本硬盘上的MBR数据)。如果看不清,请点击放大图片。

请给这篇日志评个分吧~!

本文评分: 4.6/10 (24 votes)    提示:您还未对本文评分,您可以进行评分并发表您的意见!

加入收藏!

Tags: , , , , , ,
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [注册]