答案1
易启动包括在分区根目录下强制执行此操作的脚本。这很有意义,因为这确实是一个极端情况要求。
我仍然感到困惑,为什么没有其他工具可以做到这一点。
答案2
碎片整理程序的工作原理是将文件复制到同一驱动器上的一块连续可用空间上,然后删除原始文件。有些程序会尝试先移动其他文件(无论文件是否已经碎片化)来创建一个连续可用空间的合并区域,以便删除所有文件之间的所有间隙。
例如,在 NTFS 卷上,我们可能有一个新格式化的 8GB 驱动器,其中包含 6GB 的文件:
文件 1_2GB 文件 2_2GB 文件 3_2GB(2GB 免费)
现在我们删除文件2并复制一个1GB的文件4,得到
FILE1_2GB(2GB可用)FILE3_2GB文件4_1GB(免费1GB)
现在我们删除文件3并复制一个1GB的文件5,我们得到
FILE1_2GB(2GB免费)文件5_1GB(1GB 免费) FILE4_1GB (1GB 免费)
现在我们添加一个 3GB 的文件6,它变得碎片化了……
文件1_2GB文件6A_3GB文件5_1GB文件6B_3GBFILE4_1GB(免费1GB)
现在 file6 有碎片,但只有 1GB 的可用空间,所以我们无法对 FILE6 或任何大于 1GB 的文件进行碎片整理。如果我们删除 FILE1,我们得到
(免费2GB)FILE6A_3GB FILE5_1GB FILE6B_3GB FILE4_1GB(1GB免费)
但我们仍然没有足够的连续的可用空间来复制 FILE6 并制作新的连续版本。
因此,您会发现,文件系统可能包含碎片文件和碎片的可用空间区域,具体取决于其历史记录。如果卷上没有足够的可用空间,碎片整理程序就无法创建新的连续文件。
解决此问题的一种方法是将碎片文件临时移动到另一个驱动器,合并目标驱动器上的所有可用空间,然后再复制回该文件。
Windows 程序 WinContig 要求存在足够大的连续可用空间块。Windows GUI 程序 Defraggler 将首先尝试合并可用空间,然后将文件复制到新的可用空间区域。Defraggler 还有一个选项可以合并驱动器上的所有可用空间块。
将文件复制到驱动器时会出现另一个复杂情况 - 某些程序在复制文件时会打开多个流(例如,默认模式下的 xcopy 或使用浏览器直接从互联网下载或使用多个复制会话到同一卷时)。即使目标驱动器上有一大块连续的可用空间,这也几乎总是会导致文件碎片化。
Defraggler 非常适合查看卷上的文件映射以及检查文件如何在驱动器上分割。
请注意,NTFS 通常还会将 MFT(主文件表目录)放置在 Windows 格式的 NTFS 卷的 3GB 左右位置。因此,如果您有一个 8GB 的 NTFS 卷,无论如何尝试,您都无法在其中放置连续的 6GB 文件,因为 MFT 区域始终位于驱动器的中间!