如何对 Linux 系统进行碎片整理
GNU/Linux 用户普遍存在一种误解,认为我们的系统永远不需要进行碎片整理。这源于大多数发行版(包括 EXT2、3 和 4、JFS、ZFS、XFS、ReiserFS 和 BTRFS)使用的日志文件系统的成功。所有这些都在磁盘中的文件分配方面拥有巧妙的方法和技术,将碎片问题降至最低,即使在同一系统中安装和卸载应用程序和库多年后,实际上也没有理由进行碎片整理。尽管碎片仍然是一个问题,特别是对于使用空间有限的磁盘的用户来说,这些磁盘可能不会提供很多文件分配选项。
下面是对 (Linux) 文件分配过程如何工作的大量描述:文件存储在磁盘的多个位置,在它们之间留下巨大的未写入空间,允许它们在需要时随着时间的推移畅通无阻地增长。这与 Windows NTFS 等文件系统相反,后者将文件连续放置。如果磁盘变得更加拥挤,并且一个文件需要更多的空间来保持一个整体来增长,Linux 文件系统会尝试将它完全重写到另一个有足够空间将其作为一个整体存储的扇区上。这样一来,所有东西都保持干净、整洁,并且每件都是一件。尽管空间有限,但随着时间的推移,这个文件“操纵”变得更具挑战性。下面是处理这个问题的方法以及如何真正对 Linux 系统进行碎片整理。
现在,您需要做的第一件事就是安装碎片整理工具。有许多可用于 Linux 文件系统的碎片整理程序,但我将使用 \e4defrag,因为它很可能已经安装在您的系统中。使用此工具,您可以确定您是否有文件碎片以及碎片的严重程度。为此,请打开一个终端并键入:sudo e4defrag -c /location 或 /dev/device。在下面,我扫描了我的 /home 文件夹中的碎片文件,实际上发现了其中的五个。虽然我的碎片分数很低,但碎片整理在那种情况下,我的系统性能不会有太大不同。如果这输出的分数超过 \30,那么碎片整理将是一个好主意。

首先,我将演示如何使用 e4defrag 对碎片文件进行碎片整理。 e4defrag 程序是 e2fsprogs 包的一部分,它应该已经安装在您的计算机上。如果程序丢失,请在 Ubuntu 上使用此命令安装它:
sudo apt-get install e2fsprogs
为此,我使用以下命令:
sudo e4defrag
后跟文件的位置和名称,如下面的屏幕截图所示:

当你像我一样只需要对几个文件进行碎片整理时,这很好,但如果你想对整个系统进行碎片整理,那么你应该首先卸载所有分区并运行以下命令:
sudo e4defrag /dev/*
如果你想在不卸载的情况下进行碎片整理,那么:
sudo e4defrag /
将是一个安全的选择。
由于如今许多用户使用 SSD 而不是 HDD,因此请务必注意碎片整理程序仅对后者有益。如果您拥有 SSD,则完全没有必要担心文件碎片,因为这些磁盘可以随机访问其存储,而 HDD 则按顺序访问。对 SSD 进行碎片整理只会增加读/写次数,从而缩短磁盘的使用寿命。 SSD 所有者应该转而表达他们对 TRIM 功能的兴趣,这在本教程中没有涉及。