轻松驾驭大硬盘
特别策划
如今硬盘的容量是越来越大,而价格也是越来越便宜,160GB的硬盘才600多元,再加上网络资源的丰富、数字视频的兴起,几十GB的老硬盘的确不够用。于是乎,不少电脑用户开始升级硬盘,不过,当大家高兴地买回160GB、200GB、250GB甚至更大容量的硬盘时,却遇到了新的问题,其中最普遍也是最重要的有两个:硬盘分区、磁盘整理。
一、大硬盘分区不可忽视
分区原理小议
既然硬盘是电脑内资料的仓库,那么我们为什么不直接把数据放进去,而要去分区呢?做分区工作的软件,它们到底在你的硬盘上干了些什么?要回答这些问题,我们得先来看看数据在硬盘上的一些逻辑结构。
数据在硬盘上,可供一般用户操作的区域有5块,分别是:主引导记录区、操作系统引导记录区(这部分由诸如FORMAT这类格式化命令生成,和分区软件无关)、文件分配表记录区、目录区和数据区。最后也是最大的一个部分——数据区,就是存储PC中数据的大仓库,但是这些数据如果随意摆放,那么对我们查找、读写数据都将会造成很大的麻烦。为了良好地管理数据,前面四个部分就是必需的了,分区其实就是创造这么个框架。
前四个区中我们重点来关注MBR(Main Boot Record,主引导记录)和FAT(File Allocation Table,文件分配表)两个部分。MBR部分占512个字节,其中前446个字节放置的是主引导记录,我们使用分区软件第一个用途就是要建立这个主引导记录,这446个字节的内涵相当丰富,包含了硬盘的参数以及引导信息,需要进阶的用户对这个部分一定会很有兴趣的,因为它是硬盘固件(Firmware)和操作系统之间的桥梁之一。
MBR中除了446个字节的主引导记录以外,接下来就是包含4个分区信息的DPT(Disk Partition Table)部分,每个占16个字节。这里提到的分区信息,不能直接理解为逻辑分区信息,而应该如图1所示,理解为主分区和扩展分区,而逻辑分区则是在扩展分区中进一步划分的。这里的16个字节分区信息,记录的内容主要是该分区的起始、终止的扇区、柱面信息以及分区类别。

当然,如果是普通的Windows应用分区方式,我们系统内只有主分区和逻辑分区,剩下两个表是空闲的,但如果要多系统共存,则需要做一些映射工作,这已经不在本文讨论范畴了。在这里,读者只需要关注MBR和FAT两个部分,前者和我们下面要介绍的分区有关,后者和我们第二部分中的碎片整理有关。
小提示
如何理解MBR与FAT的作用
我们可以把MBR看作图书馆门口的向导,它会根据你的身份和需求将你引导到自然科学分馆、或者人文科学分馆等较为具体的部分。除此以外FAT也是很有意思的部分,我们可以把它理解为图书馆里面的索引。我们硬盘里面的数据,就像一个图书馆里面的书,没有FAT部分就如没有索引的图书馆,我们无法管理那浩如烟海的书籍。
数据在硬盘数据区中最小的存储单位是簇,这个概念可以理解为图书馆内查书籍所在的最小单位只能精确到具体哪个书架一样。FAT区域的用途就是记录,某文件依次存储在哪些簇里面(需要和DIR区联系考虑)。其实很多数据恢复问题,都是从FAT表入手的,比如我们删除文件,很多时候只是在FAT表中删除该文件,在数据区中并没有删除。
常用分区软件介绍
从DOS时代的FDISK到目前形形色色的分区软件,作为一个稍有经验的电脑用户,随口举出多款分区软件并不是难事,那么这些分区软件到底能做什么,在使用过程中有些什么利弊,什么是我们最佳的选择呢?
①经典的FDISK是否落伍?
FDISK是Windows自带的分区工具,不过比较遗憾的是我们能找到最新的版本也只是Windows Me自带的。不过不管什么版本的FDISK,主要功能都是图2所示的这四项,其中重要的只是第一项和第二项,前者是建立分区,后者是激活分区。

