磁盘碎片整理程序
磁盘碎片整理程序,在我的记忆中,最早可以追溯到 DOS 时代的 DEFRAG 程序了。DOS 使用基于链接表的 FAT 文件系统,在使用过程中一个文件可能被分成多段,存储在磁盘上前前后后不同的位置。这些位置通过像绳子一样的链接表在文件分配表 FAT 中连起来,成为一个文件。由于大段地读取或写入一个不连续的文件需要让硬盘磁头前后搜索,速度较慢,因此有了磁盘碎片整理程序,专门把文件的这些“碎片”合并起来,以使将来的读写速度较快。
说到 Windows 98 的磁盘碎片整理,我曾经在索易杂志上看到某人的文章说,将 Windows 98 的磁盘碎片整理程序的选项中“加快程序的启动速度”关闭,就可以大大加快磁盘碎片整理的速度。后经我观察,发现速度是加快了不少,但还是只有 Windows 95 上的速度。另外,Norton Speed Disk 一直是 Windows 9x 上我认为最佳的磁盘碎片整理工具。VOpt 虽然快,但在剩余磁盘空间不多的情况下整理效果很差,我建议使用 Diskeeper(www.execsoft.co.uk)、Speed Disk 等工具,但对于剩余磁盘空间较多的情况,可以使用 VOpt。我曾经在想自己编写一个 DOS 下的支持长文件名和 FAT32 的磁盘碎片整理程序,但因为时间不够而搁置了这个想法(测试磁盘碎片整理程序是要冒丢失数据的风险的)。
我对磁盘碎片整理的建议是:2 个月整理一次,不必太多,太多会折损磁盘的寿命。如果你用的磁盘碎片整理工具会报告磁盘碎片的数量(如 Windows 2000/XP 自带的那个或 Diskeeper),那么就在平均每个文件的碎片个数多于 1.10 的时候再进行整理。需要注意的是,在 Windows 9x 上整理磁盘碎片的时候,最好关掉所有其它程序,否则会在有写入发生的时候被迫从头开始。还有一个很有趣的现象——Windows Me 的磁盘碎片整理程序似乎被微软改进过了,所以它工作得比 Windows 98 的那个要好得多,整理起来都是一大块一大块的。如果想在 Windows 98 上面使用它,很简单的一个办法就是把它复制到 Windows 98 的目录里,覆盖掉原来的 DEFRAG.EXE。
我想起了上文中谈到的一件事:将 Windows 98 的磁盘碎片整理程序的选项中“加快程序的启动速度”关闭,就可以大大加快磁盘碎片整理的速度 —— 我试了一下,发现一个很奇怪的现象:一开始,程序是在大块大块地整理,但是,到后来的时候,程序把文件的簇大块大块地往后搬,但在填充时的块却非常小,而且,经过仔细观察,填充的块会越来越小,直到只有一个簇。我真有些迷惑不解了,如果你能告诉我答案的话,发 e-mail 给我,地址在
封面页上。
2006 年已经过掉了,2007 年又来让我们过了……听一位同事说,现在的大潮流是多核与虚拟化。之所以使用虚拟化,是因为一台服务器如果仍运行 32 位程序,那么对于单个应用程序来说可以访问的内存空间不超过 3GB。但是服务器上可能配置大于 3GB 的内存。固然同时运行多个程序是一个利用内存的好方法,但是还可能有剩余。这时,可以考虑使用虚拟软件运行多个操作系统,以进一步提高内存的利用率,同时也提高多核 CPU 和磁盘阵列的利用率,并且提供老操作系统的兼容性。
在虚拟化时代,我们个人电脑也可以运行 Virtual PC 之类的虚拟机软件。但是,在运行这些软件的时候,我们是否已经注意到,这些软件会使用很大的文件作为虚拟硬盘。而对于这些很大的文件,如何对它们进行外部的碎片整理就成了难题。如果虚拟硬盘文件本身都有太多碎片,那虚拟机里面的文件碎片即使再少也没用。为了找到能整理这样大文件的磁盘碎片整理程序,我花了不少功夫。最后找到三个:Whitney's Defrag、JK Defrag 3.36 和 Diskeeper Lite 9.0。Whitney's Defrag 的整理效果明显,但是速度很慢,而且不给 MFT 预留空间(这是一个大问题)。JK Defrag 速度尚可,效果也相当好,是免费软件中最好的一个。Diskeeper 9.0 对于大文件可能需要多次反复整理才能达到理想效果,但也已经不错了。注意 Diskeeper 7.0 无法对很大的文件进行有效的整理。因此,我推荐使用 Diskeeper Lite 9.0 整理虚拟机的虚拟硬盘文件;若 Diskeeper 无法解决问题,使用 JK Defrag 整理(甚至先用 JK 的后用 Diskeeper)。
在使用 Diskeeper Lite 那么久之后,我为我新的笔记本电脑上的 Windows Vista 系统买了一个 Diskeeper 2008 Professional。使用了这个付费版本的软件之后,磁盘碎片整理变成全自动的工作,不再需要手工整理。它会在磁盘上创建文件之后,随时进行整理,而且会在磁盘或 CPU 忙碌的时候自动暂停整理工作。而且它针对那些碎片个数很多、磁盘剩余空间很少的情况,有一个专门的引擎,这样就不必担心遇到大的 VHD 难以整理了。