fsck 工具 ——检查 与修复 Linux系统上的文件系统
可能由于昨天关电脑断电源的问题, 后来开机,直接出现如下界面:
心里想,不会吧,电脑怎么又出问题了吧(上周的时候,手贱,把装系统的硬盘分区设为了非活动分区,电脑就启动不来了,后来手动引导起来的;);
我仔细一个文字提示,需要让我在 initramfs 上手动运行一下 fsck 工具, 直接搜了一下什么是 fsck 工具,原来是用于检查与修复 文件系统的; 运行了以下命令,并且过程中的文字提示下,一直按 yes ,然后就修复成功了;
fsck -t ext4 /dev/sda1
既然如此,就有必要了解一下 这个工具的作用, 下面内容直接来自: man fsck 的中文版: (fsck 就是 filesystem chek 的缩写)
man fsck 的中文版:
FSCK(8) System Manager's Manual FSCK(8) NAME
fsck - 检查并修复Linux文件系统 总
fsck [ -sACVRTNP ] [ -t fstype ] [filesys ... ] [--] [ fs-specific-options ] 描
fsck 通常用来检查并适当修复一个或多个Linux文件系统. filesys 可以是一个设备名(例如: /dev/hdc1, /dev/sdb2), 一个挂载点(例如: /, /usr,
/home), 或一个ext2文件系统的磁盘标签, 也可以是UUID指定符(例如: UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd 或 LABEL=root). 通常,
fsck 会试着以并行的方式同时在不同的物理磁盘上运行文件系统检查,这样可以减少对所有文件系统进行检查的时间。 如果没有在命令行指定文件系统,并且没有指定 -A 选项, fsck 将默认顺序地检查 /etc/fstab 中登记的文件系统。这和使用 -As 选项是相同的。 fsck 退出的返回值是下列情况之和:
0 - 没有错误
1 - 文件系统有错但已修复
2 - 系统应当重启
4 - 文件系统错误没有修复
8 - 运行错误
16 - 用法或语法错误
32 - 用户撤销了fsck 操作
128 - 共享库出错
当检测多个文件系统时,退出的返回值是对每个文件系统检查的返回值按位或的结果。 实际上, fsck 只是Linux 中不同的文件系统检查器(fsck.fstype)的一个前端。首先,它在 /sbin 中搜索特定文件系统的检查器,然后在 /etc/fs
和 /etc 中搜索,最后在 PATH 环境变量中列出的路径中搜索。请查看特定文件系统的检查器的手册页来获取细节信息。 选
-s 顺序地进行 fsck 操作。如果你要检查多个文件系统,并且检查器运行在交互模式,这样作比较有好处。(注意: e2fsck(8)
默认是以交互方式运行的。要使 e2fsck(8) 以非交互方式运行,你必须指定 -p 和 -a 选项,如果你想要自动纠正错误,或 -n
选项,如果不想自动纠正错误。) -t fslist
指定要检查的文件系统的类型。当指定了 -A 标志时,只有 fslist 中列出的类型的文件系统会被检查。 fslist
参数是一个以逗号分隔的文件系统类型列表以及选项说明符。可以在这个以逗号分隔的列表的所有文件系统前面加上否定前缀 'no' 或 '!'
来使得只有没有列在 fslist 中的文件系统将被检查。如果并非 fslist 中列出的所有文件系统都加上了否定前缀,那么只有 fslist
中列出的文件系统将被检查。 选项说明符也可能包含在这个以逗号分隔的列表 fslist 中。它们的格式是 opts=fs-option 。如果出现了选项说明符,那么只有在
/etc/fstab 中它们的挂载选项字段中不包含 fs-option 的文件系统将被检查。 如果选项说明符有否定前缀,那么只有在 /etc/fstab
中它们的挂载选项字段中包含 fs-option 的文件系统将被检查。 例如,如果 fslist 中出现了 opts=ro 那么只有 /etc/fstab 中,挂载选项包含 ro 的文件系统将被检查。 为了和Mandrake 发行版兼容(它的启动脚本依赖于一个未经许可而对 fsck 程序用户接口作出的改变),如果 fslist 中有一个 loop
文件系统,它被视为指定了 opts=loop 作为 -t 选项的参数。 一般地,文件系统类型是在 /etc/fstab 中通过搜索与 filesys 相应的条目得到的。如果不能这样推知类型,并且 -t
选项只有一个文件系统参数, fsck 将使用指定的文件系统类型。如果不能使用这种类型,将使用默认的文件系统类型(当前是ext2)。 -A 搜索 /etc/fstab 文件,一次检查所有在文件中有定义的文件系统。这个选项典型地用在 /etc/rc
系统初始化文件中,而不使用多条命令来分别检查各独立的分区。 如果没有使用 -P 选项,则根文件系统将第一个被检查。之后,将按 /etc/fstab 文件中第六字段 fs_passno
指定的顺序对各文件系统进行检查。 fs_passno 值为0 的文件系统将被跳过,不会被检查。 fs_passno 值大于0
的文件系统将被按顺序检查, fs_passno 值最小的文件系统将被最先检查。
如果多个文件系统有相同的pass号,fsck将试着并行处理这些文件系统,尽管它不允许在同一个物理磁盘上同时运行多个文件系统检查程序。 因此, /etc/fstab 文件中的一个很普遍的设置是将root文件系统的 fs_passno 设为1,定义其它文件系统的 fs_passno 为2。这样就充许
fsck 程序自动以并行的方式运行文件系统检查,
如果这样有好处的话。系统管理员可能会出于某些原因而不希望并行运行多个文件系统检查--例如,如果内存不够,那么过多的换页会成为系统瓶颈。 -C 如果文件系统检查器支持的话(当前只有ext2),显示进度条。fsck
将管理各文件系统检查器,使得同一时间它们中只能有一个可以显示进度条。 -N 不执行,仅仅显示将执行的操作。 -P 当设置了 -A 标志时,将并行检查root文件系统和其他文件系统。这样是世界上最不安全的做法,因为如果root文件系统有问题, e2fsck(8)
这样的程序可执行文件将被破坏!这个选项是为不想把root 文件系统分得小而紧凑(这才是正确的做法)的系统管理员准备的。 -R 当使用 -A 标志来检查所有文件系统时,跳过root文件系统 (它可能已经被挂载为可读写)。 -T 启动时不显示标题。 -V 产生冗余输出,包含所有被执行的特定文件系统的命令。 fs-specific-options
fsck 不理解的选项被传递给特定文件系统的检查器。这些选项 决 以 -- 引导的选项和参数将被当作特定文件系统的选项传给它的检查器。 注意 fsck
没有为传递任意复杂的选项给特定文件系统的检查器而专门设计。如果你要做复杂的操作,请直接执行特定文件系统的检查器。如果你传给
fsck 极其复杂的选项和参数,它没有按照你想要的那样工作, 不
you shouldn't be doing with fsck. 当前,标准的特定文件系统的选项仍在改进之中。尽管不能保证,还是有下列这些选项可以被大部分文件系统检查器所支持。 -a 不提问,自动修复文件系统(请小心使用此选项)。注意 e2fsck(8) 支持 -a 仅仅是为了向前兼容。这个选项被映射到 e2fsck 的 -p
选项,那比较安全一点,不像大多数文件系统检查器支持的 -a 那样。 -r 交互式地修复文件系统错误(询问确认)。注意: 如果多个 fsck 在并行执行,这不是一个好想法。还要注意 e2fsck
的默认行为;它也只为了向前兼容才保留这个选项。
作者 AUTHOR
Theodore Ts'o (tytso@mit.edu)
文件 FILES
/etc/fstab
环境变量 ENVIRONMENT VARIABLES
fsck 程序的行为受下列环境变量影响:
FSCK_FORCE_ALL_PARALLEL
如果设置了这个环境变量, fsck
将试着并行运行所有指定的文件系统检查,不管这些文件系统是不是在同一设备上。(这对于RAID系统或者高端存储系统比如IBM或者EMC出售的那种很有用)
FSCK_MAX_INST
这个环境变量将限制同时可以运行的文件系统检查器的最大数量。这样使得拥有大量磁盘的系统避免 fsck
一次启动过多文件系统检查器,那样有可能耗尽机器的CPU和内存资源。如果值为0,可以孵化出没有限制的数量的进程,这是当前的默认值。将来
版本的
fsck 将试着根据收集操作系统的统计数据,自动判断应当启动多少文件系统检查。
PATH PATH 环境变量用来查找文件系统检查器。一些系统目录会被最先搜索: /sbin, /sbin/fs.d, /sbin/fs, /etc/fs, 和 /etc. 然后才搜索
PATH 环境变量中设置的目录集合。
FSTAB_FILE
这个环境变量允许系统管理员指定 /etc/fstab 文件的位置。它也为 fsck 的开发者做测试之用。
参见 SEE ALSO
fstab(5), mkfs(8), fsck.minix(8), fsck.ext2(8) 或者 e2fsck(8), fsck.xiafs(8).
[中文版维护人]
袁乙钧 <bbbush@163.com>
[中文版最新更新]
2003.11.01
《中国linux论坛man手册页翻译计划》:
http://cmpp.linuxforum.net
E2fsprogs version 1.34 July 2003 FSCK(8)
完;
fsck 工具 ——检查 与修复 Linux系统上的文件系统的更多相关文章
- 在Linux系统上利用Tomcat搭建测试环境
第一歩:查看Linux系统的IP地址. 输入命令:ifconfig 第二歩:WinSCP工具 1.下载WinSCP工具,便于文件直接从windows系统直接拖动到Linux系统中,图形化创建文件夹等. ...
- Redhat Linux 系统上安装JDK 1.7
作者:潇湘隐者 出处:http://www.cnblogs.com/kerrycode/ 步骤1:下载JDK 1.7 安装包 JDK 1.7 下载地址:http://www.oracle.com/t ...
- Linux系统上安装mysql数据库
一:下载并且上传安装包到linux系统上 1:下载地址:http://dev.mysql.com/downloads/mysql/ 2:通过LeapFtp工具,将windows上的mysql安装包拷贝 ...
- Redis进阶实践之二如何在Linux系统上安装安装Redis
一.引言 上一篇文章写了"如何安装VMware Pro虚拟机"和在虚拟机上安装Linux操作系统.那是第一步,有了Linux操作系统,我们才可以在该系统上安装Redis. ...
- Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务
一.引言 今天本来没有打算写这篇文章,当初我感觉使用这个工具应该很简单,下载的过程也不复杂,也没有打算记录下来.但是在使用的过程中还是出现了一些问题,为了给第一次使用Redis Desktop Man ...
- Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务(转载6)
Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务 一.引言 今天本来没有打算写这篇文章,但是,今天测试Redis的时候发现了两个问题 ...
- Redis进阶实践之二如何在Linux系统上安装安装Redis(转载)(2)
Redis进阶实践之二如何在Linux系统上安装安装Redis 一.引言 上一篇文章写了“如何安装VMware Pro虚拟机”和在虚拟机上安装Linux操作系统.那是第一步,有了Linux操作系统,我 ...
- 使用VS2017 编写Linux系统上的Opencv程序
背景 之前写图像算法的程序都是在window10下使用VS编写,VS这个IDE结合“ImageWatch.vsix“插件,用于调试opencv相关的图像算法程序十分方便.后因项目需要,需将相关程序移植 ...
- 孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务
孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第七天.成功在本地搭建 ...
随机推荐
- CFD使用者应当了解的一些事情
此文适合对象:CFD完全新手,没有流体力学基础,没有数值计算基础,甚至没有计算机基础. 作为一个CFD完全新手,你需要知道的几件事情 1.CFD是拿来用的,不是拿来学的 除非你是搞CFD理论的,比如一 ...
- C# 类型实例化的语法糖--unity下诡异结果
类型实例化语法糖就是如下的用法: public class Abc { public int ID { get; set; } public string Name { get; set; } pub ...
- 【内核】几个重要的linux内核文件
Preface 当用户编译一个linux内核代码后,会产生几个文件:vmlinz.initrd.img, 以及System.map,如果配置过grub引导管理器程序,会在/boot目录下看到这几个文件 ...
- Python(六)之文件对象
Python文件对象 明确文件系统: 获取文件对象: var_name = open(file_name[mode,[bufsize]]) 缓冲: 0:禁用 1:使用缓冲,只缓冲一行数据 2+:指定缓 ...
- idea Error:(1, 10) java: 需要class, interface或enum, 未结束的字符串文字,Error:(55, 136) java: 非法字符: \65533
1.未结束的字符串文字,Error:(55, 136) java: 非法字符: \65533 这些乱七吧八遭的错误如果很多的话 , 尝试 重新修改下生成目录 修改下语言等级 上述方法都不行 ,还报错 ...
- jetty 7.0 笔记
codehaus download:http://dist.codehaus.org/jetty/ 找到7.0 tar.gz 解压 拉取 Lib下jar 和 Lib--jsp下jar 代码同启动 ...
- Wireshark抓包工具HttpAnalyzerStdV7
http.request.full_uri contains "XXXserver/api/" http.host contains "XXX5.单位.com"
- java二维码的生成与解析代码
二维码,是一种采用黑白相间的平面几何图形通过相应的编码算法来记录文字.图片.网址等信息的条码图片.如下图 二维码的特点: 1. 高密度编码,信息容量大 可容纳多达1850个大写字母或2710个数字或 ...
- 解密SVM系列(二):SVM的理论基础
上节我们探讨了关于拉格朗日乘子和KKT条件.这为后面SVM求解奠定基础,本节希望通俗的细说一下原理部分. 一个简单的二分类问题例如以下图: 我们希望找到一个决策面使得两类分开.这个决策面一般表示就是W ...
- CACTI命令行添加DEVICE/GRAPH/TREE
有时要加入大量的机器到 Cacti ,直接修改 Cacti 还是很复杂的.所以最好还是通过他本身提供的工具来实现. Cacti 早就为我们想到过这个问题了.这些工具就在 cacti/cli 目 ...