使用‘fsck’修复Linux中文件系统错误的方法

 更新时间:2019年03月05日 09:00:15   作者:howtoing  
这篇文章主要给大家介绍了关于如何使用'fsck'修复Linux中文件系统错误的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧

前言

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

这可以通过名为fsck的系统实用程序( 文件系统一致性检查)完成。 此检查可在引导期间自动完成或手动运行。

在本文中,我们将回顾fsck实用程序及其用法,以帮助您修复磁盘错误。

何时在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
  • 在救援模式下运行fsck

我们将审查这两种情况。

系统启动时强制fsck

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

# touch /forcefsck 

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

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

# ls /forcefsck 

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

在救援模式下运行fsck

在救援模式下运行fsck需要更多步骤。 首先准备系统以重新启动 。 停止任何关键服务,如MySQL / MariaDB等,然后键入。

# reboot 

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

Grub Advance Options

然后选择“ 恢复模式 ”。

选择Linux恢复模式

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

选择fsck Utility

系统将询问您是否希望重新安装/ filesystem。 选择“yes” 。

确认根文件系统

你应该看到类似的东西。

运行fsck文件系统检查

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

选择正常启动

结论

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

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关文章

  • 浅谈Linux C语言动态库及静态库

    浅谈Linux C语言动态库及静态库

    下面小编就为大家带来一篇浅谈Linux C语言动态库及静态库。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Linux nohup实现后台运行程序及查看(nohup与&)

    Linux nohup实现后台运行程序及查看(nohup与&)

    这篇文章主要介绍了Linux nohup实现后台运行程序及查看(nohup与&),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • linux系统终端修改字体的方法

    linux系统终端修改字体的方法

    我们以debian为例,介绍两种linux修改终端字体的设置方法,大家参考使用吧
    2014-01-01
  • Linux多线程编程(二)

    Linux多线程编程(二)

    条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待条件变量的条件成立而挂起(此时不再占用cpu);另一个线程使条件成立(给出条件成立信号)。
    2014-08-08
  • Linux中移除(删除)符号链接的命令

    Linux中移除(删除)符号链接的命令

    这篇文章主要介绍了在Linux中怎样移除(删除)符号链接,需要的朋友可以参考下
    2019-09-09
  • 80端口被Pid为4的未知程序占用导致Apache不能启动的解决方法

    80端口被Pid为4的未知程序占用导致Apache不能启动的解决方法

    这篇文章主要介绍了80端口被Pid为4的未知程序占用导致Apache不能启动的解决方法,比较奇怪的是这个PID为4的程序在进程中找不到,后来发现原来是一个服务在占用,需要的朋友可以参考下
    2014-10-10
  • linux磁盘管理软RAID的实现原理分析和方法分享

    linux磁盘管理软RAID的实现原理分析和方法分享

    这篇文章主要介绍了linux磁盘管理中做软RAID的实现原理分析和方法分享,需要的朋友跟着学习下。
    2017-12-12
  • Linux下截屏并编辑的最佳工具

    Linux下截屏并编辑的最佳工具

    今天小编就为大家分享一篇关于Linux下截屏并编辑的最佳工具,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Vmware虚拟机中centOS7安装图文教程

    Vmware虚拟机中centOS7安装图文教程

    这篇文章主要为大家详细介绍了Vmware虚拟机中centOS7安装图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-03-03
  • 浅谈linux模拟多线程崩溃和多进程崩溃

    浅谈linux模拟多线程崩溃和多进程崩溃

    这篇文章主要介绍了浅谈linux模拟多线程崩溃和多进程崩溃,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06

最新评论