如何让linux挂载由于Windows崩溃而处于“不安全状态”的NTFS分区?

如何让linux挂载由于Windows崩溃而处于“不安全状态”的NTFS分区?

我有一个 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。阅读全文以获得更好的理解...

相关内容