![为什么 Windows 碎片整理程序对有 23% 空闲空间的磁盘几乎没有任何作用?](https://linux22.com/image/1289057/%E4%B8%BA%E4%BB%80%E4%B9%88%20Windows%20%E7%A2%8E%E7%89%87%E6%95%B4%E7%90%86%E7%A8%8B%E5%BA%8F%E5%AF%B9%E6%9C%89%2023%25%20%E7%A9%BA%E9%97%B2%E7%A9%BA%E9%97%B4%E7%9A%84%E7%A3%81%E7%9B%98%E5%87%A0%E4%B9%8E%E6%B2%A1%E6%9C%89%E4%BB%BB%E4%BD%95%E4%BD%9C%E7%94%A8%EF%BC%9F.png)
当我尝试在 Windows XP 上对 80 GB NTFS(4 KB 簇大小)卷进行碎片整理时,我遇到了一个奇怪的问题:碎片整理过程非常快,但也非常无用。从图形上看,我可以看到一些文件四处移动,但碎片级别保持不变。
以下是对卷进行碎片整理后的样子:
我知道有 15% 的可用空间限制。实际上,卷的可用空间为 23%。
当然,Windows 碎片整理程序会显示一堆无法进行碎片整理的文件。有些文件很大(最大可达 1 GB),但也不是大到无法在碎片整理期间移动。我想,这还不算 hiberfil.sys 和 pagefile.sys(它们是无法移动的,不是吗?)。
我该如何诊断这个问题?
PS. 按照类似问题,对我来说不是一个解决方案。
答案1
碎片整理程序没有地方将大文件移动到:所有可用空间都均匀分布在小块中,因此如果 $VERYBIGFILE 从 20 个紧密的碎片变为 10 个分散的碎片,也不会有任何改进。
碎片整理程序执行的步骤之一是文件压缩,其中相邻但独立的文件被重新排列以形成单个数据块。尝试运行几次,随着时间的推移,效果会越来越好。
您也可以尝试contig -v somebigfile
逐个对文件进行碎片整理。
答案2
尝试重新启动进入安全模式,然后关闭尽可能多的服务。打开的文件将不会移动或碎片整理,因此建议以尽可能少的进程运行。
或者移除驱动器,然后将其(作为数据驱动器)安装到另一台电脑上进行碎片整理。
答案3
您可以禁用休眠模式,它应该会删除 hiberfil.sys。如果没有,您可以在禁用休眠模式后手动删除它。您还可以禁用页面文件。一旦这两个大型、无法碎片整理的文件消失,您可能会获得更好的碎片整理效果。完成后,您可以重新启用页面文件和休眠模式。希望在对卷进行碎片整理后,其他两个文件将被放置在连续的文件中。