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 

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

 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认为filesysystems就好了。 奇怪的是所有 NTFS文件系统都受到影响。

此外,我可以通过下载到恢复shell并发出mount -a来解决这个问题,但是对于我的同事来说,我需要无人值守的启动。

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 

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

我认为有些人可能会注意到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 

然后再次创建符号链接。

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

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

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

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

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

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

问题是缺少符号链接,无论是/usr/bin/ntfsfix还是/bin/ntfsfix 。 您可以使用以下命令创建所需的链接:

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

我不小心安装了ntfsprogs后遇到了同样的问题。 我认为依赖项中存在错误,因为在安装ntfsprogs之后,所有NTFS驱动器都开始以只读方式挂载。

当我转回ntfs-3gfsck.ntfs消失了。

所以:

 sudo apt-get install ntfsprogs Reading package lists... Done Building dependency tree Reading state information... Done The following packages will be REMOVED: ntfs-3g The following NEW packages will be installed: ntfsprogs 0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded. 

但:

 apt-cache showpkg ntfs-3g Package: ntfs-3g Versions: 1:2011.4.12AR.4-2ubuntu3 (/var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_oneiric_main_binary-amd64_Packages) (/var/lib/dpkg/status) ... Provides: 1:2011.4.12AR.4-2ubuntu3 - ntfsprogs 

我不确定那里应该是什么样的行为,但要注意它。

截至2015年1月,ubuntu 14.04软件包尚未提供

  1. sudo ln -s /bin/ntfsfix /sbin/fsck.ntfs
  2. sudo ln -s /bin/ntfsfix /sbin/fsck.ntfs-3g
  3. sudo apt-get install ntfsprogs

     Package ntfsprogs is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package 'ntfsprogs' has no installation candidate 

尝试使用此脚本强制重新映射损坏的扇区: https : //techoverflow.net/blog/2015/01/07/fixing-bad-blocks-on-hdds-using-fixhdd.py/

镜像: https : //github.com/unxed/fixhdd

此脚本每隔5秒查看系统日志中的i / o错误,并将零写入故障扇区以强制hdd控制器重新映射它们。 用法示例:sudo fixhdd.py –loop / dev / sda

 $ man fsck 

fsck – 检查并修复Linux文件系统

要在GNU / Linux上修复损坏的NTFS系统,您可以使用ntfsfix,它是ntfs-3g的一部分,如下所示:

 $ ntfsfix /dev/sdc1