无法使用 fsck 解决数据损坏警告

Que*_*low 19 linux partition corruption fsck fat32

为了为我的文件系统创建一个连续的空间来增长,我在 sda1 处创建了一个新的 EFI 系统分区,以便我可以从 sda5 处的当前分区迁移它。除了警告说:

内核:FAT-fs (sda1):卷未正确卸载。某些数据可能已损坏。请运行 fsck。

当我第一次创建 EFI 分区时,我没有注意到已经存在两天的警告。我卸载了文件系统并按如下方式执行了文件系统检查:

# umount /dev/sda1
# fsck -V /dev/sda1
fsck from util-linux 2.24
[/sbin/fsck.vfat (1) -- /boot/efi] fsck.vfat /dev/sda1 
fsck.fat 3.0.24 (2013-11-23)
0x25: Dirty bit is set. Fs was not properly unmounted and some data may be corrupt.
1) Remove dirty bit
2) No action
? 1
Leaving filesystem unchanged.
/dev/sda1: 14 files, 2435/51145 clusters
Run Code Online (Sandbox Code Playgroud)

我认为去除脏位可以解决这个问题。但它没有。实际应该怎么做?

Que*_*low 28

这是愚蠢的。我发现自己又在回答我自己的问题。它说,

保持文件系统不变。

暗示什么都没有改变。这实际上意味着在 fsck 提示中输入1并按之后不起作用。无论如何,以下确实有效:enter

# fsck.vfat -v -a -w /dev/sda1
Run Code Online (Sandbox Code Playgroud)

上述命令自动将更改写入磁盘。如果有人能告诉我这是一个错误fsck还是由于其他原因,那就太好了。

  • `fsck.vfat` 的手册页解释说它只做一个试运行并且没有任何改变,除非你提供 `-a` 或 `-r` 选项。其他文件系统类型的检查工具也是如此,但具体选项可能会有所不同。 (5认同)
  • @MichaelHampton,确实如此。偷偷摸摸的脚注说“注意:如果 -a 和 -r 不存在,则只检查文件系统,而不修复。”。那些看着 `man fsck` 的人永远不会发现 :p (4认同)
  • @MichaelHampton,是的,但没有提到空运行。 (2认同)