fsck

检查或者修复指定的文件系统,可以是设备名、挂载点,还可以是一个ext2的label,或者是一个UUID。此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

1、语法

      fsck [选项]  –t  systype device

      fsck [-sAVRTMNP]  [-C [fd]]  [-t fstype]  [filesys...] [--]  [fs-specific-options]

 

2、选项列表

选项

说明

-s

检查的序列。如果有多个文件系统需要检查,那么按照顺序来操作。注意:e2fsck(8)默认以交互模式运行。要使e2fsck(8)在非交互式模式下运行,必须指定-p或-a选项,如果希望自动更正错误,则必须指定-n选项。

-t fslist

指定要检查的文件系统的类型。当指定-A标志时,只检查与fslist匹配的文件系统。fslist参数是以逗号分隔的文件系统和选项说明符列表。这个逗号分隔的列表中的所有文件系统都可能以否定操作符“no”或“!”作为前缀,该操作符要求只检查fslist中未列出的文件系统。如果fslist中的所有文件系统都不以否定操作符作为前缀,那么将只检查fslist中列出的文件系统。

选项说明符可能包含在逗号分隔的fslist中。它们必须具有“opts=s-option”的格式。如果存在选项说明符,那么只有在“/etc/fstat”的挂载选项字段中包含s-option的文件系统才会被检查。如果选项说明符以否定操作符为前缀,那么只有那些没有fs-option的文件系统才会被选中。在它们的挂载选项字段“/etc/ffstab中”将被检查。例如,如果“opts=ro”出现在fslist中,那么只会检查“/etc/fstab”中列出的带有ro选项的文件系统。

为了兼容Mandrake发行版,它的引导脚本依赖于对fsck程序的未经授权的ui更改,如果在fslist中找到了一个文件系统类型的循环,就会将它视为将opts=loop指定为-t选项的参数。

通常,文件系统类型是通过在“/etc/fstab”文件中搜索文件并使用相应的条目来推断的。如果无法推断该类型,并且只有一个文件系统作为-t选项的参数,fsck将使用指定的文件系统类型。如果该类型不可用,则使用默认的文件系统类型(当前Ext 2)。

-A

遍历“/etc/fstab”文件,并尝试在一次运行中检查所有文件系统。此选项通常来自“/etc/rc”系统初始化文件,而不是用于检查单个文件系统的多个命令。除非指定了-P选项(见下文),否则将首先检查根文件系统。之后,将按照“/etc/fstab”文件中fs_passno(第六个)字段指定的顺序签入文件系统。跳过fs_passno值为0的文件系统,将检查fs_passno值大于零的文件系统。如果有多个文件系统具有相同的通行号,fsck将尝试并行地检查它们,尽管它将避免在同一个物理磁盘上运行多个文件系统检查。

fsck不与任何其他设备并行检查堆叠设备。因此,在“/etc/fstab“文件中非常常见的配置是将根文件系统设置为fs_passno值为1,并将所有其他文件系统设置为fs_passno值为2。如果由于某种原因需要避免多个文件系统检查并行运行,则选择不使用此配置。例如,如果有问题的机器内存不足,因此过多的分页会引起关注。

fsck通常不会在调用文件系统的检查器之前检查设备是否实际存在。因此,如果文件系统特定的检查器返回致命错误,则不存在的设备可能导致系统在引导期间进入文件系统修复模式。“/etc/fstab”挂载选项不会失败,可以让fsck跳过不存在的设备。fsck还跳过具有特殊文件系统类型AUTO的不存在设备。

-C [fs]

显示检查的进度。显示支持这些文件系统检查程序的完成/进度条(目前只用于ext 2和ext 3)。Fsck将管理文件系统检查器,以便它们中一次只显示一个进度条。gui前端可以指定文件描述符fd,在这种情况下,进度条信息将发送到该文件描述符。

-M

不要检查已安装的文件系统,并返回安装文件系统的退出代码0。

-N

不执行检查操作,只是演示一下

-P

设置-A标志时,与其他文件系统并行检查根文件系统。这不是世界上最安全的事情,因为如果根文件系统怀疑e2fsck(8)可执行文件可能被破坏了!这个选项主要是为那些不希望将根文件系统重新划分为小型和紧凑(这是真正正确的解决方案)的系统管理员提供的。

