我告诉 fsck 修复 USB 记忆棒,它说“保持文件系统不变”。

我告诉 fsck 修复 USB 记忆棒,它说“保持文件系统不变”。

所以我运行 fsck,它报告

FATs differ but appear to be intact. Use which FAT ?
1) Use first FAT
2) Use second FAT

选择其中任何一个都会给出一长串错误,例如

Cluster 1471730 out of range (164977891 > 1980013). Setting to EOF.
Cluster 1471732 out of range (252397720 > 1980013). Setting to EOF.
Cluster 1471734 out of range (18601458 > 1980013). Setting to EOF.

然后它说,

Reclaimed 93886 unused clusters (769114112 bytes).
Free cluster summary wrong (1034047 vs. really 1221912)
1) Correct
2) Don't correct

如果我选择(1),它就会直接退出,不采取任何行动:

Leaving file system unchanged.
/dev/sdb1: 53 files, 758100/1980012 clusters

那么我该如何解决这个问题?

答案1

卸载 USB 卷后,您需要使用带有“-w”开关的 fsck,这会强制 fsck 立即写入更改。请注意,“-w”需要“-a”(自动模式)或“-r”(交互模式)。

答案2

man fsck.vfat 说:

注意:如果 -a 和 -r 不存在,则仅检查文件系统,但不修复。

因此,要让它真正写入您的更改,请使用 -a 或 -r。-w 选项会修改这两个选项的行为。

答案3

查看 fsck 手册页。也许可以尝试 -r 选项,或者保留 -n(如果你使用了它)。

另一种可能性是分区已完全填满。请检查这一点。

顺便说一句,发布您使用的确切命令将会非常有帮助。

答案4

我遇到了同样的问题。我最终通过直接使用 dosfsck 命令而不是使用 fsck(它只是各种 fsck 工具的包装器)让它工作。我猜当 fsck 调用 dosfsck 时,它会添加一些选项,导致它无法正常工作。

相关内容