Focuse

What A Waste

文件系统原理(二)

  三,磁盘引导原理:

    3.1 MBR(master boot record)扇区:

      计算机在按下power键以后,开始执行主板bios程序。进行完一系列的检测和配置后。开始按bios中设定的系统引导顺序引导系统。假定现在是硬盘。Bios执行完自己的程序后如何把执行权交给硬盘呢。交给硬盘后又执行储存在哪里的程序呢? 其实成为mbr的一般代码起着举足轻重的作用。MBR(master boot record),即主引导记录,有时也称主因到扇区。位于整个硬盘的“0”柱面“0”磁头“1”扇区(可以看作是硬盘的第一个扇区),bios在执行自己固有的程序以后就会jump到mbr中的一条指令。将系统的控制权交由mbr来执行。在总共512byte的主导记录中,MBR的引导程序占了其中的446个字节(偏移为0H~偏移1BDH),最后的64个字节(1BEH~1FDH)为DPT(Disk PartitionTable,硬盘分区表),最后的两个字节“55 AA”(1FEH~1FFH)是分区有效结束标志;

      MBR不随操作系统的不同而不同,意即不同的操作系统可能会存在相同的MBR,即使不同,MBR也会加带操作系统的性质。具有公共引导的特性;

                                                                                      图2


      操作系统为了便于用户对磁盘的管理。加入了磁盘分区的概念。即将一块磁盘逻辑划分为几块。磁盘分区数目的多少只受限于C~Z的英文字母的数目。在上图2DPT共64个字节中如何表示多个分区的属性呢?microsoft通过链接的方法解决了这个问题。在DPT共64个字节中,以16个字节为分区表项单位描述一个分区的属性。也就是说第一个分区表项描述一个分区的属性,一般为基本分区。第二个分区表项描述除基本分区外的其余空间,一般而言就是我们说的扩展区;

                  

                                                                                          图3  在winhex中看参数的意思


图2分区表第一字段说明:


PS:上表种的超过一字节的数据都以实际数据显示,显示按高位的低位的显示。存储时是按低位到高位存储的。两者表现不同。仔细看;


说明:每个分区表占用16个字节,假定偏移地址从0开始:

  1,0H偏移为活动分区是否标志:只能选00H和80H。80H为活动,00H为非活动。其余对microsoft而言为非法值。

  2,重新说明下(非常重要):大于1个字节的数被以低字节在前的存储格式(little endian format)或者称反字节顺序保存下来。低字节在前的格式是一种保存数的方法,这样最低的字节先出现在16进制数符号中,例如:相对扇区数字段的值为0X3F000000的低字节在前表示为0X0000003F。这个低字节在前的格式数的10进制数为63;(这个什么作用???)

  3,系统分区时,各分区都不允许跨柱面,即均以柱面为单位,这就是通常所说的分区粒度。有时候我们分区是输入分区大小为7000M,分出来却只有6997M,就是这个原因。偏移2H和偏移6H的扇区和柱面参数中,扇区占6位(bit),柱面占10位(bit),以偏移6H为例,其低6位用作扇区数的二进制表示。其高两位做柱面数10位中的高两位,偏移7H组成的8位做柱面数10位中的低8位。由此可知,实际上用这种方式表示的分区容量是有限的,柱面和磁头从0开始编号,扇区从1开始编号,所以最多只能表示1024个柱面×63个扇区×256个磁头×512byte=8455716864byte。即通常的8.4GB(实际上应该是7.8GB左右)限制。实际上磁头数通常只用到255个(由汇编语言的寻址寄存器决定),即使把这3个字节按线性寻址,依然力不从心。在后来的操作系统中,超过8.4GB的分区其实已经不通过C/H/S的方式寻址了。而是通过偏移CH~偏移FH共4个字节32位线性扇区地址来表示分区所占用的扇区总数。可知通过4个字节可以表示2^32个扇区,即2TB=2048GB,目前对于大多数计算机而言,这已经是个天文数字了。在未超过8.4GB的分区上,C/H/S的表示方法和线性扇区的表示方法所表示的分区大小是一致的。也就是说,两种表示方法是协调的。即使不协调,也以线性寻址为准。(可能在某些系统中会提示出错)。超过8.4GB的分区结束C/H/S一般填充为FEH FFHFFH。即C/H/S所能表示的最大值。有时候也会用柱面对1024的模来填充。不过这几个字节是什么其实都无关紧要了。(这段完全没看明白,没看明白!!!)

    虽然现在的系统均采用线性寻址的方式来处理分区的大小。但不可跨柱面的原则依然没变。本分区的扇区总数加上与前一分区之间的保留扇区数目依然必须是柱面容量的整数倍。(保留扇区中的第一个扇区就是存放分区表的MBR或虚拟MBR的扇区,分区的扇区总数在线性表示方式上是不计入保留扇区的。如果是第一个分区,保留扇区是本分区前的所有扇区。


附:分区表类型标志如图4
阅读更多
个人分类: 硬盘原理
想对作者说点什么? 我来说一句

FAT文件系统原理详细解释

2009年04月17日 68KB 下载

文件系统介绍

2012年01月05日 998KB 下载

FAT文件系统 FAT文件系统原理

2008年12月02日 787KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