MBR 硬盘 内存.doc
《MBR 硬盘 内存.doc》由会员分享,可在线阅读,更多相关《MBR 硬盘 内存.doc(43页珍藏版)》请在三一办公上搜索。
1、MBR、DPT、DBR、BPB 详解 硬盘主引导扇区 = 硬盘主引导记录(MBR)+ 硬盘分区表(DPT) 物理位置:0面 0道 1扇区(clindyer 0, side 0, sector 1) 大小: 512字节 0 MBR 446字节(0000-01BD) DPT 64字节(01BE-01FD) 结束标志 2字节(55 AA) 功能:MBR通过检查DPT分区信息来引导系统跳转至DBR; 读取: 使用NORTON DISKEDIT,在OBJECT菜单中选择DRIVE PHYSICAL DISK HARD DISK,然后在OBJECT菜单中选择DISK PARTITION TABLE即可读取
2、,并使用TOOLS菜单中的WRITE OBJECT TO选项存入指定文件备份; 写入: 使用NORTON DISKEDIT,在OBJECT菜单中选择DRIVE FLOOPY DISK,选择备份的DPT文件,然后使用TOOLS菜单中的WRITE OBJECT TO PHYSICAL SECTOR选项写入001 (clindyer 0, side 0, sector 1); 详解: 000H-08AH MBR启动程序(寻找开机分区) 08BH-0D9H MBR启动字符串 0DAH-1BCH 保留(0) 1BEH-1FDH 硬盘分区表 1FEH-1FFH 结束标志(55AA) 活动分区主引导扇区(D
3、BR) 物理位置:1面 0道 1扇区(clindyer 0, side 1, sector 1) 大小: FAT16 1扇区 512字节 FAT32 3扇区 1536字节 功能:包含机器CMOS等信息(0000-0059),核对该信息并引导指定的系统文件,如 NTLDR等; 读取: 使用NORTON DISKEDIT,在OBJECT菜单中选择DRIVE LOGICAL DISK DISK C,然后,在OBJECT菜单中选择BOOT RECORD即可读取,并使用TOOLS菜单中的WRITE OBJECT TO选项存入指定文件备份; 写入: 使用NORTON DISKEDIT,在OBJECT菜单中
4、选择DRIVE FLOOPY DISK,选择备份的DBR文件,然后使用TOOLS菜单中的WRITE OBJECT TO PHYSICAL SECTOR选项写入 011 (clindyer 0, side 1, sector 1); 详解: 000H-002H 3 BYTE的跳转指令(去启动程序, 跳到03EH) 003H-03DH BIOS参数区 03EH-19DH DOS启动程序 19EH-1E5H 开机字符串 1E6H-1FDH 文件名(IO.SYS, MSDOS.SYS) 1FEH-1FFH 结束标记(55AA)硬盘的数据结构 初买来的硬盘是没有办法使用的,还要将它分区,格式化(我们这里
5、所说的格式化是高级格式化,格式化分为高级格式化和低级格式化,低级格式的目的是在将磁盘格式化分成磁道、扇区、柱面),然后再安装上操作系统才可以使用。就拿windows9X/Me 来说,我们一般要将硬盘格式化成MBR(主引导扇区)、DBR(分区引导记录)、FAT(分区表)、DIR(目录区)、和DATA(数据区)等五部分(其中只有主引导扇区是唯一的,其它的随分区数增加而增加)。 当我们删除一个文件(无论是从回收站里删除还是按下Shift+Delete),其实文件并未真正的从磁盘里删除,只是在文件上做一个标记而已(在目录区里将第一个字符改成“E5”,在数据区里,把文件首字节改为“0E”,标记这个文件占
6、的空间已释放, 就算格式化也是只是重写文件分配表(FAT)而已,只有当写入一个文件到硬盘上,并且把这个空间占用覆盖时,这个文件才真正的删除了,如果没有补占用,还是有很大希望恢复的。 首先有必要说一下一些专业名词: 磁头:一张硬盘有两个盘面,每一个盘面都有一个读写磁头。将盘面进行编号,起始号为0,磁头号的编号和盘面的编号相同。 磁道:当磁头停在一个位置,盘片旋转一周,磁头就在盘的表面画出一个圆形轨迹,这个圆形轨迹就称为磁道,随着磁头的移动,磁盘就被画出许多个封闭的同心圆磁道。磁道从盘片的外缘开始编号,起始号为0。 柱面:硬盘一般由很多个盘面构成,每个盘面都补划分成相等的磁道,每个盘面的相同磁道就
7、形成一个圆柱,这就是硬盘的柱面。硬盘有多少个磁道就有多少个柱面,柱面编号和磁道编号相同。 扇区:磁盘上每个磁道被划分成很多个弧段,弧段之间有间隔,这些弧段称为扇区。扇区也进行编号,起始号为1,每个磁道被除分成63个扇区,每个扇区可存储的数据是512个字节。实际现在的大容量硬盘,为了提高磁介质的利用率,使用了等密度的存储方式,也就是说外圈磁道扇区数比内圈的多,为了与老的硬盘制式相兼容,由硬盘控制器的驱动程序将参数进行转换。 簇:扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、
8、16、32或64个扇区(到底多少个扇区,根据具体文件分配格式而定)。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。 为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。 注意:磁头(Head),柱面(Cylinder)的编号都是从0开始的,而扇区(Sector)编号是从1开始的。 CHS:在对扇区进行编号计算的过程中
9、,是沿着柱面(Cylinder)-磁头(Head)-扇区(Sector)进行的,这就是物理扇区的CHS(柱面数、磁头数、扇区数)寻址方式。有了CHS参数,就可以很容易的计算出硬盘的容量,只要将这三个想乘得到总的扇区数,再乘上512就是硬盘容量。 MBR(主引导记录) MBR(Main Boot Recore)既主引导记录 扇区,它位于磁盘的0柱面0磁头1扇区 。它总共512字节,前446字节为一段引导程序,主要任务是检查分区表是否正确,以及确定哪一个分区是操作系统可引导,并且在程序结束时把该分区的启动程序(例如MS-DOS的IO.sys)调入内存,交予控制权。后面的64字节为分区表(Disk
10、Partition Table,DPT)分区表大多以80H或00H为开始标志,以“55AA”为结束标志,共四个,每个16字节,结束标志位与本扇区的最末端。 注意:主引导记录(MBR)不依赖于任何操作系统,也就是与操作系统无关。 以下是MBR的具体图解: DBR(分区引导记录) DBR(分区引导记录)硬盘引导记录只有一个,而分区引导(DOS Boot Record)记录不只一个,每一个逻辑驱动器都有一个分区引导记录(存储在逻辑驱动器的 开始处的第一个扇区)分区引导记录主要由以下四部分组成: 1、 BIOS参数记录块BPB(BIOS Parameter Block)表,它的主要作用是:记录了硬盘容
11、量的大小、FAT(文件分配表)的位置和大小、FDT(文件目录表)的位置和大小。 2、 磁盘标志记录表。 3、 分区引导记录代码区(引导程序):引导程序的作用是判断本分区根目录下的前两个文件是否为操作系统的引导文件(例如DOS的Io.sys Msdos.sys),如果是就把它读入内存并交予控制权 4、 结束标志“55AA”:对扇区进行搜索,用于寻找分区引导记录所在扇区地址的依据。 下面例举目前常用的FAT32分区格式的BPB表,共53字节:FAT(文件分配表) 文件分配表(File Allocation Table),记录的是磁盘中每个簇的的使用情况,其大小由本分区的大小及文件分配单元的大小决定
12、,由于FAT对于文件管理非常重要,所以一开始设计者们就为它做了一个备份,所以有两个FAT,一直廷续到现在。 当操作系统或应用程序,将数据写入磁盘时,必须在磁盘上找到相应的可以利用的扇区;反过来,要将数据从磁盘中读出时,也要在磁盘上找到已经存储了相应数据的扇区的地址,文件分配表FAT就是记录扇区地址的。 因为磁盘的扇区非常多,如果将每个扇区都记录在FAT中必然会导致FAT体积的庞大,查找时的效率会低下,为了解决这个问题,采用的将扇区分组的方法,这个分组的过程称为扇区的分簇。 当使用了一个新格式化的逻辑驱动器时,文件数据存放的簇号是连续的,使用一段时间后,由于经常对文件进行删除、复制和修改等重要操
13、作,每个文件的簇号就不一定连续了,为了确保取文件时,能够检索到所以连续或不连续的扇区地址,文件分配表采用了“簇链”的记录方式。 、当需要从磁盘上读取一个文件时,首先从文件目录表(FDT)中找到该文件的目录登记项。继而从目录登记项的有关字段,查到分配给该文件的第一个簇号(在FAT里查),根据第一个簇号,可以计算出两组数据。 1、一组数据记录了文件在数据区(DATA)里的第一簇扇区的首地址,第一簇扇区的首地址是开始数据是连续存放的,连续存放多少个扇区由分区格式,和分区大小决定。下表列它们的对应关系: FAT16 FAT32 分区大小/MB 簇大小/KB 扇区数 分区大小/MB 簇大小/KB 扇区数
14、 256-511 8 16 0.512-8 4 8 512-1023 16 32 8-16 8 16 1024-2047 32 64 16-32 16 32 2、另外一组数据指出了FAT表内簇登记项的地址,如果其值是结束标志“ffffH(FAT16格式)或ffffff0fH(FAT32格式),说明文件至此结束。如果不是结束标志,则该登记项的值为第二个簇号,据此又可以计算出两组数据,继而确定文件在第数据区里第二簇扇区的首地址和FAT内第二个簇登记项的地址. 继续重复上面的过程,就可以得到DATA区里全部数据,以及文件在FAT表里所有簇登记项的地址。 、当需要在硬盘上建立文件时,首先顺序检索FAT
15、表,找到第一个可用簇,可用簇登记项的地址为0000H(FAT16格式)或00000000H(FAT32格式),将该簇作为起始簇,写入文件目录表(FDT)的相关登记项的起始簇字段中,然后继续检索后面的可用簇,找到后将其写入第一个可用簇项内。 按照上过程进行下去,将满足文件长度所需的簇全部找到。使每一个簇项的值指向下一个所需簇项,在最后的簇登记项内写入结束标志ffffH或ffffff0fH,于是一条能够检索整个文件的“簇链”就形成了。 当需要对一个文件进行扩展时,先检索FAT表,找到一个可用簇。将簇项的内容置为结束标志,并将文件原来的最后簇项改为指向此可用簇,依次类推,直到满足文件扩展要求。 、当
16、删除文件时,除了将目录登记项的第一个字节改为“e5H”,还要在FAT表的“簇链”中对应的簇项全部清零,这些被清零的簇项又可以供给其它的文件使用,不过在删除文件结束以后目录登记项的其它字段仍然保存完好,只是文件名的第一个字节变成了“e5H,并且文件存储在扇区中的所有数据依然存在。这时,只要FAT表中被清零的簇项没有被新的文件使用,就可以运行相关的软件来恢复被删除的文件。 硬盘的系统信息被破坏时,一般情况下FAT被破坏的可能性较小,特别是第二个FAT表一般能够保存完好,因为第二个FAT表很少受到应用程序的访问。 每个FAT表的前两个字节都是:F8FF 文件目录表(FDT) 操作系统为了管理磁盘上的
17、目录和文件,在特定的扇区上建立了一个文件目录表。 FAT16格式的FDT表占用32个扇区,扇区地址紧跟在第二个FAT后,FAT32分区格式没有固定的FDT表,在第二个FDT表之后就是数据区DATA 两种分区格式都使用一个长32B的“目录登记项”来说明目录或文件的有关特性,FAT16的目录登记项放在FDT里,FAT32的目录登记项放在数据区里,下表列出了目录登记项的有关内容: 位移 字节 内容说明 00H 8 文件名 08H 3 扩展名 0bH 2 属性 0cH 10 系统保留 16H 2 建立或最后修改的时间 18H 2 建立或最后修改的日期 1aH 2 起始簇号 1cH 4 文件长度 若文件
18、名不足8个字节则用空格补充。 数据区(DATA) 数据区里所有的扇区都划分为以簇为单位的逻辑结构,每一个簇在FAT里都有相应的簇登记项与之对应。硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR),该记录占用512个字节,它用于硬盘启动时将系统控制权转给用户指定的、在分区表中登记了某个操作系统分区。MBR的内容是在硬盘分区时由分区软件(如FDISK)写入该扇区的,MBR不属于任何一个操作系统,不随操作系统的不同而不同,即使不同,MBR也不会夹带操作系统的性质,具有公共引导的特性。但安装某些多重引导功能的软件或LINUX的LILO时有可能改写它;它先于所有的操作系统被调入内存并发挥
19、作用,然后才将控制权交给活动主分区内的操作系统(图一)。 图一.jpg (194.55 KB) 硬盘MBR图 2006-11-13 03:42 MBR由三部分构成: 1主引导程序代码,占446字节 2硬盘分区表DPT,占64字节 3主引导扇区结束标志AA55H 一、硬盘的主引导程序代码是从偏移0000H开始到偏移01BDH结束的446字节;主引导程序代码包括一小段执行代码。启动PC 机时,系统首先对硬件设备进行测试,成功后进入自举程序INT 19H;然后读系统磁盘0柱面、0磁头、1扇区的主引导扇区MBR的内容到内存指定单元0:7C00 首地址开始的区域,并执行MBR程序段。 主引导代码实现下列
20、功能: 1扫描分区表查找活动分区; 2寻找活动分区的起始扇区; 3将活动分区的引导扇区读到内存; 4执行引导扇区的运行代码。 如果主引导代码未完成这些功能,系统显示下列错误信息: Invalid partition table Error loading operating system Missing operating system二、硬盘分区表DPT是从偏移01BEH开始到偏移01FDH结束的64字节(图二);硬盘分区表分为四小部分,每一小部分表示一个分区的信息,占16字节。在这里我们可以看出,硬盘的总分区数为什么不能大于4。其中可激活分区数不得大于3,扩展分区数不得大于1,当前活动分区
21、数必须小于等于1。 图二.jpg (26.13 KB) 硬盘分区表DPT 2006-11-13 03:46 分区表的每一分区的第0个字节是自举标志,其值为80H时,表示该分区是当前活动分区,可引导,其值为00H时,表示该分区不可引导。 第4字节是分区类型(图三)。 图三.jpg (70.05 KB) 分区类型标志 2006-11-13 03:46 每一分区的第1至第3字节是该分区起始地址。其中第1字节为起始磁头号(面号);第2字节的低6位为起始扇区号,高2位则为起始柱面号的高2位;第3字节为起始柱面号的低8位。因此,分区的起始柱面号是用10位二进制数表示的,最大值为210 = 1024,因逻辑
22、柱面号从0开始计,故柱面号的显示最大值为1023。同理,用6位二进制数表示的扇区号不会超过26 - 1 = 63;用8位二进制数表示的磁头号不会超过28 - 1 = 255。每一分区的第5至第7字节表示分区的终止地址,各字节的释义与第1至第3字节相同。这里我们假设一种极端的情况:如果让第5至第7字节的所有二进制位都取1,就获得了柱面号、磁头号和扇区号所能表示的最大值,从而得到最大绝对扇区号为: 1024 256 63 = 16,515,072 这个扇区之前的所有物理扇区所包含的字节数为: 16,515,072 512Bytes 8.46GB。 由此可知硬盘的容量设计为什么会有8.4GB这一档,
23、分区表每一分区的第1至第3字节以及第5至第7字节的数据结构已经不能满足大于8.46GB的大容量硬盘的需要。考虑到向下兼容的需要,业界并未对从DOS时代就如此定义的硬盘分区表提出更改意见,否则改动所牵涉的面太广,会造成硬件和软件发展上的一个断层,几乎无法被业界和用户所接受。硬盘厂商解决这一问题的方法是定义了新的INT 13服务扩展标准。新的INT 13服务扩展标准不再使用操作系统的寄存器传递硬盘的寻址参数,而使用存储在操作系统内存里的地址包。地址包里保存的是64位LBA地址,如果硬盘支持LBA寻址,就把低28位直接传递给ATA接口,如果不支持,操作系统就先把LBA地址转换为CHS地址,再传递给A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MBR 硬盘 内存.doc 内存 doc
链接地址:https://www.31ppt.com/p-2883041.html