如何修复和整理 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选项用于以只读方式打开文件系统并假设"no"
可能出现的所有问题的答案。
此选项基本上允许以非交互方式使用e2fsck 。如果一切正常,您应该会看到类似于以下屏幕截图所示的结果:
以下是另一个显示系统错误的示例:
如何使用 e2fsck 修复 Linux 文件系统
如果出现错误,您可以尝试使用带有“ -p ”选项的e2fsck修复文件系统。请注意,为了运行以下命令,需要卸载分区:
$ sudo e2fsck -p <device file>
“ -p ”选项尝试自动修复文件系统上的问题,这些问题可以安全地修复而无需人工干预。如果发现的问题可能需要系统管理员采取额外的纠正措施,e2fsck 将打印问题描述并以代码 4 退出,这意味着“文件系统错误未得到纠正”。根据发现的问题,可能需要采取不同的措施。
如果问题出现在无法卸载的分区上,则可以使用另一个名为e4defrag的工具。它预装在许多 Linux 发行版上,但如果您的 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 新手使用。整个操作的目的是优化文件系统,以便更有效地执行新的读/写操作。