(缘起) 关注这个话题,是因为同事小W出的一套试题的答案我有疑问,其中之一存疑的题目涉及到Fdisk命令,主分区(Primary Partition),扩展分区(Extended Partition),逻辑磁盘(Logical Drive)等。
在网上浏览了一大堆技术文档后,我发觉这个主题不太容易讲清楚,把我理解到的程度尽可能记下来吧,以后也可以更新。全方位描述这个问题有点像写历史小说,时间跨度大,涉及到的人物多,人物和人物之间的关系复杂,并且关系不断发展变化。
比方说,不同文件系统能管理的分区大小,不同操作系统支持的文件系统,这些因素牵连在一起就复杂了。单就微软公司来说,操作系统经历过DOS,Win3.1,Win95,WinNT,Win98,WinMe,Win2000,WinXP,现在是Windows Vista。WinNT4和WinNT3.1支持的文件系统还不太一样。如果把Solaris,Linux等操作系统也考虑进来,要掌握的东西就更多了。要装多引导系统的话,一般的原则是先装非微软的OS,然后按先后顺序装不同版本的Windows,看到有人声称自己的电脑上装了6套系统。
Fdisk命令从Win2000起就不见了,根据微软的文档,Win98/Win98Se/WinMe的Fdisk命令创建的分区不大于512GB(KB280737:Fdisk.exe Unable to Partition Drives Larger Than 512 Gigabytes)。记住哦,任何应用程序都是有自己的局限性的。Win2K和WinXP往往用安装盘光驱启动来修改分区。
NTFS文件系统在不同版本的Windows里也是有区别的,这体现了与时俱进的精神。文件系统的发展,跟硬盘的发展同步,想我97年毕业的时候,公司配的硬盘只有几百MB,过几年自己攒机了,也只有几个GB,现在可是动不动就几百GB。这硬件设施上去了,软件设施自然也要跟进了。我用图书馆来比喻我们的硬盘,图书馆的管理体系就好比文件系统。以前的管理体系比较简单,现在的管理体系全面而复杂。
列了一张操作系统和文件系统关系的表:
MS-DOS Win95 Win95OSR2 Win98 WinNT Win2000 WinXP
FAT16 O O O O O O O
FAT32 X X O O X O O
NTFS X X X X O O O
WinXP里FAT16格式的磁盘最大容量是4GB,这个是根据簇(Cluster)的最大数量(64KB)和簇的最大尺寸(64KB)计算出来的。Win2K和WinNT也是如此。FAT16虽然可以达到4GB,但WinMe/98/95/DOS却只能访问到2GB,所以在这些操作系统里,FAT16的磁盘不能超过2GB。
参考文档有:KB154997:Description of the FAT32 File System
KB310561:Maximum partition size using the FAT16 file system in Windows XP