为什么重新安装可以解决问题但 fstab 却不能?

为什么重新安装可以解决问题但 fstab 却不能?

我有双启动的 Linux 和 Windows,它们都可以访问在 /dev/sda5 上共享的本地(非操作系统)NTFS 分区。

以下是我在 fstab 文件中挂载它的方法:

UUID=D8A0830EA082F1F4   /mnt/files   ntfs   rw,uid=1000,gid=1000   0   0

问题是,每当我在 Windows 上使用快速重启选项(一种休眠模式)时,这个分区就会在我的 Linux 上以只读方式挂载。因此,我每次都像这样重新挂载它,它就会再次变为可写状态:

sudo mount -o remount,rw /dev/sda5 /mnt/files

那么请告诉我这个命令和我的 fstab 中的命令有什么区别?如何修复我的 fstab 以每次都以读写方式挂载而无需运行此命令?

答案1

重新安装并不能解决问题。它甚至可能使情况变得更糟。

事情的经过如下:

  1. Windows 休眠,同时保持该分区挂载
  2. Ubuntu 启动时,发现分区未正确卸载,并将其以只读方式挂载。这是一个安全功能,对您有好处。
  3. 您重新以读/写方式安装它,并且可能开始对其进行写入。

不明显的是:

1.a. Windows 保留了文件系统状态的内存缓存,其中表示(形象地说)扇区 789 是空闲的

1.b. 该内存缓存已存储在休眠文件中。

  1. Ubuntu 将新文件写入扇区 789 - 毕竟它是免费的。

  2. 您重新启动 Windows 并从休眠文件中加载其状态。

  3. 您创建一个新文件

  4. Windows 使用扇区 789 来存储该新文件 - 毕竟其缓存表明该扇区是空闲的。

  5. 您在 Ubuntu(步骤 4)中创建的文件现在已损坏。

解决此问题的正确方法是在 Windows 休眠之前以某种方式卸载该分区,并在启动时再次自动安装它。

如何做到这一点以及是否有可能做到这一点超出了本论坛的讨论范围。

相关内容