使用‘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有任何疑问,请不要犹豫,在下面的评论部分提交。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ZaLou.Cn的支持。
- Docker Image 解决镜像无法删除的问题
- Docker Hub 仓库使用,及搭建 Docker Registry
- 基于Metronic的Bootstrap开发框架经验总结(3)--下拉列表Select2插件的使用
- Docker 容器操作
- Ubuntu 17.04 x64 安装 Docker CE 初窥 Dockerfile 部署 Nginx
- 基于Metronic的Bootstrap开发框架经验总结(4)--Bootstrap图标的提取和利用
- WebView 的 input 上传照片的兼容问题
- 在 Linux 上搭建Jekyll静态博客
- 基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用
- 网易严选 App 感受 Weex 开发
- MBR勒索木马再度来袭:GoldenEye分析
- Docker Compose 1.18.0 之服务编排详解
- 基于Metronic的Bootstrap开发框架经验总结(6)--对话框及提示框的处理和优化
- 基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux md5sum命令的使用方法
- linux文件管理命令实例分析【显示、查看、统计等】
- linux用户和组命令实例分析【切换、添加用户、权限控制等】
- Linux中Bash环境变量的配置方法
- Linux 中的防火墙 ufw 简介
- linux下如何实现快速拷贝大文件
- Linux硬链接与软链接原理及用法解析
- Linux通用java程序启动脚本代码实例
- 如何解决Ubuntu18.04循环登录/卡在开机界面/无法进入图形界面的问题
- CentOS7连接XShell与网络配置的方法
- 如何监控 Linux 服务器状态的方法
- Linux 文件系统的操作实现
- win10系统下安装superset的步骤
- Ubuntu下使用python3中的venv创建虚拟环境
- vsftpd配置虚拟用户登录的方法