我如何让 fsck 修复其报告的错误?

我如何让 fsck 修复其报告的错误?

在我的带有 SSD 的笔记本电脑上,执行以下命令:

sudo fsck -f -E fragcheck /dev/sda1

导致出现数百条与此类似的消息(这是一条精确的消息,其他消息的编号不同):

3023363(f): expecting 5845074 actual extent phys 11049254 log 8 len 2

我的期望是 fsck 应该可以纠正错误。但是当我再次执行该命令时,仍然报告相同的错误。

  1. 需要哪些额外的开关来让 fsck 纠正这些错误?
  2. 这个错误到底是什么意思(我正在寻找比预期一个数字更具信息量的东西,但却找到了另一个数字)?
  3. 是否有任何文档描述此特定错误消息?

答案1

需要哪些额外的开关来让 fsck 纠正这些错误?

我不知道您对-f和有何期望-E,但如果您不要求他修复,fsck 不会修复但会报告。有两种方法可以修复文件系统:

  • -a:这将修复自动发现的错误。

    自动修复文件系统,不会有任何疑问(请谨慎使用此选项)。请注意,e2fsck(8) 仅支持 -a 以实现向后兼容。此选项映射到 e2fsck 的 -p 选项,该选项可以安全使用,与某些文件系统检查器支持的 -a 选项不同。

  • -r:这将在修复错误之前进行询问。

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

  • 还有-y但不推荐:

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


  • 这个错误到底是什么意思(我正在寻找比预期一个数字更具信息量的东西,但却找到了另一个数字)?

  • 是否有任何文档描述此特定错误消息?

实际上,fsck 只是 Linux 下各种文件系统检查程序 ( ) 的前端fsck.fstype。首先在 /sbin 中搜索文件系统特定的检查程序,然后在 /etc/fs 和 /etc 中搜索,最后在 PATH 环境变量中列出的目录中搜索。 请参阅文件系统特定的检查器手册页以获取更多详细信息。因此,为了让我们知道,您必须告诉我们您正在检查什么文件系统。

相关内容