FDISK在程序内部使用了一些16位的变量来计算硬盘的容量,所以对于一些大于64GB的硬盘而言,在分区过程中容量显示会有错误。比如一款80GB的硬盘,在FDISK中显示的容量是其真实容量与64GB之间的差,也就是16GB。需要指出的是,这种容量显示错误并不一定会影响分区的实际操作。对于这个容量显示问题,微软曾经给出专门补丁,大家可以到官方网站上去下载(注:Windows Me中的FDISK已解决这个问题)。
使用FDISK除了有大于64GB的硬盘容量显示不正常的问题外,剩下的就是对137GB以上硬盘分区的问题。关于这个问题微软官方的说明也很清楚——解决FDISK显示64GB以上硬盘容量不正确的补丁,不能解决137GB问题。换言之,如果主板上南桥芯片不支持48bit LBA模式,那么大于137GB的硬盘就不能用FDISK来分区。当然,如果南桥芯片支持48bit LBA模式,只要FDISK能正常运行,那么用它来分区也是可以的。
小提示
FDISK使用技巧
一般来说,FDISK的正确用法是,只创建主分区,然后用诸如Format这类软件格式化主分区。在主分区上安装操作系统,剩下未分区的磁盘空间,留到Windows中用其他软件来进行管理。
小结一下,对于容量小于等于120GB的硬盘而言,经典的FDISK并没老。通过前面的介绍可以知道,分区软件除了标识分区的界限以外,还会做很多工作,选择微软自己的工具会在最大程度上避免难以预料的麻烦。对于超过120GB的硬盘,FDISK在主板南桥芯片的支持下仍然可用。
②最常用的DM
DM也是很多电脑用户耳熟能详的分区软件,图3就是该软件使用界面。可惜的是,DM和FDISK一样属于“古董”级的分区软件,从2001年的9.56版本以后我们已经找不到更新的版本了。从使用上来说,DM可以完成FDISK(分区)和FARMAT(格式化)的功能,而且图形化程度比FDISK略高,所以一直受到很多用户的喜爱,电脑城的装机商们也将它作为首选。

其实从原理上来说,DM在分区上和FDISK完全是一家人。DM对大硬盘的支持,也只是和打了补丁的FDISK相当,对于不支持48bit LBA模式的南桥芯片,使用DM时一样不能很好地分区。
另外,类似DM这一类的软件还有很多,笔者的建议是忘记它们,因为它们既没有FDISK那样正宗的血统,在解决大容量硬盘问题上又老喜欢出兼容性问题。
③最实用的总被忽略
要最稳妥最高效的分区方法,找遍三方软件往往都难以得到最满意的答案。面对大于137GB的硬盘,最实用的工具还是操作系统自带的。以最常见的Windows系列产品而言,目前最好的分区工具就是集成了SP2的Windows XP引导光盘。
Windows XP的SP1对48bit LBA模式还不能完全支持,需要5.1.2600.1135版本或者更新版本的Atapi.sys文件才能支持48bit LBA模式,所以我们这里推荐的是集成了SP2的Windows XP引导光盘。
它的使用方式非常简单,我们并不需要管芯片组是否支持48bit LBA模式,以nForce2这样典型不支持48bit LBA模式的芯片组为例。挂上一个160GB的硬盘,BIOS中根本认不出这款硬盘,但你不用担心,用集成了SP2的Windows XP引导光盘,它将准确地认出你的硬盘容量,跟着Microsoft异常详尽的向导,你会很轻松地完成对硬盘分区和格式化的工作。
如果是RAID系统,注意在安装过程中按“F6”键添加相应驱动,在这里一样可以顺利地完成分区和格式化的工作。注意,这里和FDISK的使用需要注意同样的问题,我们使用这里的分区功能,只需要分出C盘这个主分区安装操作系统即可,剩下的活儿安装完Windows后再做。
在Windows XP中,依次选择“控制面板→管理工具→计算机管理”,我们就可以在如图4所示的界面中找到“存储”子项目下的“磁盘管理”。在这里我们就可以对自己的磁盘为所欲为了。分区、格式化,甚至可以改变盘符,设置效率高,且直观形象。

