在我从 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 世界。
小智 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)
然后再次创建符号链接。
如果您在启动时自动挂载了 NTFS 分区,唯一的原因可能是您手动或通过某些工具将其添加到/etc/fstab(不考虑 WUBI)。
如果系统在启动时尝试检查分区,则意味着在相应的行中/etc/fstab有第六个字段,其值为1或2。
ntfsfix默认情况下不链接到fsck.ntfs,它只提供有限的检查功能,如手册页中所述:
ntfsfix 是一个实用程序,可以修复一些常见的 NTFS 问题。ntfsfix 不是 chkdsk 的 Linux 版本。它只修复一些基本的 NTFS 不一致,重置 NTFS 日志文件并为首次启动到 Windows 安排 NTFS 一致性检查。
常见的解决方案是不创建符号链接,但删除或设置为0在第六字段/etc/fstab。