对 ext 分区进行碎片整理?

ura*_*ray 9 filesystems partition ext4 ext2

为什么不需要对 ext2/3/4 进行碎片整理?完全没有碎片化吗?

Dav*_*ett 10

现代文件系统,特别是那些设计为在多用户和/或多任务使用案例中高效的文件系统,在文件系统接近满之前不会碎片化数据方面做得很好(没有确切的数字来说明“接近满”的位置" 标记是因为它取决于文件系统的大小、文件大小的分布以及您的访问模式 - 通常引用 85% 和 95% 之间的数字)或文件创建和写入的模式不寻常或文件系统是很老所以见过很多“行动”。这包括 ext2/3/4、reiser、btrfs、NTFS、ZFS 等。

目前没有内核/文件系统级别的方法来对 ext3 或 4 进行碎片整理(请参阅http://en.wikipedia.org/wiki/Ext3#Defragmentation了解更多信息),尽管 ext4 计划很快上线碎片整理。

有用户端工具(例如http://vleu.net/shake/以及该维基百科文章中列出的其他人)尝试通过复制/重写对单个文件或文件集进行碎片整理 - 如果有足够大的可用空间块,这通常会导致文件被赋予一个连续的块。这绝不能保证文件彼此靠近,因此如果您对一对大文件运行抖动,您可能会发现这会导致两个文件自行进行碎片整理,但不会在磁盘上的任何位置靠近彼此。在多用户文件系统中,文件彼此的位置通常并不重要(它肯定不如文件本身的碎片重要),因为驱动器磁头到处翻转以服务不同的用户”

如果您的文件系统随着时间的推移变得严重碎片化,并且当前有相当数量的可用空间,那么运行类似shake的所有文件可能会产生您正在寻找的效果。另一种方法是将所有数据复制到新的文件系统,删除原始文件,然后再次将其复制回去。这有很大帮助,shake但对于大量数据可能会更快。

对于少量碎片,不用担心。我知道有些人在正常操作的几个生命周期中花费更多时间观看碎片整理进度条而不是他们节省的时间(由于更有效的磁盘访问)!