如何防止 Windows 和 Linux 共享的 NTFS 分区上的数据损坏?

如何防止 Windows 和 Linux 共享的 NTFS 分区上的数据损坏?

我大部分的事情都使用 Linux,但有时我仍然需要 Windows。因此,我在计算机上安装了 Linux Mint 14 和 Windows 8(双启动),磁盘设置如下:

  • sda1:Windows 8 分配的 350 MB 分区(我仍然不知道为什么。)
  • sda2:Windows安装
  • sda3:我的共享 NTFS 驱动器
  • sda5:Linux Mint 14 安装
  • sda6:Linux Mint 的交换区域

我的大部分文件都是在sda3两个操作系统之间共享的(有点像我的备份分区)。我可以从两个操作系统访问它。但是,有时我的文件会损坏。

示例:我最近下载了 Eclipse 并将其解压到 Linux Mint 中 sda3 驱动器中的文件夹中。一切正常。然后,当我切换到 Windows 时,它要求我修复驱动器,因为出现了一些错误。我接受了,Windows 进行了一些扫描并重新启动。当我切换回 Linux Mint 时,我注意到 Eclipse 无法工作。当我检查时,Eclipse文件夹中的大部分文件都已损坏。类似的事情也以其他方式发生。有时我无法在 Windows 中查看和/或打开在 Linux Mint 中创建/下载的文件。我厌倦了像这样丢失文件。

是硬件问题吗? (我的电脑有点旧)

如果与硬件无关,是否有比我目前拥有的更好的方法在操作系统之间共享数据? (两者都有一个单独的 NTFS 分区)

答案1

可能发生的情况并不是文件被损坏,而是 Linux 正在尽最大努力确保文件被损坏。不是已损坏。

当文件系统被打开、写入和关闭时,操作系统(Windows 和Linux)会将文件系统标记为“脏”,例如未正确关闭。

正常情况下,当您卸载文件系统时,它会将其标记为干净,假设所有剩余的 I/O 请求已得到满足,文件系统的日志(如果可用)为空,并且所有磁盘缓存已同步到物理磁盘。

在某些情况下,NTFS-3G 实用程序不会将文件系统标记为“干净”,以确保 Windows 在启动时对其进行检查并避免可能的损坏。

简而言之,您的硬件可能没问题,尽管随时检查硬盘驱动器的运行状况也没什么坏处。至于实际来回共享数据,我会推荐基于网络的存储方法。无论是本地服务器还是将数据推送到云中,使用网络文件系统(可能是用于 Windows 兼容性的 SMB/CIFS)都可以缓解迁移问题。

答案2

有时这是因为 Linux 在文件名中使用了在 Windows 中无效的字符。例如,您可以在 Linux 中(甚至在 NTFS 分区中)保存名称中带有问号 (?) 的文件。但是,您无法在 Windows 中打开它,如果您运行 chkdsk,Windows 将删除该文件,并将其放在驱动器根目录中名为 Found.nnn 的文件夹中,并使用不同的名称,这可能会变得非常难以找到。

答案3

这可能是因为快速重启功能在最新的 Windows(包括 Windows 8)中默认启用。

来自 ntfs-3g 手册页:

此外,必须禁用最新 Windows 系统上可用的快速重启功能。这可以通过以管理员身份发出禁用休眠和快速重新启动的 Windows 命令来实现:

powercfg /h off

此页面包含有关此功能的更多详细信息以及屏幕截图以及如何禁用它的说明

快速启动是 Windows 8 RTM 中引入的一项新功能。通过注销用户会话,然后将部分系统相关文件和驱动程序保存到休眠文件,它可以使您的计算机比正常情况更快启动。当您再次打开电脑时,它会从休眠状态恢复并再次让您登录。换句话说,快速启动功能将经典的关机机制与休眠相结合,因此可以称为“混合关机”。 Windows 8 及其后续版本 Windows 8.1 中默认启用混合关机。

这不仅会在双引导至 Linux 时导致问题,而且还会在双引导至不同的 Windows 安装时导致问题。

相关内容