分区管理经验谈
知道怎么分区了,还需要明白怎么分更好。我们接触得最多,也是流传最广的文件系统是FAT系统。FAT系统主要有FAT16和FAT32两类,当然更早的还有FAT12等,我们这里略去不谈。
所谓FAT16、FAT32,其实就是前面提到的,在FAT区表示文件位置用多长的数据,FAT16就是用16位字长的文件表,那么2的16次方也就是只能表示65536个簇。每簇包含的扇区数目通常不大于64个(通常低6位表示扇区,高10位表示柱面,所以只有64个),每扇区的容量是512B,那么FAT16文件系统通常只能支持最大2GB的逻辑分区。
继续以FAT16为例来说,如果每个分区设置为最大的2GB,那么每簇的容量就必须为512Byte×64=32KB。前面介绍过,硬盘中数据存储的基本单位就是簇,换言之就是容量1KB~32KB的文件,每个文件都要占据一簇,也就是32KB,对于零散文件较多的环境这将造成较大的空间浪费。
举FAT16这个例子看似和我们现在的应用距离很远,其实和我们实际使用关系还是很大的,其中的要点就在于每个逻辑分区的容量选择和簇大小的选择。对于FAT32文件系统而言,可以支持簇的数目就比FAT16大了很多。
在FAT32下,因为上限放宽,在簇大小和簇内扇区数目上可以比较自由地调节,Microsoft就有了一个如表所示的逻辑分区大小和簇大小对应关系表。从FAT32的定义来看,支持到TB级别的逻辑分区毫无问题,但具体落实到操作系统中,我们很难突破32GB的限制。也就是说,如果我们希望使用兼容性良好的FAT文件系统的话,每个逻辑分区的大小最好低于30GB,不然系统将会给我们带来很多麻烦。当然,需要说明的是,时下Windows在FAT32文件系统下,最大的单个文件体积也被限制在4GB。
当然,我们不能忽略Microsoft大力推广的另一种文件系统——NTFS。在NTFS文件系统中,对于超过2GB的逻辑分区,统一采用的是4KB的簇,而且NTFS文件系统,对于超过30GB的单个逻辑分区,在Windows中支持明显好得多,也没有单个文件4GB的限制。从应用层面来说,NTFS文件系统也具备了多种安全功能。
前面的分析明确地指出了,采用较小的簇将大大降低磁盘空间的浪费,从这个角度来看,不考虑兼容性问题的话,NTFS文件系统较小的簇是不是我们分区的首选呢?答案是不确定的,因为我们还要考虑到性能问题。
在逻辑分区容量一定的前提下,簇越小就意味着在这个逻辑分区中簇的数目越多。前面已经提到过,从FAT16到FAT32的过程,从某种意义上来说就是FAT表中字长的变换,NTFS在大容量下仍能保持较小的簇,也就是簇的数目更多,字长也更大。那么我们就可以得出这样的结论:从性能上来说NTFS和FAT32相比应该存在着差距,NTFS代表着更多的空间节省和更多的额外功能,FAT32代表着更好的性能和更广泛的兼容性。
注意:要严格地下结论,仅凭这一点还是不够的,因为这还要涉及到两种文件系统在寻址算法上的优化以及硬盘在物理寻道策略上的算法。
分区方案推荐
具体的硬盘分区方案要根据用户需求而有不同变化,笔者这里以最常见的Windows XP系统和160GB硬盘为例简单分析一下,供大家参考。
首先,C盘也就是系统盘,建议分区大小为8GB。系统盘太小在未来的使用中不是很方便,但也不宜超过8GB,因为系统盘中小文件相当多,簇太大不仅浪费空间也影响性能(FAT32而言)。分区格式为求兼容性就用FAT32,为求安全性就用NTFS。
其次,再分一个8GB的缓存盘。当然,这个盘可以适当地缩小一些,根据自己的实际用途来设置。一般来说,Windows的页面文件、休眠文件,IE的缓存,以及诸如PhotoShop等软件的缓存都可以放在这个区。具体大小可根据自己的软件使用情况来确定,集中这类文件是便于磁盘整理,同时将它放在较为靠前的位置,目的是利用磁盘内圈较高的持续传输速率,提高系统的整体性能。文件系统可以考虑FAT32,限制在8GB以内是为了性能着想。
大多数电脑用户都会在自己电脑中装几个游戏,如果都是玩最新最热的游戏,那么一个足以容纳你所有游戏的NTFS分区就行了。如果还有怀旧的情绪,那么设置两个游戏分区也是个不错的主意,老游戏占的空间不大,换为FAT32或许更好。当然,软件和工作需要的东西,也可以这样划分。就笔者而言,拥有一个专门放最新大个头游戏的NTFS分区,还有一个专放MAYA、PhotoShop、CAD包括Office在内大型软件的NTFS分区,还有一个放置个头不大的小软件、小游戏的分区。
接下来,硬盘上还可以设置一个大型的交换型分区,把硬盘剩下的空间都集中到这里,并且设为NTFS格式。比如你有时候需要从DV中采集视频,有时候需要制作DVDRip,一个够大的NTFS分区会让你不受单个文件大小限制,让你玩得够爽。
最后自然是备份的分区了,对一些重要的资料有些玩家喜欢刻盘保存,但光盘在可靠性和方便性某种程度上还是不如硬盘,留一个备份分区很有必要。如果不涉及隐私的话,这个分区设为FAT32更能保证兼容性,以备万一。如果有私密文件,那么就采用NTFS了。
二、大硬盘的整理
简谈整理原理
用好硬盘,我们还离不开磁盘的碎片整理。时下磁盘碎片整理软件林林总总,效果也是天差地别,那这些软件之间到底有什么差别呢。我们这里结合FAT表、硬盘数据的逻辑结构以及硬盘数据的物理传输流程来分析一下。
我们还是用前面用过的图书馆查书的比方,对于磁盘整理,我们可以理解为整理图书馆的藏书。具体的方法有两个思路:其一,整理图书馆的书籍索引,同一类图书的索引卡片放在一起,便于查找;其二,整理书籍在书架上的位置。
显然第二步比第一步重要得多,也难做得多。整理好书籍的索引卡片,我们可以很容易在索引卡片中找到我们需要的书在图书馆中那个位置,但书籍不整理的话,我们要找两本相关的书,可能第一本在第一排书架上,而第二本在最后一排书架上,这样仍然很浪费借书人的时间。
从统筹规划的角度来说,把同类的书籍索引放在一起是整理,将同类的书籍放在一起更是整理,两者都不可少。如果我们把硬盘读取数据的调度策略,看作是在图书馆中找书人的找书习惯的话,结合找书人的找书习惯,让他在最短时间内找齐所需要的全部书籍,这才是真正的优化。
回到磁盘整理软件这个话题上来说,又快又好的软件自然是对算法有深入理解的程序员写出来的,不仅整理FAT表,也整理数据区,还有明显的优化策略。而那些“傻快”的软件,更多的只是整理一下FAT表做做表面功夫。
实战磁盘整理
Windows自身带着磁盘整理的软件,但是不管是Windows 9X带的还是Windows XP带的都难尽如人意。所以我们这里介绍一些比较好用,且各有特色的第三方软件。
Windows自带版的加强——Diskeeper
Microsoft为了方便Windows用户和体现其产品的价值,往往在产品中集成一些工具,比如IE和媒体播放器。但集成的这些小工具,并不见得全部是Microsoft自己做的,Windows自带的碎片整理程序,就是Executive Software公司为它做的OEM。Diskeeper就是Windows内集成的磁盘碎片整理程序的本源,只是Windows中集成的版本较低。现在最新的9.0版Diskeeper,在功能和性能上都远远超出了Windows自带的版本。
Diskeeper一般分为Professional、Server Standard和Server Enterprise三个版本,这三种版本不仅在功能和性能上有差异,从名字上还可以看出来它们和Windows的版本也存在着对应关系。比如你正在使用Windows XP Professional操作系统,就应该安装对应的Professional版Diskeeper。
Diskeeper的性能预测部分,可以在整理前让用户明确地看到整理后Diskeeper能给我们带来多大的改变(如图5所示),Windows自带的整理软件也在分析磁盘以后会给出一个报告和需不需要整理的结论,但明显9.0版本的Diskeeper在这个方面更贴心,它给用户更多更直观的信息而不是一堆复杂的结果报告和一个没有说服力的结论。

