菜鸟进阶十二:大容量U盘文件系统分析
文件系统是指文件命名、存储和组织的总体结构。作为最常见的操作系统Windows来说,它支持的文件格式就是我们所要研究的。FAT(16)、FAT32和NTFS都是Windows的文件系统。其实文件系格式也就是我们经常所说的“磁盘格式”或“分区格式”,总体都是一个概念,只不过“分区”只针对硬盘来说的,而文件系统是针对所有磁盘及存储介质的。
FAT,FAT32,NTFS,这些我们耳熟能详的分区格式,他们分别有什么用途呢?
● FAT16文件系统
最初的U盘,也就是以MB为存储单位的U盘,所使用的文件系统格式统一为FAT16,所以我们首先就来讲讲FAT16。
在说明FAT16文件系统之前,我们必须清楚FAT是什么?FAT(File Allocation Table)是“文件分配表”的意思。顾名思义,就是用来记录文件所在位置的表格,它对于磁盘的使用是非常重要的,假若丢失文件分配表,那么硬盘上的数据就会因无法定位而不能使用了。
FAT16使用了2个字节(也就是16位)的空间来表示每个扇区(Sector)配置文件的情形,故称之为FAT16。
FAT16由于受到先天的限制,因此每超过一定容量的分区之后,它所使用的簇(Cluster)大小就必须扩增,以适应更大的磁盘空间。所谓簇就是磁盘空间的配置单位,就象图书馆内一格一格的书架一样。每个要存到磁盘的文件都必须配置足够数量的簇,才能存放到磁盘中。FAT16各分区与簇大小的关系如下表:
分区大小 FAT16簇大小16MB-127MB 2KB
128MB-255MB 4KB
256MB-511MB 8KB
512MB-1023MB 16KB
1024MB-2047MB 32KB
如果你在一个1GB容量的U盘分区中存放50KB的文件,由于该分区簇的大小为16KB,因此它要用到4个簇才行。而如果是一个1KB的文件,它也必须使用一个簇来存放。那么每个簇中剩下的空间可否拿来使用呢?答案是不行的,所以在使用磁盘时,无形中都会或多或少损失一些磁盘空间。
2GB的分区使用FAT16系统格式化
● FAT16的缺点
- 磁盘分区最大只能到2GB。因此从Win98系统开始,FAT16已经基本被FAT32所取代,但当时U盘刚刚起步,容量多为64MB、128MB,其默认分区只能是FAT16;
- 使用簇的大小不恰当。试想,如果一个只有1KB大小的文件放置在一个1000MB的磁盘分区中,它所占的空间并不是1KB,而是16KB,足足浪费了15KB!一般文本文档及HTML碎文件的体积多是个位数,如果用来存储这些文件的话,空间浪费就极为严重了。
能解决这两个问题的,就是FAT32文件系统了。