Почему я не могу настроить общий ресурс 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.
Ответы
Ответ 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) эта проблема не возникает, и поэтому установка этого один вместо этого разрешил это для меня.