如何认识硬盘容量的测试值

Author: 何宗琦 Date: 1997-01-01

  用户在购买硬盘时最关心的一个参数就是硬盘的容量,但是同一种硬盘在各种情况下的测试值有时并不相同,而且测试值往往小于标称值。例如,一个标称值为540MB的硬盘测试值仅为516MB;而标称值为245MB的硬盘其测试值只有234MB。对于这个问题应该如何认识呢?有两种看法:
  第一种看法见于〈个人电脑〉94年10月号“PC信箱”中Alfred Poor先生对J.L.Cappeis先生提出问题的解答中。Alfred Poor先生认为这是由于系统开销造成了硬盘实际使用容量的减少:“磁盘在使用前要用DOS系统来作高级格式化,高级格式化后会有一部分磁盘空间被占用。这部分空间用来存储磁盘结构和数据存储位置等信息(如DOS文件分配表,即FAT)。而且,这部分空间不能用来存储其它数据。计算机只能报告磁盘剩余的那部分空间的容量,通常格式化前和格式化后的磁盘容量相差5%,一般磁盘上标的容量是格式化之前的磁盘容量”。按照Alfred Poor先生的说法,516MB是540MB的95.6%,234MB是245MB的95.5%,好像确是正确的。
  第二种看法见于〈电脑报〉96年45期方新沪先生的文章“是516MB还是540MB?”。方先生认为误差是由于计算单位不同造成的。CMOS与FDISK按每兆1048576字节计算,按照方先生的算法:
  516MB*1024*1024/1000/1000=541MB
  好像也正确。虽然两种方法的计算结果都不错,但是从逻辑上来讲只能有一种说法是正确的。Alfred poor先生实际上认为标称值指的是物理盘空间的容量,测试值是分区后的逻辑盘空间的容量,两者相差5%。按照这种算法,一个CMOS硬盘参数为2112MB(64heads*1023cyl*63sect*512byet/1000/1000=2112MB)的物理盘(使用LBA模式)经过格式化和划分逻辑盘后,最大容量只能是2112MB*0.95=2006.4MB,也就是说系统开销竟然达到了105.6MB,这可能吗?实际上,用SYSCHK测试,其物理尺寸为2014.7MB(64heads*1023cy1*63sect*512byte/1024/1024=2014.03MB),其逻辑尺寸为2011.7MB,系统开销仅为2.27MB。另一方面,Alfred Poor先生认为5%的误差是由于格式化后系统开销造成的,那么一个仅仅作过低级格式化、而没有作分区和高级格式化的硬盘在BIOS的测试中显示值应该与标称值相同,但是实际上并不一定如此,因此笔者认为Alfred Poor的看法是错误的。
  方先生认为CMOS给出的硬盘容量是按每1048576字节计算的。原则上是对的,但也不能一概而论,不同型号或版本的BIOS设置程序的计算方法并不相同。有的BIOS版本按每兆1048576字节计算,这时的显示值小于标称值;也有的版本按照每兆1000000字节计算,与硬盘生产厂家的计算方法相同,这时的显示值等于标称值。例如上面的2112MB硬盘,在AWARD BIOS中的测试值和标称值相同。
  那么,Alfred Poor先生“5%误差”的计算结果为什么又总是正确的呢?这只是一种巧合,因为1000*1000/1024/1024=95.4,所以其计算结果总是正确的 。
  究竟应该如何认识硬盘容量的测试值呢?笔者认为应该首先弄明白测试程序给出的是硬盘的什么容量,是物理盘的容量,还是逻辑盘的容量,然后再辨别是按每兆1000000字节计算还是按每兆1048576字节计算容量。这样才能正确地理解硬盘的测试值,此外,各种测试程序的测试方法和算法不同,结果也有一定区别,下面以2112MB硬盘为例给出几种测试程序的测试值供比较。(见附表)
  最后,还要说明的是,如果所选择的硬盘工作模式不同(NORMAL/LBA/LARGE)测试出来的结果也是有区别的。当然目前的硬盘都比较大,一般采用LBA方式较多。