3

我已经实现了一个基于 OSXFUSE 的文件系统。它在 10.8 上运行良好,但在 Mavericks MS Word 上将现有文档打开为空白(尽管我显然返回了正确的数据 - 我在预览图标中看到了内容。此外,如果我将文件复制到真正的硬盘驱动器和打开它,它打开正常)。

如果我使用“本地”标志挂载我的文件系统,则此问题已在 Mavericks 上得到解决。但是,使用此标志会带来其他问题 - 例如,它看起来会导致 Finder 进行一些更积极的缓存,因此某些文件在 Finder 中不可见(尽管我可以在终端中 ls 它们)。

理想情况下,我希望能够在没有这个本地标志的情况下挂载文件系统(我的实现将文件存储在网络上,所以传递这个标志看起来是错误的),但是空白 Word 文档的问题确实让我感到困惑。

4

2 回答 2

1

我见过同样的情况,同样本地也不是一种选择。Photoshop 的类似问题。

我的实施中的一些发现

  • 重新启动后首次运行时不会出现此问题。
  • 程序退出后问题开始出现。
  • 我通过在退出程序之前手动卸载(并等待几秒钟)解决了这个问题。如果卸载成功,则在下次运行时,安装再次执行正常。
  • 如果程序终止或卸载失败(文件正在使用等),则卷的读取访问在下次装载时在 Word/Photoshop 中被破坏。
  • 重启解决问题。

这和你看到的相符吗?

于 2014-01-03T18:04:46.107 回答
1

我们已经能够找到问题 - 等待它 - 谷歌浏览器。在安装卷时运行 Google Chrome 时,会出现问题。如果 Google Chrome 未运行,Word/Excel/等。文件打开就好了。

我们一直在与 Benjamin(OSXFUSE 开发人员)联系。另请参阅他在 OSXFUSE 邮件列表上关于此问题的回答:

https://groups.google.com/d/msg/osxfuse-group/URlw-n-Qakg/bLw2fHHDe7sJ

到目前为止,我还没有在 osxfuse 中发现任何可以解释这种行为的错误。奇怪的是文件没有损坏或为空。将文件复制到另一个卷后,它们就可以正常打开。使用 LibreOffice 打开 FUSE 卷上的文件也可以。

Chrome 和 Office 似乎基于 Carbon 框架(自 Mountain Lion 以来已弃用)。我相信这个问题在某种程度上与 Carbon 有关,因为非 Carbon 应用程序似乎没有受到影响。每次挂载卷时,Chrome 都会查询卷的功能和属性(可能更多)。据我所知,所有这些文件系统操作都成功返回,没有任何错误。但从此时起,Office 将无法打开文档。

在我看来,最可能的两个原因是:

  1. osxfuse 可能会破坏 Mavericks 上的 VFS 文件系统合同。我已经研究了一段时间,但我没有找到任何支持这一点的线索。
  2. Carbon/CarbonCore 框架中可能存在错误。奇怪的是,使用股票网络文件系统 afp 或 smb 时没有问题。

这个问题的两个可能的“修复”(或者更确切地说是“解决方法”)似乎是(目前):

  1. 使用“本地”挂载选项(可能会引入其他问题,一般不推荐使用)
  2. 不要使用“volname”挂载选项。该问题似乎仅在使用“volname”挂载选项时出现。如果没有设置自定义卷名,则似乎不会出现问题,并且 Excel/Word/etc. 文件打开得很好——不管谷歌浏览器是否在挂载时运行。
于 2014-01-10T11:07:51.930 回答