fsck 找不到 fsck.ntfs

fsck 找不到 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

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

fsck from util-linux 2.19.1
fsck: fsck.ntfs: not found
fsck: Error 2 while executing fsck.ntfs for /dev/sda1

我找不到 fsck.ntfs,而且command-not-found也无济于事。我怎样才能消除这个错误?

顺便说一句,我曾多次尝试启动 Windows (XP),以为 Windows 会修复文件系统。但显然 Windows 认为文件系统没有问题。奇怪的是全部NTFS 文件系统受到影响。

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

答案1

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

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

sudo ln -s /usr/bin/ntfsfix /sbin/fsck.ntfs
sudo ln -s /usr/bin/ntfsfix /sbin/fsck.ntfs-3g

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

答案2

我认为对于某些人来说应该注意的是,它ntfsfix被安装到/bin/而不是/usr/bin。因此

sudo ln -nsf /bin/ntfsfix /sbin/fsck.ntfs
sudo ln -nsf /bin/ntfsfix /sbin/fsck.ntfs-3g

如果你已经从/usr/bin/

sudo rm -f /sbin/fsck.ntfs
sudo rm -f /sbin/fsck.ntfs-3g

然后再次创建符号链接。

答案3

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

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

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

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

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

答案4

问题在于缺少指向/usr/bin/ntfsfix或 的符号链接/bin/ntfsfix。您可以使用以下命令创建所需的链接:

sudo ln -s $(which ntfsfix) /sbin/fsck.ntfs
sudo ln -s $(which ntfsfix) /sbin/fsck.ntfs-3

相关内容