-R

当使用-a标志检查所有文件系统时,跳过根文件系统

-T

启动时不要显示标题

-V

显示执行过程

fs-specific-options

fsck不理解的选项被传递给特定于文件系统的检查器。这些参数不能使用参数,因为fsck无法正确猜测哪些参数可以选择选项,哪些参数不能。后面的选项和参数被视为要传递给文件系统特定检查器的文件系统特定选项。

请注意,fsck的设计并不是为了将任意复杂的选项传递给特定于文件系统的检查器。如果您正在做一些复杂的事情,请直接执行特定于文件系统的检查程序。如果您传递fsck一些非常复杂的选项和参数,并且它没有按照您的预期执行,那么就不要将它报告为bug。你几乎肯定在做一些不该用fsck做的事。

不同文件系统特定fsck的选项没有标准化。如果有疑问,请查阅文件系统特定检查器的手册页。虽然没有保证,但大多数文件系统检查程序都支持下列选项

-a

自动修复文件系统。请注意e2fsck(8)只支持向后兼容。此选项映射到e2fsck的-p选项,与某些文件系统检查器支持的-a选项不同,该选项是安全的。

-n

对于某些特定于文件系统的检查程序,-n选项将导致fs特定的fsck避免试图修复任何问题,但只需将此类问题报告给stdout。然而,并不是所有特定于文件系统的检查程序都是如此。特别是,如果给定该选项,fsck.reiserfs(8)将不会报告任何损坏。fsck.minix(8)根本不支持-n选项。

-r

以交互方式修复文件系统(请求确认)。注意:如果多个fsck并行运行,使用此选项通常是个坏主意。还请注意,这是e2fsck的默认行为;它仅出于向后兼容性的原因支持此选项。

-y

对于某些特定于文件系统的检查程序,-y选项将导致fs特定的fsck总是试图自动修复任何检测到的文件系统损坏。有时专家可能能够更好地手动驱动fsck。请注意,并非所有特定于文件系统的检查程序都实现了此选项。特别是fsck.minix(8)和fsck.lamfs(8)不支持-y选项。

3、说明

如果命令行上没有指定任何文件系统,并且没有指定-A选项,fsck将默认为串行地检查/etc/fstat中的文件系统。fsck指令可以有以下的返回值:

0,没有错误。

1,文件系统错误更正。

2,系统应该重启。

4,系统错误没有更正。

8,操作错误。

16,语法错误。

32,用户取消fsck。

128,共享库错误。

检查多个文件系统时返回的退出代码是所检查的每个文件系统的退出代码的逐位OR。

实际上,fsck只是linux下可用的各种文件系统检查器(fsck.fstype)的前端。文件系统特定的检查器首先在/sbin中搜索,然后在/etc/fs和/etc中搜索,最后在PATH环境变量中列出的目录中搜索。

4、环境变量

fsck的执行收到以下环境变量的影响:

1)FSCK_FORCE_ALL_PARALLEL,如果设置了此环境变量,fsck将尝试并行运行所有指定的文件系统,而不管文件系统是否位于同一设备上。(这对于RAID系统或高端存储系统(如IBM或EMC等公司销售的存储系统)非常有用。)请注意,fs_passno值仍被使用。

2)FSCK_MAX_INST,这个环境变量将限制一次运行的文件系统检查器的最大数量。这允许具有大量磁盘的配置避免fsck一次启动过多的文件系统检查器,这可能会使系统上可用的CPU和内存资源超载。为零,则可以生成无限数量的进程。这是当前的默认情况,但未来版本的fsck可能会尝试根据从操作系统收集会计数据自动确定可以运行多少个文件系统检查。

3)PATH,PATH环境变量用于查找文件系统检查器,首先搜索一组系统目录:/sbin、/sbin/fs.d、/sbin/fs、/etc/fs和/etc/fs,然后搜索路径环境中的一组目录。

4)FSTAB_FILE,这个环境变量允许系统管理员覆盖/etc/fstab文件的标准位置,对于正在测试fsck的开发人员也很有用。

5、实例

检查sdb4

 [root@localhost ~]# [root@localhost ~]# fsck -t swap /dev/sdb4

fsck from util-linux-ng 2.17.2

e2fsck 1.41.12 (17-May-2010)

