OSXFUSE - “本地”挂载选项到底意味着什么?

时间:2013-12-24 00:09:57

标签: macos filesystems osx-mavericks fuse macfuse

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

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

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

2 个答案:

答案 0 :(得分:1)

我已经看到了同样的情况,而且本地也不是一种选择。与Photoshop类似的问题。

我的实施中的一些发现

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

这与您所看到的相匹配吗?

答案 1 :(得分:1)

我们已经能够追踪问题 - 等待它 - Google Chrome。在装入卷时运行Google Chrome时,会出现问题。如果谷歌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.   
  3. Carbon / CarbonCore框架中可能存在错误。奇怪的是,使用股票网络文件系统afp或smb。时没有问题。
  4.   

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

  1. 使用“本地”挂载选项(可能会引入其他问题,通常不建议使用)
  2. 不要使用“volname”挂载选项。只有在使用“volname”挂载选项时才会出现此问题。如果未设置自定义卷名称,则问题似乎不会发生,并且Excel / Word /等。文件打开就好 - 无论Google Chrome是否在安装时运行。