如何使用“fsck”修复 Linux 文件系统错误

负责组织数据的存储和恢复方式。无论如何,随着时间的推移,文件系统可能会损坏,并且其某些部分可能无法访问。如果您的文件系统出现这种不一致,建议验证其完整性。

这可以通过一个名为的系统实用程序来完成FSCK(文件系统一致性检查),它会在启动时自动检查根文件系统或手动运行。

在这篇文章中,我们将回顾fsck命令及其帮助您修复 Linux 磁盘错误的用法。

何时在 Linux 中使用 fsck 命令

当您想要跑步时,有不同的情况FSCK。以下是一些示例:

  • 系统无法启动。
  • 系统上的文件被损坏(通常您可能会看到输入/输出错误)。
  • 连接的驱动器(包括闪存驱动器/SD 卡)未按预期工作。

fsck 命令选项

fsck命令需要以超级用户权限运行或。您可以将它与不同的参数一起使用。它们的使用取决于您的具体情况。下面您将看到一些更重要的选项:

  • -A– 用于检查所有文件系统。该列表取自/etc/fstab
  • -C– 显示进度条。
  • -l– 锁定设备以确保在检查期间没有其他程序会尝试使用该分区。
  • -M– 不检查已安装的文件系统。
  • -N– 仅显示将要做什么 – 不进行实际更改。
  • -P– 如果您想并行检查文件系统,包括根。
  • -R– 不检查根文件系统。这仅适用于 '-A'。
  • -r– 提供正在检查的每个设备的统计数据。
  • -T– 不显示标题。
  • -t– 独家指定待检查。类型可以是逗号分隔的列表。
  • -V– 描述正在做什么。

运行 fsck 命令修复 Linux 文件系统错误

为了运行FSCK,您需要确保您要检查的分区未安装。出于本文的目的,我将使用第二个驱动器/dev/sdb安装在/mnt

如果我尝试运行,会发生以下情况FSCK当安装分区时。

# fsck /dev/sdb
在已安装的分区上运行 fsck

为了避免这种情况,请使用以下命令卸载分区。

# umount /dev/sdb

然后FSCK可以安全地运行。

# fsck /dev/sdb
在 Linux 分区上运行 fsck

了解 fsck 退出代码

运行后FSCK,它将返回一个退出代码。这些代码可以通过运行以下命令在 fsck 手册中查看:

# man fsck

0      No errors
1      Filesystem errors corrected
2      System should be rebooted
4      Filesystem errors were left uncorrected
8      Operational error
16     Usage or syntax error
32     Checking canceled by user request
128    Shared-library error            

Fsck 修复 Linux 文件系统

有时,在一个文件系统上会发现多个错误。在这种情况下,您可能想要FSCK自动尝试纠正错误。这可以通过以下方式完成:

# fsck -y /dev/sdb

-y标记,自动“yes”根据 fsck 的任何提示来更正错误。

同样,您可以在所有文件系统上运行相同的操作(无需):

$ fsck -AR -y 

如何在 Linux 根分区上运行 fsck

在某些情况下,您可能需要运行FSCK您系统的分区。既然你不能跑FSCK安装分区后,您可以尝试以下选项之一:

  • 系统启动时强制执行 fsck
  • 在救援模式下运行 fsck

我们将审查这两种情况。

系统启动时强制执行 fsck

这相对容易完成,您唯一需要做的就是创建一个名为强制检查在系统的根分区中。使用以下命令:

# touch /forcefsck

然后您可以简单地强制或安排。在下次启动期间,FSCK将被执行。如果停机时间很重要,建议仔细计划,因为如果系统上有许多已使用的索引节点,FSCK可能需要一些额外的时间。

系统启动后,检查该文件是否仍然存在:

# ls /forcefsck

如果是这样,您可能需要将其删除以避免FSCK在每次系统启动时。

在救援模式下运行 fsck

跑步FSCK救援模式还需要几个步骤。首先,准备您的系统重新启动。停止任何关键服务,例如MySQL/MariaDB等然后输入。

# reboot

在启动过程中,按住shift键,以便显示 grub 菜单。选择 ”高级选项”。

Grub 高级选项

然后选择“恢复模式”。

选择Linux恢复模式

在下一个菜单中选择“FSCK”。

选择 fsck 实用程序

系统会询问您是否希望拥有您的/文件系统已重新安装。选择“yes”

确认根文件系统

您应该会看到与此类似的内容。

运行 fsck 文件系统检查

然后您可以通过选择恢复正常启动“恢复”

选择正常启动
结论

在本教程中,您学习了如何使用 fsck 并在不同的 Linux 文件系统上运行一致性检查。如果您有任何疑问FSCK,请随时在下面的评论部分提交。