我有一个 NTFS 分区,在 Windows 和 Linux 之间共享。此分区包含我的 Linux 主文件夹,因此,我必须能够以读写模式挂载它,并且必须将其挂载前我登入。
我已经禁用了 Windows 快速启动,这样它就不会让分区处于“不安全状态”,Linux 要么以只读模式挂载,要么根本不挂载(并显示一条错误消息像这样)。但是,Windows 经常崩溃,这也导致分区处于不安全状态。
我或多或少成功地解决了ntfsfix
这个问题,但这似乎不是一个真正的解决方案,因为今天它破坏了我的部分文件。([errno 5] input/output error
当我尝试访问它们时导致错误。)
我目前正在使用此行安装分区/etc/fstab
:
UUID=78C806C74DE61D21 /mnt/data ntfs defaults,uid=rawing,rw 0 0
问题是,如果分区处于不安全状态,它会默默地以只读模式挂载分区。我通常需要几分钟才能注意到,这很烦人。
所以,我的问题是:
- 是否可以将 NTFS 分区保持在“安全”状态,即使 Windows 崩溃?(如果有 NTFS 格式分区的替代方案,我很乐意听到,但请记住它必须保存我的主文件夹)
- 如果没有,是否可以配置 Linux 以读写模式挂载“不安全”分区;而不冒数据丢失的风险?
- 如果没有,我至少可以让 Linux 显示一个警告,如“分区以只读模式安装!”,以便我立即注意到问题?
答案1
我听说,NTFS 不适合用作 Linux/home
分区,因为 Linux 程序通常依赖于 中某些文件的权限和所有权功能/home
,而 NTFS 不提供这些功能。例如, 中的某些文件~/.ssh/
需要特定权限才能正常工作。因此,您不应该将 NTFS 或任何其他非 Linux 文件系统用于/home
。(您可能能够使用 HFS+ 或其他提供 Linux/Unix 风格文件系统功能的系统,但这是很少有人涉足的领域。)
对于 Windows 和 Linux 之间的文件共享,最好将共享数据分区挂载到 或 以外的某个位置/home
。/home/{your-username}
不过,您可以将其挂载到该位置的子目录,例如/home/{your-username}/shared
。您甚至可以创建指向共享目录内位置的符号链接,如果这有助于您使事情正常运作的话。
或者,您可以使用 Linux 原生文件系统,/home
并使用适用于该文件系统的 Windows 驱动程序。存在多个这样的驱动程序,例如Ext2fsd和 Paragon 的适用于 Windows 的 ExtFS。不过,我最近没有使用过这些工具,所以我无法评价它们的效果如何,也无法推荐其中哪一种。
更直接地回答您的问题:该mount.ntfs
实用程序包含一些选项,可能可以满足您的要求。在我看来,最有希望的是recover
,即使 NTFS 卷被标记为处于不一致状态,它也会强制挂载该卷。但请注意,这并不是我所说的“安全”。我只会将其与只读挂载结合使用,以便在对卷执行其他操作(例如启动 Windows 进行修复)之前恢复文件。请注意,我从未尝试使用此选项,因此我无法保证它在实践中会做什么。如果您必须尝试,我建议您先在“临时”卷上进行试验和/或在网上搜索使用它的人的报告。
您可能认为 Linuxntfsfix
程序会修复 NTFS 卷;但它只进行很少的检查,甚至进行更少的修复,并在 Windows 中将其标记为需要注意。因此,据我所知,修复 NTFS 卷实际上是 Windows 独有的操作。实际上,如果您的双启动计算机崩溃(在运行任一操作系统时),最好将其启动到 Windows,以便 Windows 可以在您启动到 Linux 之前修复其共享的 NTFS 文件系统。(Windows 目前也可以修复 FAT 文件系统;但 Linux 至少提供了一个不错的 FAT 修复工具,dosfsck
因此如果需要,可以从 Linux 修复 FAT 分区。)
答案2
也许现在可能没用了,但我发现此链接对于我来说,同样的问题也适用。
它建议永久解决方案是禁用 Windows 8 和 10 中的快速启动,并建议临时解决方案使用命令sudo ntfsfix /dev/sdXY
。阅读全文以获得更好的理解...