e2fsck 中文手册

发布于 2021-10-29 11:15:59 字数 3597 浏览 1416 评论 0

原文:http://www.jinbuguo.com/man/e2fsck.html

名称

e2fsck - 检查 Linux ext2/ext3/ext4 文件系统

语法

e2fsck [ -pcnydfkvtDFV ] [ -b superblock ] [ -B blocksize ] [ -l|-L bad_blocks_file ]
[ -C fd ] [ -j external-journal ] [ -E extended_options ] device

描述

e2fsck 用于检查 ext2/ext3/ext4 系列文件系统。对于带有日志的 ext3/ext4 文件系统来说,如果系统的不恰当关闭(例如掉电)并未造成文件系统错误,在重放日志中的已提交事物之后,文件系统就可以被标记为"正确无误"了。因此,对于日志型文件系统,e2fsck 通常只需要重放日志后退出即可。

不过在少数情况下,超级块会明确指示需要 e2fsck 做更深入的检查。

device 是将要被检查的文件系统所在的设备(例如 /dev/sdc1)

一般说来在已挂载的文件系统上运行 e2fsck 是危险的,唯一的例外是使用了 -n 且没有使用 -c, -l, -L 选项的时候。
不过,即便如此,此时的检查结果也是不可信的。所以归根结底一句话:不要在已挂载的分区上使用 e2fsck 。
当 e2fsck 询问是否要对一个已挂载的文件系统进行检查时,你应当总是回答"no",除非你是文件系统专家。

选项

-b superblock

使用这里指定的 superblock 代替默认的超级块。一般用于主超级块被破坏的场合。
备份超级块的位置取决于文件系统的块尺寸。块尺寸为 1k 的,备份超级块位于 block 8193 ;
块尺寸为 2k 的,备份超级块位于 block 16384 ;块尺寸为 4k 的,备份超级块位于 block 32768 。

可以通过 -n 选项打印出超级块的位置,从而确定是否存在额外的备份超级块。
注意:-b 选项的参数必须精确符合 -n 选项打印出的超级块位置。

如果指定了替代超级块并且文件系统并未处于只读状态,e2fsck 能够确保在检查完成之后,正确更新主超级块。

-B blocksize

通常,e2fsck 将会自己尝试确定超级块的尺寸,但偶尔会出错。这个选项可以用来强制指定超级块的尺寸。
如果未找到超级块,e2fsck 将会返回一个错误信号。

-c 要求 e2fsck 使用 badblocks(8) 工具来进行一次只读扫描,并将发现的坏块标记为不可用状态。
如果这个选项被指定了两次,那么将使用"读-写"模式进行坏块测试。

-C fd 要求 e2fsck 将进度信息写入文件描述符(fd),主要用于调用 e2fsck 的程序监视检查进度。
如果 fd 是个负数,那么将使用其绝对值并且隐去进度信息。随后可以再向 e2fsck 进程发送 SIGUSR1 信号开启。
如果 fd 是 0 ,那么 e2fsck 将会打印出进度条,前提是 e2fsck 必须运行在可视化的控制台或终端上。

-d 打印调试输出。仅供调试 e2fsck 自身之用。

-D 对文件系统上的所有目录进行最优化:或者对这些目录进行重新索引,或者排序并压缩小型目录,或使用传统的线性目录。

即使没有使用 -D 选项,e2fsck 有时候也会优化某些目录。-D 的目的在于强制优化所有目录。
不过在实践中,很少需要使用此选项。

-D 选项还会检测同目录下重名的目录项,这个动作在未指定 -D 的情况下一般是不执行的(因为比较耗时)。

-E extended_options

设置 e2fsck 的扩展选项。这些扩展选项之间使用逗号分隔,并且其中的选项还可以使用等号(=)接受参数。
目前可以接受的选项如下:

ea_ver=extended_attribute_version

指定文件系统的扩展属性块格式版本。可选值是1或2(默认)。

journal_only

除了重放日志之外,不进行任何进一步的检查。

fragcheck

在 pass 1 阶段,打印出文件系统上所有文件碎片的详细报告。

discard

如果在完成全部检查之后(pass 5)没有发现任何错误,那么就释放所有无用的文件块和inode块。
这对于SSD(固态硬盘)和sparse/thin-provision设备(CONFIG_DM_THIN_PROVISIONING)很有益处。
由于 e2fsck 并不总能返现所有问题,所以使用此选项有可能会让你失去将来手动恢复数据的机会。

nodiscard

与 discard 选项相反,不释放任何无用的文件块和inode块。这是默认值。

-f 即使文件系统看上去没有问题也强制检查一遍。

-F 在开始检查之前强制刷新该设备的缓冲区。仅对 e2fsck 耗时测试(time trial)时才有实际意义。

-j external-journal
设置存放此文件系统外部日志的路径。

-k 与 -c 选项连用,以保留坏块列表中所有的坏块,并且将 badblocks(8) 工具发现的所有坏块都添加到坏块列表中去。

-l filename

将 filename 中列出的块编号添加到文件系统的坏块列表中去,格式与 badblocks(8) 的输出格式相同。
注意,因为块编号(block number)与文件系统的块尺寸(blocksize)紧密相关,所以,必须告诉 badblocks(8) 准确的文件系统块尺寸,才能得到正确的块编号。
建议将此选项与 -c 选项连用,因为这可以确保向 badblocks(8) 传递正确的参数。

-L filename

用 filename 中列出的块编号覆盖文件系统的坏块列表。
此选项与 -l 类似,不同之处在于执行的是覆盖操作而不是追加操作。

-n 以只读方式打开文件系统,并且强制对所有问题的回答都是'no',从而允许 e2fsck 以非交互方式操作。
该选项不能与 -p 或 -y 选项同时使用。

-p 自动修复所有发现的可安全修复的错误。
如果某个错误必须要人工干预才能修复,那么 e2fsck 将打印出问题的详细描述,
并在退出码中包含数字4的比特位(参见"退出代码"小节)。
这个选项常用于系统的启动脚本,并且不能与 -n 或 -y 选项一起使用。

-t 打印出 e2fsck 执行时间统计信息。如果连续使用两次,则会为每个阶段(pass)都显示执行时间统计信息。

-v 啰嗦模式。也就是打印出检查过程的详细信息。

-V 显示版本信息后退出

-y 对所有问题都强制使用'yes'进行回答,这样就允许 e2fsck 以非交互方式操作。
该选项不能与 -p 或 -y 选项同时使用。

退出代码

退出代码可以是下面的数字的比特位叠加

  • 0 - 没有错误
  • 1 - 文件系统错误已被纠正
  • 2 - 文件系统错误已被纠正,但必须重启系统
  • 4 - 有未修正的文件系统错误
  • 8 - 操作错误
  • 16 - 用法或者语法错误
  • 32 - 被用户中途取消操作
  • 128 - 共享库错误

信号

可以向 e2fsck 发送的信号及其效果。

SIGUSR1

要求 e2fsck 开始显示进度条或输出进度信息(参见 -C 选项)

SIGUSR2

要求 e2fsck 停止显示进度条或输出进度信息(参见 -C 选项)

参见

e2fsck.conf(5), badblocks(8), dumpe2fs(8), debugfs(8), e2image(8), mke2fs(8), tune2fs(8)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

謌踐踏愛綪

文章 0 评论 0

开始看清了

文章 0 评论 0

高速公鹿

文章 0 评论 0

alipaysp_PLnULTzf66

文章 0 评论 0

热情消退

文章 0 评论 0

白色月光

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文