fsck命令详解
本文出自 “airfish2000” 博客,更多命令查看博客:
http://airfish2000.blog.51cto.com/10829608/1880801
fsck命令
使用fsck命令可以检查文件系统并尝试修复系统的错误。
命令语法:
fsck [选项] [文件系统]
命令中各选项的含义如表所示。
表 fsck命令选项含义
|
选项 |
含义 |
|
-a |
自动修复文件系统,不询问任何问题 |
|
-A |
按照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统 |
|
-N |
不执行命令,仅列出实际执行会进行的动作 |
|
-P |
当搭配-A选项使用时,则会同时检查/目录的文件系统 |
|
-r |
采用交互模式,在执行修复时询问,让用户确认并决定处理方式 |
|
-R |
当使用-A选项检查所有文件系统的时候,跳过/目录的文件系统 |
|
-t <文件系统类型> |
指定要检查的文件系统类型 |
|
-C |
显示完整的检查进度 |
|
-y |
关闭互动模式 |
|
-c |
检查坏块,并将它们添加到坏块列表 |
|
-p |
自动修复文件系统错误 |
|
-f |
强制检查,即使文件系统被标记干净 |
例:检查磁盘分区/dev/sda5的文件系统。
[root@rhel ~]# fsck /dev/sda5
例:强制检查磁盘分区/dev/sda5的文件系统
[root@rhel~]# fsck -f /dev/sda5
fsckfrom util-linux-ng 2.17.2
e2fsck1.41.12 (17-May-2010)
第一步:检查inode,块,和大小
第二步:检查目录结构
第3步:检查目录连接性
Pass4: Checking reference counts
第5步:检查簇概要信息
/dev/sda5:12/6561792 files (0.0% non-contiguous), 459863/26215641 blocks
例:检查和修复磁盘分区/dev/sda5的文件系统,在执行修复时进行询问,让用户决定处理方式,显示详细修复过程。
[root@rhel ~]# fsck -rV -t ext4 /dev/sda5
例:检查磁盘分区/dev/sda5的文件系统,并显示完整的检查进度。
[root@rhel ~]# fsck -C -t ext4/dev/sda5
例:检查磁盘分区/dev/sda6的msdos文件系统的是否正常,如果有异常便自动修复。
[root@rhel ~]# fsck -t msdos -a/dev/sda6
功能说明:检查文件系统并尝试修复错误。
语 法:fsck [-aANPrRsTV][-t <文件系统类型>][文件系统...]
补充说明:当文件系统发生错误四化,可用fsck指令尝试加以修复。
注意:千万不能在运行的系统上面直接执行fsck,特别是RHEL6.0以下ext3的文件系统,否则100%损坏根文件系统,使用fsck -y /dev/sdb1 修复磁盘时,必须将sdb1分区umount掉
参 数:
-a 自动修复文件系统,不询问任何问题。
-A 依照/etc/fstab配置文件的内容,检查文件内所列的全部文件系统。
-N 不执行指令,仅列出实际执行会进行的动作。
-P 当搭配"-A"参数使用时,则会同时检查所有的文件系统。
-r 采用互动模式,在执行修复时询问问题,让用户得以确认并决定处理方式。
-R 当搭配"-A"参数使用时,则会略过/目录的文件系统不予检查。
-s 依序执行检查作业,而非同时执行。
-t<文件系统类型> 指定要检查的文件系统类型。
-T 执行fsck指令时,不显示标题信息。
-V 显示指令执行过程。
fdisk -l 查看设备号
运行 fsck -y /dev/sdb1 修复磁盘 -y参数为自动确认修复
这条命令也是用fsck修复磁盘是,常使用的命令
特别说明:在EXT3(实际上其他文件系统也类似)无法mount,或者提示fsck时,如果有重要数据,应该慎重对待,千万不可贸然执行"fsck -f -y "这样的自动修复功能。如果可能,先对故障区域做dd全镜像后再执行,或者以只读方式执行,并仔细看修复过程,如果提示大量inode错误、需要重建树、或大小不对等就不可再继续下去了。
Linux ext3 fsck一定要慎用
不管是哪种文件系统,其根本目的都是相同的:如何把文件存在系统给定的区域里,如何有效地管理文件的读与写。为实现这样的目的,驱动层需要完善、周密地应付附加在文件系统上的各种操作。这些操作通常不会是一条指令完成的,如果一个过程需要多条指令完成,在执行这些操作时,全部指令未完成的情况下产生中断,那这个文件系统便会出现一致性错误(或者叫连续性错误)。
为了保证尽可以少的出现一致性错误,现在主流的文件系统都会设计成日志型的。日志型文件系统的主要特点就是把一个操作的所有指令执行过程都另外缓冲下来,如果全部执行完成再清除日志标志,如果操作没有执行完成,可以在重新激活后通过日志回溯或继续完成。
EXT3的日志功能通过在EXT2的设计基础上增加一个特殊的文件(通常是8号节点文件),在这个文件中记录文件系统的操作过程。但EXT系统文件系统本身在节点、间接索引块、目录节点方面没有冗余保护,所以当文件系统除日志外的其他结构并不一致,却又要通过fsck来进行修复,这种一致性有可能将原本正确的结构也错误化。(就像原来是1+2=3,现在错成了1+3=3,也许改完后变成了1+3=4,就完全没办法还原成最早的1+2=3)。
数据恢复领域经常会遇到这类情况:一次RAID出故障后,下次启动系统提示做fsck,但做完后,也无法mount分区或者mount 分区后数据全是错的。需要对这类情况进行数据修复的难度是很大的,从一个完整的结构(fsck后实际上从系统角度看已经是完整的了)再构建另一个完全不同的结构要比修正一个错误的结构更难以下手。其实这类情况,很多是因为RAID5有早离线的盘加入了两个逻辑磁盘组,导致所有的数据流是以新+旧的方式交错组成的,自然会有太多错误。这时候如果做fsck后,有可能数据都无法恢复了。
所以,在EXT3(实际上其他文件系统也类似)无法mount,或者提示fsck时,如果有重要数据,应该慎重对待,千万不可贸然执行"fsck -f -y "这样的自动修复功能。如果可能,先对故障区域做dd全镜像后再执行,或者以只读方式执行,并仔细看修复过程,如果提示大量inode错误、需要重建树、或大小不对等就不可再继续下去了。
原文链接:https://blog.csdn.net/ggxiaobai/article/details/53505118
补充说明:当文件系统发生错误四化,可用fsck指令尝试加以修复。
注意:千万不能在运行的系统上面直接执行fsck,特别是RHEL6.0以下ext3的文件系统,
否则100%损坏根文件系统,使用fsck -y /dev/sdb1 修复磁盘时,必须将sdb1分区umount掉
运行 fsck -y /dev/sdb1 修复磁盘 -y参数为自动确认修复
这条命令也是用fsck修复磁盘是,常使用的命令
---------------------
作者:selina361
来源:CSDN
原文:https://blog.csdn.net/selina361/article/details/79784698
版权声明:本文为博主原创文章,转载请附上博文链接!
fsck命令详解的更多相关文章
- Linux fsck命令详解
fsck(file system check)用来检查和维护不一致的文件系统.若系统掉电或磁盘发生问题,可利用fsck命令对文件系统进行检查. fsck常见命令参数 -a:自动修复文件系统,不询问任何 ...
- 【转】centos关机与重启命令详解
连接:http://blog.csdn.net/jiangzhengdong/article/details/8036594 Linux centos关机与重启命令详解与实战 Linux centos ...
- Cent os关机与重启命令详解
Cent OS关机与重启命令详解 分类: Linux2012-10-02 14:06 5553人阅读 评论(0) 收藏 举报 centoslinuxsignallogin工作windows Linux ...
- Git命令详解
一个中文git手册:http://progit.org/book/zh/ 原文:http://blog.csdn.net/sunboy_2050/article/details/7529841 前面两 ...
- CentOS_关机与重启命令详解
Linux centos关机与重启命令详解 Linux centos重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shutdown -r 10 过 ...
- (转)tune2fs命令详解
tune2fs命令详解(原创) 原文:http://czmmiao.iteye.com/blog/1749232 tune2fs简介 tune2fs是调整和查看ext2/ext3文件系统的文件系统参数 ...
- centos、linux关机与重启命令详解
Linux centos关机与重启命令详解与实战 Linux centos重启命令: 1.reboot 2.shutdown -r now 立刻重启(root用户使用) 3.shutdown -r 1 ...
- centos关机与重启命令详解
Linux centos关机与重启命令详解与实战 Linux centos重启命令: 1.reboot 普通重启 2.shutdown -r now 立刻重启(root用户使用) 3.shutdo ...
- Git初探--笔记整理和Git命令详解
几个重要的概念 首先先明确几个概念: WorkPlace : 工作区 Index: 暂存区 Repository: 本地仓库/版本库 Remote: 远程仓库 当在Remote(如Github)上面c ...
随机推荐
- git的安装以及简单使用
前提准备: 1.已有github官网账号:(若无,注册流程百度一下) 2.git安装包,官网下载:https://git-scm.com/downloads.(顺带吐槽下,真是龟速下载.) 一.安装g ...
- Entity Framework Code First 遭遇主键自动生成问题
4.0后就没有去跟踪后面的版本了.现在直接开始用5.0没想到在做User的GURD时就遭遇insert不进数据问题. ISet<User>.Add(user);_context.SaveC ...
- 沟通修炼 I型沟通->U型沟通
沟通的目的 来源:邀请你看<01课 沟通管理:学会U型沟通,沟通效率翻倍>https://url.cn/51YaHrq?sf=uri 案例: 女友太困,不想早起去上班 你的回答? 正确做法 ...
- 各国货币json文件
[ {"countryname":"","name":"请选择","currency":" ...
- Python2.7在Windows下CMD编码为65001/utf-8时print报错[Errno 0]/[Errno 2]
使用python2.7处理unicode的字符串,环境变量已设置PYTHONIOENCODING为utf-8,cmd编码为utf-8时print unicode字符串会报错[Errno 0]或[Err ...
- 关于SignalR连接数量问题的记录
在使用SignalR的项目测试时遇到了一个问题,开发环境用的是Win10的操作系统,在VS2017调试环境中运行项目,连接多个SignalR客户端是没有问题的,例如,三个用户在一个聊天室同时聊天.但是 ...
- 20155234 2016-2017-2 《Java程序设计》第7周学习总结
20155234 2016-2017-2 <Java程序设计>第7周学习总结 教材学习内容总结 第十二章 Lambda Lambda表达式会使程序更加地简洁,在平行设计的时候,能够进行并行 ...
- c++ goto语句
#include <stdio.h> #include <math.h> int main(void) //main是程序入口 { int num; printf(" ...
- jQuery学习-尺寸坐标
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- tkinter的GUI设计:界面与逻辑分离(三)-- 多页面
知识点: 使用 tkinter.Frame.tkraise() 函数去提升当前 tkinter.Frame 的 z 轴顺序,使得多个 tkinter.Frame 的可见性得以切换 本文基于:win7 ...