Diskeeper对FAT16、FAT32以及NTFS文件系统的支持都非常完备。这里说的完备体现在两个方面,比如一些采用日文或者西班牙文做文件名的文件,在整理时会被有些磁盘碎片程序破坏,Diskeeper却不会。第二个方面是NTFS格式支持很多高级安全功能,有些磁盘碎片整理程序也会对它们产生灾难性的破坏,比如导致用户权限混乱,但Diskeeper不会。
Diskeeper可以设置多种整理方式,有推荐的“最佳磁盘性能”、还有速度超快的“快速整理磁盘”等,一共有四种模式,每种模式优化的程度和整理的速度都不一样。这至少让读者在速度和质量之间有了选择的余地。同时,Diskeeper还有利用机器空闲整理磁盘碎片的功能,使用非常方便。
速度为王——VoptXP
VoptXP是多数人最容易想到的第三方磁盘碎片整理软件,它的大名来自于其超快的整理速度。图6就是VoptXP的主界面,简单朴素,使用方法也非常简单。选择好需要整理的盘符,然后点击主界面中的小钩就可以进行磁盘分析,VoptXP分析的结果比较简单易懂。如果碎片比例较高,点击右边整理按钮就可以立即开始整理。

但从整体效果的角度来看,VoptXP和Windows自带的磁盘碎片整理工具相比,平均可以节约2/3以上的时间,整理碎片时系统资源消耗也不算特别夸张。毕竟当前是一个追求效率的时代,动辄几十分钟的磁盘碎片整理时间很容易让人望而生畏,有着不错性能和飞快速度的产品,自然能打动多数人的心,以取代系统自己带的并不强悍的产品。
但是,虽然磁盘碎片整理速度因硬盘型号以及磁盘碎片分布状况的不同而不存在可比性,我们也不能因此就完全忽视整理的效果。在笔者来看,VoptXP的整理在算法上相当粗糙,就像一个粗心的“仆人”,三下五除二做完面前最醒目的工作,而没有仔细去思索更深层次的优化问题。
仅停留在FAT级别的碎片整理软件是不够的,大多数软件在FAT级别整理后,对于数据区的数据全部整理花费的时间太长,所以往往都会选择一个阈值,高于这个阈值的数据区数据才会被整理。VoptXP的根本问题就是在于这个阈值设定过高,而且整理模式中没有提供这一类的调节模式。不过从另一个角度来看,或许是笔者对这类快餐软件要求太高了些。
玩家的新宠——O&O Defrag
O&O Defrag在很多媒体的磁盘碎片整理工具推荐榜上都名列前茅。有了媒体的大力推荐用它的用户自然不少。和简单朴素的VoptXP相比,O&O Defrag在界面风格上更为接近Diskeeper,两者都提供了相当多的功能和较好的性能。
在碎片分析这部分,O&O Defrag和其它软件一样,速度和详尽程度都相当高,除了在图7中看到的很形象化的结果以外,用户还可以在菜单中查到更多的细节。如果拿同一个磁盘分区分别用O&O Defrag和Diskeeper进行分析的话,O&O Defrag显示的碎片数目在多数状况下略多于Diskeeper,或许这就是因为它整理的阈值设置较高,

