你的大硬盘浪费了多少空间

Author: 王素英 Date: 1998年 第07期 33版

  如果说在一个装满应用软件的2GB~3GB硬盘上,也许浪费了四五百兆字节的空间,你肯定难以置信,但这种现象的确发生在大多数使用FAT 16文件分配系统的大容量硬盘上。
#1  一、造成硬盘空间浪费的原因
  FAT(File Allocation Table,文件分配表)文件系统最早用在采用MS-DOS操作系统的PC机上,现在仍在广泛使用。Windows 95为了保持同DOS的兼容性,也继续使用FAT。虽然FAT可满足大部分应用程序和用户的需要,但它却存在着某些先天不足之处,这主要是由于传统的FAT采用16位数字来分配磁盘空间,即采用的是16位文件分配表(称为FAT 16)。该文件分配表允许硬盘的一个分区中最多只能有65536(216)个簇,每簇最多有64个扇区,每个扇区512字节,所以一个分区的最大容量应该是65536×64×512/1000000≈2.147GB。虽然Windows 95利用LBA模式可以为E-IDE硬盘提供保护模式的支持能力,使可访问的硬盘容量高达137GB,但由于Windows 95仍使用FAT 16文件系统来管理硬盘,所以硬盘分区的逻辑容量依然被限制在2.1GB以下。在所有类型的磁盘中,扇区都是磁盘上的最小存储空间单位,而且一个扇区的容量均为512字节,而簇又由扇区来组成。所以为了保证簇的总数不超过65536个和分区大小不超过2.1GB的限制,一个簇中的扇区数量必然随着硬盘分区的大小而各不相同。一般对于容量小于127MB的硬盘分区,簇的大小通常置为2048字节,当硬盘分区容量大于127MB时,簇的大小也要随着容量的增加而增加,如下表所示。但FAT 16在为文件分配磁盘空间时,是按照簇而不是按照扇区来分配的,由于在不同的硬盘分区上,簇的大小不同,这就不可避免地造成了硬盘空间的巨大浪费。

#2表一  FAT16中磁盘容量、簇和扇区的关系