问题描述
在我从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
按照this answer中的建议,我从手动恢复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
的链接,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
的相应行中有第六个字段,其值为1
或2
。
默认情况下,ntfsfix
未链接到fsck.ntfs
,它仅提供有限的检查功能,如手册页中所述:
ntfsfix is a utility that fixes some common NTFS problems. ntfsfix is NOT a Linux version of chkdsk. It only repairs some fundamental NTFS inconsistencies, resets the NTFS journal file and schedules an NTFS consistency check for the first boot into Windows.
常见的解决方案不是创建符号链接,而是删除或设置为0
/etc/fstab
中的第六个字段。
第四种办法
Micro的answer为我工作,但我的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