O&O Defrag的使用也不复杂,点击图7中的“一键整理”这个按钮,磁盘碎片整理工作就可以自动完成了。
O&O Defrag对有一定计算机知识的用户还提供了手动整理模式,这里面就不仅是把分散的文件碎片连续地放在一起这么简单了,除了基本的整理外还包含多种优化方法。比如可以按照文件名、修改时间和读取频度来进行优化。这显然就是前面说的,考虑到了用户的使用习惯甚至磁盘的调度算法了。
从实际效果来看,按照读取频度来优化将会得到最好的磁盘效能,但这需要较多的磁盘空余空间和较长的整理时间,同时还需要对系统进行一些监测才能得到更准确的优化依据,毕竟这可以理解为是对用户的个性化使用习惯的优化整理模式。
最终武器——PerfectDisk
把PerfectDisk称作最终武器(如图8),这是笔者自己使用过多款磁盘碎片整理软件以后的心得,笔者自己也在使用这款软件。软件的各个方面相当平实,在分析完磁盘状况后,PerfectDisk会跳出一个统计窗口,在这里我们可以看到详尽的分析信息,特别是对于文件使用程度和碎片状况的信息相当有用处也相当有意思。

整理方式也很简单,一种是仅整理碎片,也就是强化空间连续性的方式,另一种是智能整理方式,这可理解解为带优化模式的碎片整理。其实,对于大多数用户来说O&O Defrag虽然提供了多种优化模式,但模式多了会让人难以抉择,PerfectDisk这种半傻瓜式的优化模式更适合大多数人。
从软件的个头来看,PerfectDisk显然是O&O Defrag的精简版;从软件的功能设置来看PerfectDisk也是简化版的状态,但是这种简化反倒更方便用户;从整理效果来看,PerfectDisk丝毫没有简化,就笔者自身的感受来说,甚至还有强化。
写在最后
我们把眼光放得远一点,跳出硬盘数据物理结构的范畴,我们可以看到磁盘整理更多的意义。图9是在SATA Ⅱ硬盘上出现的NCQ技术的示意图,简单地说这项技术就是合理地排列需要从硬盘上读写数据的命令,让其提高读写的效率。

