网站搜索

如何修复 Linux 系统分区和目录并进行碎片整理


使用Linux的人常常认为它不需要碎片整理。这是 Linux 用户的一个常见误解。实际上,Linux操作系统确实支持碎片整理。碎片整理的目的是改进 I/O 操作,例如允许本地视频更快加载或更快地提取存档。

Linux ext2、ext3 和 ext4 文件系统不需要太多关注,但随着时间的推移,在执行很多很多读/写之后,文件系统可能需要优化。否则硬盘可能会变慢并可能影响整个系统。

在本教程中,我将向您展示几种对文件执行碎片整理的不同技术。在开始之前,我们应该提到 ext2、3、4 等常见文件系统如何防止碎片。这些文件系统包含防止这种影响的技术。例如,文件系统在硬盘上保留空闲块组以完全存储不断增长的文件。

不幸的是,这种机制并不总能解决问题。虽然其他操作系统可能需要昂贵的额外软件来解决此类问题,但 Linux 有一些易于安装的工具可以帮助您解决此类问题。

如何检查文件系统是否需要碎片整理?

在开始之前,我想指出以下操作只能在 HDD 上运行,而不是在 SSD 上运行。对 SSD 驱动器进行碎片整理只会增加其读/写次数,从而缩短其使用寿命。相反,如果您使用 SSD,则应该使用 TRIM 功能,本教程不涉及该功能。

让我们测试一下系统是否真的需要碎片整理。我们可以使用e2fsck等工具轻松检查这一点。在系统上的分区上使用此工具之前,建议先卸载该分区。这并不是完全必要的,但这是安全的方法:

sudo umount <device file>

就我而言,我将 /dev/sda1 安装在 /tmp 上:

请记住,在您的情况下,分区表可能会有所不同,因此请确保卸载正确的分区。要卸载该分区,您可以使用:

sudo umount /dev/sda1

现在让我们用e2fsck检查这个分区是否需要碎片整理。您将需要运行以下命令:

sudo e2fsck -fn /dev/sda1

上面的命令将执行文件系统检查。 -f 选项强制进行检查,即使系统看起来很干净。 -n 选项用于以只读方式打开文件系统,并对所有可能出现的问题假设答案为“否”

此选项基本上允许以非交互方式使用e2fsck。如果一切正常,您应该会看到类似于下面屏幕截图所示的结果:

这是显示系统错误的另一个示例:

如何使用 e2fsck 修复 Linux 文件系统

如果出现错误,您可以尝试使用带有“-p”选项的e2fsck修复文件系统。请注意,为了运行以下命令,需要卸载分区:

sudo e2fsck -p <device file>

-p”选项尝试对文件系统进行自动修复,以解决无需人工干预即可安全修复的问题。如果发现问题,可能需要系统管理员采取额外的纠正措施,e2fsck 将打印问题的描述,并以代码 4 退出,这意味着“文件系统错误未纠正”。根据发现的问题,可能需要采取不同的操作。

如果问题出现在无法卸载的分区上,您可以使用另一个名为e4defrag的工具。它预装在许多 Linux 发行版上,但如果您的发行版上没有,您可以使用以下命令安装:

sudo apt-get install e2fsprogs         [On Debian and Derivatives]
yum install e2fsprogs                  [On CentOS based systems]
dnf install e2fsprogs                  [On Fedora 22+ versions] 

如何对 Linux 分区进行碎片整理

现在是时候使用以下命令对 Linux 分区进行碎片整理了。

sudo e4defrag <location>
or
sudo e4defrag <device>

如何对 Linux 目录进行碎片整理

例如,如果您希望对单个目录或设备进行碎片整理,您可以使用:


sudo e4defrag /home/user/directory/
sudo e4defrag /dev/sda5

如何对所有 Linux 分区进行碎片整理

如果您希望对整个系统进行碎片整理,安全的方法是:

sudo e4defrag /

请记住,此过程可能需要一些时间才能完成。

结论

碎片整理是您很少需要在 Linux 中运行的操作。它适用于那些知道自己到底在做什么的高级用户,不推荐 Linux 新手使用。整个操作的重点是优化文件系统,以便更有效地执行新的读/写操作。