fsck 找不到 fsck.ntfs

Sco*_*nce 33 fsck ntfs

在我从 Natty 升级到 Oneiric 的几台机器上,我每次启动都会出错(每个 NTFS 分区一个):

Serious errors were found while checking the disk drive for /windows/c.

Press I to ignore, S to skip mounting, or M for manual recovery
Run Code Online (Sandbox Code Playgroud)

按照此答案中的建议,我fsck从手动恢复 shell 运行。我得到了这个输出:

fsck from util-linux 2.19.1
fsck: fsck.ntfs: not found
fsck: Error 2 while executing fsck.ntfs for /dev/sda1
Run Code Online (Sandbox Code Playgroud)

我找不到 fsck.ntfs,command-not-found也没有帮助。我怎样才能让这个错误消失?

顺便说一句,我试过多次启动到 Windows (XP),认为 Windows 会修复文件系统。但显然 Windows 认为文件系统很好。奇怪的是所有NTFS 文件系统都受到影响。

此外,我可以通过进入恢复 shell 并发出 来解决这个问题mount -a,但为了我的同事,我需要无人值守启动。

Mic*_*cro 36

fsck.ntfs通常只是一个链接,ntfsfix该链接是ntfsprogs标准安装 Ubuntu 中已经可用的软件包中的实用程序。

你可以在 fsck.ntfs 和 ntfsfix 之间建立一个符号链接来永久解决这个问题:

sudo ln -s /usr/bin/ntfsfix /sbin/fsck.ntfs
sudo ln -s /usr/bin/ntfsfix /sbin/fsck.ntfs-3g
Run Code Online (Sandbox Code Playgroud)

请记住,此实用程序来自逆向工程过程,并不是管理文件系统的最佳选择,NTFS 文件系统不属于 GNU/linux 世界。

  • 谢谢。我设置了符号链接(应该已经完成​​了)并且问题解决了。唯一剩下的问题是:为什么首先缺少符号链接?fsck 显然在启动时运行。因此,如果它试图检查它无法处理的文件系统,则它是一个错误。分区是 - 而且一直 - 非常好。显然,这只是一次失败的例行检查。 (4认同)

小智 20

我认为对于某些ntfsfix安装到/bin/而不是/usr/bin. 所以

sudo ln -nsf /bin/ntfsfix /sbin/fsck.ntfs
sudo ln -nsf /bin/ntfsfix /sbin/fsck.ntfs-3g
Run Code Online (Sandbox Code Playgroud)

如果您已经从 /usr/bin/

sudo rm -f /sbin/fsck.ntfs
sudo rm -f /sbin/fsck.ntfs-3g
Run Code Online (Sandbox Code Playgroud)

然后再次创建符号链接。


enz*_*tib 5

如果您在启动时自动挂载了 NTFS 分区,唯一的原因可能是您手动或通过某些工具将其添加到/etc/fstab(不考虑 WUBI)。

如果系统在启动时尝试检查分区,则意味着在相应的行中/etc/fstab有第六个字段,其值为12

ntfsfix默认情况下不链接到fsck.ntfs,它只提供有限的检查功能,如手册页中所述:

ntfsfix 是一个实用程序,可以修复一些常见的 NTFS 问题。ntfsfix 不是 chkdsk 的 Linux 版本。它只修复一些基本的 NTFS 不一致,重置 NTFS 日志文件并为首次启动到 Windows 安排 NTFS 一致性检查。

常见的解决方案是不创建符号链接,但删除或设置为0在第六字段/etc/fstab

  • 实际上,这并不完全准确。在安装过程中,现有的 NTFS 分区会自动添加到 fstab,无需手动编辑 fstab。因此,它们应该以理智的方式添加。我不在乎他们是否被检查。我只是不希望在启动时显示不必要的错误消息,而实际上没有错误。 (2认同)

Rob*_*ort 5

Micro 的回答对我有用,但是我的 11.10(从 11.04 升级)没有 ntfsprogs。' sudo apt-get install ntfsprogs' 解决了这个问题,然后链接建议工作正常。