我刚刚读过这关于 *nix 文件系统上几乎不存在的磁盘碎片的文章。
有人提到,由于处理将数据写入磁盘的方式ext
,碎片可能只会在至少 80% 的硬盘驱动器上开始显现,其中文件之间的可用空间开始耗尽。
关于如何处理这种碎片,最后一段写道:
如果您确实需要对文件系统进行碎片整理,最简单的方法可能也是最可靠的:将所有文件复制出分区,擦除分区中的文件,然后将文件复制回分区。当您将文件复制回磁盘时,文件系统将智能地分配文件。
这对我来说听起来不合逻辑。因为据我了解,当将所有文件复制回已擦除的驱动器时,应该发生类似的过程,其中文件被写入并写入,文件之间的可用空间部分逐渐减少,直到碎片再次出现。
我对这一点说得对吗?
答案1
您所读到的内容是真实的。随着时间的推移,文件系统会变得支离破碎——当您编写更多史诗般的剧本,或添加到您的音乐收藏,或上传更多照片等时,因此可用空间不足,系统必须拆分文件以适应磁盘。在您发布的摘录中描述的过程中,最后阶段将文件复制回最近清理的磁盘上,是按顺序完成的 - 因此文件被一个接一个地写入文件系统,从而允许系统以一种方式分配磁盘空间。首先避免导致分裂的条件的方式。
在某些 UNIX 文件系统上,碎片实际上是一件好事 - 它有助于节省空间,将两个文件中的数据分配到单个磁盘块,而不是使用两个块,每个块都填充不到一半的数据。
UNIX 文件系统直到接近满时才开始遭受碎片的困扰,此时系统不再有足够的可用空间来使用,因为它会尝试重新排列文件以使它们占据连续的块。同样,Windows 碎片整理程序需要大约 15% 的磁盘空间未被使用才能有效地履行其职责。