何时在Linux中使用fsck

2019-02-25 23:43:46 4072

何时在Linux中使用fsck

当您想要运行fsck时,有不同的场景。 以下是一些例子:


系统无法启动。

系统上的文件已损坏(通常您可能会看到输入/输出错误)。

附加驱动器(包括闪存驱动器/ SD卡)无法正常工作。

fsck可用选项

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


-A - 用于检查所有文件系统。 该列表取自/etc/fstab 。

-C - 显示进度条。

-l - 锁定设备以确保在检查期间没有其他程序尝试使用该分区。

-M - 不检查已挂载的文件系统。

-N - 仅显示将要执行的操作 - 不进行实际更改。

-P - 如果要并行检查文件系统,包括root。

-R - 不检查根文件系统。 这仅适用于' -A '。

-r - 为正在检查的每个设备提供统计信息。

-T - 不显示标题。

-t - 专门指定要检查的文件系统类型。 类型可以是逗号分隔列表。

-V - 提供描述正在进行的操作。

如何运行fsck来修复Linux文件系统错误

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


如果我在安装分区时尝试运行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 left uncorrected

8      Operational error

16     Usage or syntax error

32     Checking canceled by user request

128    Shared-library error            

修复Linux文件系统错误

有时在文件系统上可以找到多个错误。 在这种情况下,您可能希望fsck自动尝试更正错误。 这可以通过以下方式完成:


# fsck -y /dev/sdb

-y标志, “yes”来自fsck的任何提示自动“yes”以纠正错误。


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


$ fsck -AR -y 


如何在Linux根分区上运行fsck

在某些情况下,您可能需要在系统的根分区上运行fsck 。 由于在安装分区时无法运行fsck ,因此可以尝试以下选项之一:



系统启动时强制fsck

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


# touch /forcefsck

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


系统引导后,检查文件是否仍然存在:


# ls /forcefsck

如果是这样,您可能希望将其删除,以避免每次系统启动时出现fsck 。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: