Linux 会损坏 NTFS 分区上的数据吗?

Linux 会损坏 NTFS 分区上的数据吗?

例如,我读过有关 Linux 中 NTFS 支持的矛盾声明这里他们说 NTFS 在 Linux 中是稳定的,而这里他们说您的 NTFS 数据可能会在 Linux 中损坏。

那么 Linux 是否会损坏 NTFS 分区上的数据(我使用的是 Ubuntu,但我的问题是关于 Linux 的)?

答案1

简短的回答:不。

长答案:是的,如果你愿意的话。 windows有“休眠”。它在 Windows 10 上默认启用。它可以保存缓存、tmp 文件、未完成的任务等。这使得 Windows 关闭和启动过程更快。

在此状态下写入内容可能会损坏已保存的 tmp 文件,导致 Windows 使用新的干净会话启动,但不会损坏系统。但在休眠状态下写入也可以覆盖已保存的未完成任务,包括文件移动、复制以及与文件相关的任何内容。所以文件会被损坏。

Linux 的默认 NTFS 驱动程序可以检测休眠状态,并且它将以只读状态挂载文件系统,因此您无法在该文件系统上执行任何操作,除非您覆盖该保护。这可以通过关闭 Windows 电源选项上的“快速重启”来解决。这将禁用休眠状态,允许文件编辑。

附加提示:

  • 突然断电后请勿挂载(RW 模式)。它会把事情搞砸。
  • 如果您只想编辑一次而不调整 Windows 设置,请键入此命令,shutdown /s这将安全地关闭系统。
  • 请注意,Windows 系统文件并未隐藏或锁定。这些在 Linux 上不受保护,你可能会弄乱 Windows。

答案2

我认为你问了一个错误的问题。从 Linux 访问 NTFS 文件系统安全吗?是的。但没有人可以给您 100% 的保证,您的数据可能会被损坏。几率非常低,但有可能发生。任何文件系统(甚至是本机 Linux 文件系统)都可能发生这种情况。解决方案很简单:备份,您可能会因多种原因丢失数据,而备份是确保安全的唯一方法。

一般规则是:

  • 不要休眠 Windows,始终在启动 Linux 之前将其关闭。 NTFS 驱动程序可以检测到这一点,并且不应允许安装休眠系统的 Windows 系统分区。
  • 对于可移动设备,在断开连接之前始终使用“安全删除”操作(在两个系统上)。

如果您担心,可以在 Linux 中将 NTFS 安装为只读,并找到一种不同的方式在 Windows 和 Linux 之间共享数据。但这没有真正的理由。

答案3

是的,linux 会 100% 损坏你的 NTFS 分区迟早。我什至不是在谈论突然断电或意外设备移除。这些肯定会搞乱 Linux 上的 NTFS。我说的是正常使用。这是一个例子:

  1. 查看一个大项目(例如虚幻引擎源代码)。
  2. 运行初始设置和构建命令。
  3. 在某个时候按 Ctrl+C。
  4. 完毕!如果您一直在使用 HDD,则您的文件系统已损坏。对于 SSD 驱动器,您的 FS 完成的可能性为 50%。
  5. 尝试重新启动您的电脑。您将看到它永远不会关闭,因为某些与磁盘相关的守护进程只是阻止它关闭。实际重新启动可能需要几个小时。否则,您可以强制重新启动它。但等待不会改变任何事情。
  6. 打开电脑后,您会发现磁盘使用率为 100%。 NTFS 将以只读模式挂载。您将无法重新安装它、复制文件或执行任何操作。根据发行版的不同,系统中的驱动器无响应也可能会冻结 GUI。
  7. 无法从 Linux 修复驱动器。无论我如何努力,GUI 或命令行实用程序都不适合我。它们中的大多数甚至不会显示驱动器列表,它们只会永远挂起。
  8. 你如何修复它?通过使用 Windows。您的系统将需要半个小时才能启动到 Windows,但当它最终完成时,您可以尝试右键单击驱动器并选择一些修复选项。
  9. 您必须重新启动并等待几个小时,直到 Windows 修复您的驱动器。
  10. 之后,您可以重新启动到 Linux,并且驱动器将以 R/W 模式安装。当然,有些文件会丢失。

这是只需点击几下即可破坏 NTFS 的方法。但是如果您不使用 git 并且不复制大量文件怎么办?你安全吗?答案是大胖子。 Linux 会破坏你的 NTFS 驱动器,这只是时间问题。可能需要一周或一个月的时间才能积累足够的损坏文件。如果您发现得太晚,您可能会丢失一些重要数据。

我们只能想知道,为什么近 30 年来没有实现 NTFS 支持。无论如何,目前我认为它永远不会被添加。所以你有它。阻止您在设备上安装 Linux 发行版的又一个原因。至少,确保您没有安装 Windows 启动驱动器或包含任何重要信息的磁盘。

答案4

与 @Hirasawa-yui Hirasawa Yui 报告的经历类似,我在不同用例的不同驱动器上遇到了非常罕见但重复的 NTFS 损坏。但它可能仅限于某些内核版本和某些 ntfs-3g 版本。尚未隔离问题,但症状显示的方式是,使用驻留在 NTFS 上的 vmdk 文件的 VMWARE 实例将开始在日志中抛出大量错误。我将其复制到这里以防有人发现它有帮助。

dbus-daemon[1849]: [系统] 被拒绝:目的地消息队列已满,0 个匹配规则;类型=“错误”,发件人=“(未设置)”((总线))接口=“(未设置)”成员=“(未设置)”错误名称=“org.freedesktop.DBus.Error.ServiceUnknown”requested_reply=“1” “目的地=“:1.189”(uid = 1000 pid = 30716 comm =“/usr/lib/vmware/bin/vmware-vmx -ssnapshot.numRolli”标签=“unconfined”)

当我启动到 Windows 并 chkdsk 该分区时,在 Windows 控制台中 chkdsk 显示文件系统正常...但是在事件日志中它显示文件系统有问题。纠正这种情况的唯一方法是将整个文件系统复制到另一个位置,删除并重新创建分区,然后将数据复制回来。

综上所述,所有软件都可能存在错误,而且 Linux 中的 ntfs-3g 软件包在使用超过 4-5 年的时间里大部分都运行良好,而且我经常毫无问题地移动 3-4 TB 的数据。

相关内容