学院论坛招聘版主了,有兴趣的同学请火速报名哦。

查看完整版本: <转>硬盘的物理结构介绍

100℃结冰 2007-7-3 13:19

<转>硬盘的物理结构介绍

[indent][indent][indent]硬盘的物理结构



   (1)Linux Swap 分区 5 字节 该分区终止头(HEAD) 6 字 该分区终止扇区和终止柱面 8 双字 该分区起始绝对分区 C 双字 该分区扇区数 下面,我们以一个实例让大家更直观地来了解主引导记录: 例:80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00 在这里我们可以看到,最前面的80是一个分区的激活标志,表示系统可引导;01 01 00表示分区开始的磁头号为01,开始的扇区号为01,开始的柱面号为00;0B表示分区的系统类型是FAT32,其他比较常用的有04(FAT16)、07(NTFS);FE BF FC表示分区结束的磁头号为254,分区结束的扇区号为63、分区结束的柱面号为764;3F 00 00 00表示首扇区的相对扇区号为63;7E 86 BB 00表示总扇区数为12289622。


   (2)DBR区 DBR(Dos Boot Record)是操作系统引导记录区的意思。它通常位于硬盘的0磁道1柱面1扇区,是操作系统可以直接访问的第一个扇区,它包括一个引导程序和一个被称为BPB(Bios Parameter Block)的本分区参数记录表。引导程序的主要任务是当MBR将系统控制权交给它时,判断本分区跟目录前两个文件是不是操作系统的引导文件(以DOS为例,即是Io.sys和Msdos.sys)。如果确定存在,就把其读入内存,并把控制权 交给该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数,分配单元的大小等重要参数。


   (3)FAT区 在DBR之后的是我们比较熟悉的FAT(File Allocation Table文件分配表)区。在解释文件分配表的概念之前,我们先来谈谈簇(cluster)的概念。文件占用磁盘空间时,基本单位不是字节而是簇。簇的大小与磁盘的规格有关,一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64…… 通过上文我们已经知道,同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。硬盘上的文件常常要进行创建、删除、增长、缩短等操作。这样操作做的越多,盘上的文件就可能被分得越零碎(每段至少是1簇)。但是,由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。不过,这种以簇为单位的存储法也是有其缺陷的。这主要表现在对空间的利用上。每个文件的最后一簇都有可能有未被完全利用的空间(称为尾簇空间)。一般来说,当文件个数比较多时,平均每个文件要浪费半个簇的空间。
    好了,我们言归正传,为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号,对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。 由于FAT对于文件管理的重要性,所以FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为未占用,但如果磁盘有局部损坏,那么格式化程序会检测出损坏的簇,在相应的项中标为坏簇,以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见和为读者所熟悉的是FAT16和FAT32,其中FAT16是指文件分配表使用16位数字,由于16位分配表最多能管理65536(即2的16次方)个簇,也就是所规定的一个硬盘分区。 由于每个簇的存储空间最大只有32KB,所以在使用FAT16管理硬盘时,每个分区的最大存储容量只有(65536×32 KB)即2048MB,也就是我们常说的2G。现在的硬盘容量是越来越大,由于FAT16对硬盘分区的容量限制,所以当硬盘容量超过2G之后,用户只能将硬盘划分成多个2G的分区后才能正常使用,为此微软公司从Windows 95 OSR2版本开始使用FAT32标准,即使用32位的文件分配表来管理硬盘文件,这样系统就能为文件分配多达4294967296(即2的32次方)个簇,所以在簇同样为32KB时每个分区容量最大可达65G以上。此外使用FAT32管理硬盘时,每个逻辑盘中的簇长度也比使用FAT16标准管理的同等容量逻辑盘小很多。由于文件存储在硬盘上占用的磁盘空间以簇为最小单位,所以某一文件即使只有几十个字节也必须占用整个簇,因此逻辑盘的簇单位容量越小越能合理利用存储空间。所以FAT32更适于大硬盘。


   (4)DIR区 DIR(Directory)是根目录区,紧接着第二FAT表(即备份的FAT表)之后,记录着根目录下每个文件(目录)的起始单元,文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在硬盘中的具体位置和大小了。


   (5)数据(DATA)区 数据区是真正意义上的数据存储的地方,位于DIR区之后,占据硬盘上的大部分数据空间。 六、硬盘的工作模式 现在主板支持三种硬盘工作模式:NORMAL、LBA和LARGE模式。 NORMAL普通模式是最早的IDE方式。在此方式下对硬盘访问时,BIOS和IDE控制器对参数不作任何转换。该模式支持的最大柱面数为1024,最大磁头数为16,最大扇区数为63,每扇区字节数为512。因此支持最大硬盘容量为:512×63×16×1024=528MB。在此模式下即使硬盘的实际物理容量更大,但可访问的硬盘空间也只能是528MB。 LBA(Logical Block Addressing)逻辑块寻址模式。这种模式所管理的硬盘空间突破了528KB的瓶颈,可达8.4GB。在LBA模式下,设置的柱面、磁头、扇区等参数并不是实际硬盘的物理参数。在访问硬盘时,由IDE控制器把由柱面、磁头、扇区等参数确定的逻辑地址转换为实际硬盘的物理地址。在LBA模式下,可设置的最大磁头数为255,其余参数与普通模式相同。由此可计算出可访问的硬盘容量为:512×63×255×1024=8.4GB。   LARGE大硬盘模式。当硬盘的柱面超过1024而又不为LBA支持时可采用此种模式。LARGE模式采取的方法是把柱面数除以2,把磁头数乘以2,其结果总容量不变。例如,在NORMAL模式下柱面数为1220,磁头数为16,进入LARGE模式则柱面数为610,磁头数为32。这样在DOS看来柱面数小于1024,即可正常工作。目前基本上只有LBA有实际意义了。
[/indent][/indent][/indent]
页: [1]
查看完整版本: <转>硬盘的物理结构介绍
网站工作室在线交流QQ群:50620129