【问题标题】:Why can't I setup an SSHFS share? “OSXFUSE file system is not available” error为什么我不能设置 SSHFS 共享? “OSXFUSE 文件系统不可用”错误
【发布时间】:2014-08-10 03:36:42
【问题描述】:

我正在尝试设置从本地机器到远程机器的 SSHFS 共享,但它不工作。我收到错误 OSXFUSE 文件系统不可用(见下文)。如何解决这个问题??

仅供参考,我的本地计算机是运行 OSX 10.9.3 的 MacBook Pro 笔记本电脑。远程机器实际上是运行 CentOS 的同一硬件上的 VirtualBox。

% brew install sshfs                                # <---- SSHFS is installed
Warning: sshfs-2.5.0 already installed

% brew install osxfuse                              # <---- OSX Fuse is installed
Warning: osxfuse-2.6.4 already installed

% ssh remote_user@XXX.XXX.XXX.XXX                   # <---- See, SSH works!!
Last login: Wed Jun 18 18:36:11 2014 from XXX.XXX.XXX.XXX
[remote_user@XXX.XXX.XXX.XXX ~]% exit

% sudo mkdir /mnt
% sudo mkdir /mnt/Share    
% sudo sshfs -o IdentityFile=~/.ssh/id_rsa.pub remote_user@XXX.XXX.XXX.XXX:/ /mnt/Share
the OSXFUSE file system is not available (-1)
the OSXFUSE file system is not available (1)

我尝试了here 描述的解决方案。但这对我不起作用:

% sudo kextunload -b com.github.osxfuse.filesystems.osxfusefs
(kernel) Kext com.github.osxfuse.filesystems.osxfusefs not found for unload request.
Failed to unload com.github.osxfuse.filesystems.osxfusefs - (libkern/kext) not found.

【问题讨论】:

标签: macos centos sshfs


【解决方案1】:

如果您运行brew info osxfuse 并按照信中的说明进行操作,我相信它会起作用。

根据您的描述,您只是尝试卸载(可能的)以前的内核扩展,但没有完成实际安装新扩展的最后一个重要步骤。

这是 brew info osxfuse 告诉我的:

If upgrading from a previous version of osxfuse, the previous kernel extension
will need to be unloaded before installing the new version. First, check that
no FUSE-based file systems are running:

  mount -t osxfusefs

Unmount all FUSE file systems and then unload the kernel extension:

  sudo kextunload -b com.github.osxfuse.filesystems.osxfusefs

The new osxfuse file system bundle needs to be installed by the root user:

  sudo /bin/cp -RfX /usr/local/opt/osxfuse/Library/Filesystems/osxfusefs.fs /Library/Filesystems
  sudo chmod +s /Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs

【讨论】:

  • 我还必须运行“brew link osxfuse”,由于某种原因它没有链接,我不确定我是如何发现的。
【解决方案2】:

加载由常规 osxfuse Homebrew 软件包安装的 KEXT 似乎存在问题。您可以使用brew cask 从他们自己的 DMG 安装官方 FUSE for OS X 构建:

brew rm osxfuse
brew install caskroom/cask/brew-cask
brew cask install osxfuse

SSHFS 本身也可以作为 Cask 包提供,但在我的系统上,将 Cask 中的 osxfuse 与普通的 sshfs 二进制瓶混合就可以了。

这种方法的缺点是 brew upgradebrew outdated 将不再能够更新 FUSE for OS X,因为 brew cask 目前无法识别版本。

【讨论】:

  • 这可以节省我的时间。不过,一个脚注,我必须运行brew install caskroom/cask/brew-cask 才能使其工作; as documented here
【解决方案3】:

我观察到 OSXFUSE 有点棘手,虽然我不知道具体原因,而且brew 试图避免更改系统,因此使用它来管理内核扩展并不是一个好主意。我建议使用来自http://osxfuse.github.io/ 的 OSXFUSE 和 SSHFS 的打包安装程序,而不是使用 brew

【讨论】:

  • ... 这与使用brew cask 基本相同,不是吗?有人可以证实这一点吗?更新 os x 后出现同样的错误。阅读此答案,然后使用木桶安装它。成功了!
【解决方案4】:

打开系统偏好设置,选择 FUSE,然后更新到最新版本。这对我有用。

【讨论】:

    【解决方案5】:

    使用brew 安装SSHFS 时的问题是osxfusefs 没有签名:控制台输出com.apple.kextd: ERROR: invalid signature for com.github.osxfuse.filesystems.osxfusefs, will not load。另见https://github.com/osxfuse/osxfuse/issues/122

    来自http://osxfuse.github.io/ 的 OSXFUSE 二进制文件(如 Old Pro 的回答所建议)没有这个问题,因此安装这个二进制文件代替了我。

    【讨论】:

    • 也为我工作。 macOS Sierra,通过macports 安装的 osxfuse 不起作用。基于 DMG 的安装确实如此。
    猜你喜欢
    • 1970-01-01
    • 2014-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多