Подтвердить что ты не робот

Почему я не могу настроить общий ресурс SSHFS? "Ошибка файловой системы OSXFUSE недоступна"

Я пытаюсь настроить общий ресурс SSHFS с моего локального компьютера на удаленную машину, но он не работает. Я получаю ошибку. Файловая система OSXFUSE недоступна (см. Ниже). Как это исправить?

FYI, моя локальная машина - это ноутбук MacBook Pro под управлением OSX 10.9.3. Удаленный компьютер фактически является VirtualBox на том же оборудовании, на котором работает CentOS.

% 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 [email protected]                   # <---- See, SSH works!!
Last login: Wed Jun 18 18:36:11 2014 from XXX.XXX.XXX.XXX
[[email protected] ~]% exit

% sudo mkdir /mnt
% sudo mkdir /mnt/Share    
% sudo sshfs -o IdentityFile=~/.ssh/id_rsa.pub [email protected]:/ /mnt/Share
the OSXFUSE file system is not available (-1)
the OSXFUSE file system is not available (1)

Я пробовал решение, описанное здесь. Но это не сработало для меня:

% 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.
4b9b3361

Ответ 1

Если вы запустите brew info osxfuse и следуете инструкциям к письму, я считаю, что это сработает.

Из того, что вы описали, вы просто попытались выгрузить (возможно) предыдущее расширение ядра, но не завершили последний важный шаг, чтобы фактически установить новое расширение.

Вот что говорит brew информация 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

Ответ 2

Возникает проблема с загрузкой KEXT, установленной обычным пакетом osxfuse Homebrew. Вы можете использовать brew cask для установки официального FUSE для сборки OS X из своего собственного DMG:

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

Сам SSHFS также доступен в виде пакета Cask, хотя при моем смешивании системы osxfuse из Cask с обычным двоичным буфером sshfs работает отлично.

Недостатком этого подхода является то, что brew upgrade или brew outdated больше не смогут обновлять FUSE для OS X, поскольку brew cask пока не поддерживается версиями.

Ответ 3

Я заметил, что OSXFUSE немного сложнее, хотя я точно не знаю, почему, и brew пытается избежать изменения системы, поэтому использовать его для управления расширениями ядра - это не очень хорошая идея. Я предлагаю использовать пакетные установщики для OSXFUSE и SSHFS из http://osxfuse.github.io/ вместо использования brew.

Ответ 4

Откройте "Системные настройки", выберите "ПРЕДУПРЕЖДЕНИЕ", затем обновите до последней версии. То, что сработало для меня.

Ответ 5

Проблема при установке SSHFS с brew заключается в том, что osxfusefs не подписан: Консоль выводит com.apple.kextd: ERROR: invalid signature for com.github.osxfuse.filesystems.osxfusefs, will not load. См. Также https://github.com/osxfuse/osxfuse/issues/122.

В двоичном выражении для OSXFUSE из http://osxfuse.github.io/ (как было предложено в ответе Old Pro) эта проблема не возникает, и поэтому установка этого один вместо этого разрешил это для меня.