解读硬盘分区
专题快递
硬盘分区所涉及到的问题很多,如分区格式,分区容量等。
一、最常用的硬盘分区格式FAT16与FAT32
随着大容量硬盘的诞生,适用于不同操作系统的硬盘分区格式也就应运而生。其中FAT32的出现最引人注目。
1.FAT16格式
FAT16分区格式的应用十分广泛,从DOS时期一直到Win95直至现在,可以说无处不见。但它最大的缺点就是2GB分区的限制和对磁盘空间的浪费。
大家从前一定遇到过这样一个问题,当我们用DOS6.2分区命令FDISK对一块大容量硬盘进行分区时,发现最大只能分出2GB的分区来,这就是FAT16在作怪。
在DOS和Windows系统中,磁盘文件的分配是以簇为单位的,对于FAT16系统而言,可以分配的最大簇数为65536个(216=65536),每个簇最大占32KB(图1),它可管理的最大分区容量为2GB(2GB=65536×32÷1048576)。一块超过2GB的大容量硬盘,在这种情况下也就只能分成许多小于2GB的分区使用,你能忍受这种痛苦吗?

2.FAT32格式
由于FAT16所带来的诸多不便,从Win97开始,FAT32的出现也就成为了必然。FAT32采用了32位的文件分配表,轻易地突破了FAT16对磁盘分区容量2GB的限制,达到了创纪录的128TB(131072GB=232×32÷1048576),从而可以使我们对这些大容量硬盘定义成一个分区或几个大分区,极大地方便了广大用户对磁盘的综合管理。
3.FAT16与FAT32之比较
从管理硬盘的能力来看,当然FAT32占有很大的优势,但由于FAT32的文件分配表较FAT16大,磁盘文件的读写速度也就较FAT16慢。
由于FAT16在磁盘分区大于1GB时,文件簇的大小达32KB之多,较FAT32的4KB大得多(如图1所示)。因为一个簇只能存储一个文件,哪怕这个文件只有1个字节,所以FAT16对磁盘空间的浪费很大。从理论计算可知,FAT16较FAT32浪费磁盘空间多6~7倍以上。
二、操作系统对硬盘分区格式的要求
由于FAT32是在Win97以后才诞生的,所以DOS、Win95以及WinNT等操作系统都不支持它,只有Win97、98和2000才支持它。而NTFS是WinNT和Win2000的专用格式,所以除此以外的其他操作系统一概不支持。只有FAT16被目前常用的MSDOS、Windows操作系统广泛支持。
现在人们对多操作系统的要求越来越多,如在一硬盘中同时安装MSDOS、Win98和Win2000。因为不同操作系统对各自分区格式的要求不同,所以要实现Win98和Win2000的双启动,C分区一定不能为NTFS格式。如果它们不在一个分区中,要使在Win98下读写Win2000分区的数据,Win2000分区也不能是NTFS格式,它可以和Win98分区一样,可以是FAT16或FAT32格式。也就是说,如果当前操作系统要想读取其他分区的数据,这些分区的格式必须是当前操作系统所支持的,否则,就可能无法看到这些分区。
三、硬盘分区表
利用分区工具(如FDISK等),对硬盘分区后形成的分区数据,被储存在低级格式化硬盘时形成的主引导记录区(主引导扇区),即位于硬盘的0柱面0磁头1扇区,称之为硬盘分区表DPT(Disk Partition Table)。由于一块硬盘最多只能有4个分区,每个分区的数据在分区表中占16个字节,所以硬盘分区表总共有64个字节。它从主引导扇区的1BEH偏移地址处开始存放,如(图2)“B”光标所指数据“80”处,每个分区所包含的信息如图2所示。从图中可以看出,该硬盘有两个主分区(FAT16和NTFS),一个扩展分区。

1.分区引导标志
在分区表的1BEH、1CEH、1DEH、1EEH位移处存放的是4个分区引导标志,如果某个分区处于可自举(即可引导或激活)状态,该处则为80,否则为00。对于一块正常使用的硬盘,在这4个位移处,必须且只能有惟一的一个80,否则无法实现硬盘的系统引导。如图2中1BEH处为80,则该硬盘的第一个分区即为可引导分区。
2.分区类型
在位移1C2H、1D2H、1E2H、1F2H处存放的是4个分区的格式类型,如(图3)说明栏所示。

3.磁头号H
以第一个分区为例,在1BFH和1C3H处分别存放着该分区的开始和结束的磁头号,它们各占一个字节。如图3所示的开始磁头号为01H,结束磁头号为FEH(254d)。
4.扇区号S
在1C0H和1C4H的低6位分别存放着该分区的开始和结束的扇区号,如开始扇区号为01H,结束扇区号为3FH(63d)。
5.柱面号C
以第三个分区为例,将开始扇区号存放于位移1E0H的高2位(41H的高2位为二进制“01”)与在1E1H处的数据相加,即该扇区的开始柱面号为119H(281d)=100H+19H(高位0100000000o=100H);将结束扇区号存放于位移1E4H的高2位与在1E5H处的数据相加,即为该扇区的结束柱面号,如第三分区的结束柱面号为20CH(524d)=200H+0CH;
6.相对扇区号
即分区相对于硬盘开始的扇区号,它分别存放在分区表的1C6H、1D6H、1E6H和1F6H位移处。例如第一分区为0000003FH(63d),第三分区为0044E1D9H(4514265d)
7.总扇区数
分区所占的总扇区数分别存放在位移1CAH、1DAH、1EAH和1FAH处。如第一分区的总扇区数为000C8034H(819252d),即400MB。
8.一般常识
一般情况下,第一分区的起始位置为H=1、C=0、S=1,第二分区的起始位置是第一分区结束柱面的下一柱面的0磁头1扇区,每个分区的终止磁头号、扇区号一般为最大磁头及扇区编号,也就是说,同一柱面的所有扇区均被分在一个分区中;每个分区的大小=所占柱面数×磁头数×每柱面扇区数。
如第二分区大小=(280-51+1)×255×63×512÷1048576=1804MB。