/dev/sdb4 was not cleanly unmounted, 强制检查.

Resize inode not valid.  重建<y>?

 

第一步检查inode,,和大小

第二步检查目录结构

3检查目录连接性

Pass 4: Checking reference counts

5检查簇概要信息

Free s count wrong for  #0 (7854, counted=7855).

处理<y>? 

 

Free s count wrong (15722, counted=15723).

处理<y>? 

 

/dev/sdb4: ***** 文件系统已修改*****

/dev/sdb4: 11/4096 files (0.0% non-contiguous), 661/16384 blocks

[root@localhost ~]# 

Linux基础命令---fsck的更多相关文章

  1. Linux基础命令小结(超全!!)

    Linux目录结构 1.bin 存放经常使用的指令比如ll,cp 2.sbin 系统管理员使用的系统管理指令 3.home 存放普通用户的住目录 4.root 系统管理员的用户主目录 5.boot 存 ...

  2. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  3. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  4. linux基础命令学习笔记(二)

    linux基础命令学习笔记(二) 1.kill :终止进程  kill pid (唯一标示一个进程) kill -9  强制终止  kill -15 命令未结束不能终止 # ps aux 查看所有进程 ...

  5. 2.Linux基础命令

    linux内一切皆文件,没有文件夹只有目录,目录也是一种文件 1.一些常用按键: 将鼠标的光标从虚拟机里切换回来:Ctrl+Alt 拖动Ubuntu内的对话框:Alt键+鼠标左键拖动 清屏:Ctrl+ ...

  6. linux基础命令一

    linux基础命令一 1.date命令 date命令介绍:显示或者设置系统日期 date命令的语法: 显示日期:date  [options...]  [+FORMAT] FORMAT:为显示日期的格 ...

  7. linux基础命令:

    linux基础命令: 显示 echo 输出我写的内容 ls 查看当前目录的文件 pwd 查看当前目录 ifconfig 查看网卡信息 grep 过滤 -v 取反 -n man 查看命令的帮助信息 md ...

  8. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

  9. Linux基础命令-文件与目录

    Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...

随机推荐

  1. 利用反射生成JDK动态代理

    利用反射生成JDK动态代理 在Java的java.lang.reflect包下提供了一个Proxy类和一个InvocationHandler接口,通过使用这个类和接口可以生成JDK动态代理类和动态代理 ...

  2. sublime text 3 常见问题总结 pyv8

    安装 这个过程下一步下一步就行 激活 在help菜单中选择输入验证码,如下整个都是: ----- BEGIN LICENSE ----- Andrew Weber Single User Licens ...

  3. jupyter notebook快捷键速查手册

    jupyter notebook快捷键速查手册 Enter : 转入编辑模式 Shift-Enter : 运行本单元,选中下个单元 Ctrl-Enter : 运行本单元 Alt-Enter : 运行本 ...

  4. hihocoder 1322 - 树结构判定 - [hiho一下161周][模板题/水题]

    题目链接:http://hihocoder.com/problemset/problem/1322 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个包含 N 个顶 ...

  5. python数据结构之动态数组

    数组列表:动态数组(Array List) 简介: 最基础简单的数据结构.最大的优点就是支持随机访问(O(1)),但是增加和删除操作效率就低一些(平均时间复杂度O(n)) 动态数组也称数组列表,在py ...

  6. java---rce

    http://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-app ...

  7. SRM 619

    easy:  假设每堆石头不全为1,那么每次我们总能取一堆石头分给另外两堆,堆数-1.而且新的局面肯定有一堆的个数大于1. 于是,假设每堆石头数都为1 -> lose.否则的话推断堆数奇偶就可以 ...

  8. Java-idea-设置类头注释和方法注释

    一.文件级别的注释         主要是通过File-->Setting-->Editor→File and Code Template中来设置 可以再右侧include中设置File ...

  9. React Native开发之IDE(Atom+Nuclide)安装,运行,调试

    版权声明:本文为博主原创文章,如需转载请注明出处   目录(?)[-] 前言 MacWindowsLinux 准备工作 安装Atom 安装Nuclide 新建一个工程 自动补全 类型标注 语法检查 跳 ...

  10. POJ:Dungeon Master(三维bfs模板题)

    Dungeon Master Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16748   Accepted: 6522 D ...