我们回过头来看看,图9中经过NCQ技术优化以后,少跑了一圈就完成了同样的任务。结合前面的比方,我们就会发现,磁盘碎片整理和NCQ技术其实是朝着同一个方向发展的东西。在图书馆里面,我们不管是整理图书目录索引还是整理书架上的书籍,最终目的就是让找书的人在图书馆内少跑路,用最短的时间找到需要的资料。
因此,从某个角度来说,磁盘碎片整理技术不能只考虑所谓的数据连续存放。可能在一些环境内,连续存放数据未必是最佳的存放方式。比如说,磁盘寻道中常见的SCAN算法又称EA(Elevator Algorithm,电梯算法)算法,它主要是让磁头沿磁盘径向来回扫描,依次服务前进方向上所有请求的一种算法,每次扫描都是达到最内或者最外磁道才反向继续扫描。该系列寻道算法,对于连续存放的数据明显有利。
但是在带Cache的环境下,SSTF(Shortest Seek Time First,最短寻道时间优先)算法也是用得相当多的一种算法。这种算法的处理方法是,让寻道时间较短的请求在较早的时间就被执行,目的是获得尽可能短的平均寻道时间。如果是带Cache的SSTF算法,那么可能所谓“连续存放”的数据就在性能上不占优势了,再加上NCQ这类技术和大容量Cache的预取技术的算法变化,如何整理磁盘才能获得最高效能,这里面软件算法之间相互协调的内容还很多,探寻的路还很长。
换个角度来说,也正是因为这些因素,在实际使用中,磁盘碎片整理带来的正面影响用户一直没感受太多。甚至不少高级玩家,都觉得磁盘整理只是一个可有可无的鸡肋功能,整理不整理对性能没啥影响,甚至有的玩家从未整理过磁盘。
本文介绍的硬盘分区和磁盘碎片整理两个部分,都是平时不太起眼的应用。笔者在介绍中从软件的使用到一些技术原理分析都有所涉及,不过因为涉及硬件、软件两个方面,有些问题无法在有限的篇幅中彻底说清楚,有兴趣的读者还可以自己查找相关资料。
其实这两个部分对于普通用户而言,熟悉后能减少很多麻烦也能提高系统的性能,对一些进阶的玩家而言,钻研进去了乐趣相当多。就像前面提及的MBR区,研究清楚一点就可以知道引导区病毒是怎么来的。FAT和DIR这些部分研究明白了,就知道软件数据恢复到底是怎么一回事……