web-dev-qa-db-fra.com

Pourquoi ne puis-je pas configurer un partage SSHFS? Erreur «Le système de fichiers OSXFUSE n'est pas disponible»

J'essaie de configurer un partage SSHFS de ma machine locale vers une machine distante, mais cela ne fonctionne pas. Je reçois l'erreur Le système de fichiers OSXFUSE n'est pas disponible (voir ci-dessous). Comment régler ceci??

Pour info, ma machine locale est un ordinateur portable MacBook Pro fonctionnant sous OSX 10.9.3. La machine distante est en fait une VirtualBox sur le même matériel exécutant 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)

J'ai essayé la solution décrite ici . Mais ça n'a pas marché pour moi:

% 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.
24
Saqib Ali

Si vous exécutez brew info osxfuse et suivez les instructions à la lettre, je crois que cela fonctionnerait.

D'après ce que vous avez décrit, vous venez d'essayer de décharger l'extension (possible) précédente du noyau, mais vous n'avez pas terminé la dernière étape importante pour installer réellement la nouvelle extension.

Voici ce que me dit osxfuse sur les infusions:

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
11
Ede

Il semble qu'il y ait un problème lors du chargement du KEXT installé par le package normal osxfuse Homebrew. Vous pouvez utiliser brew cask pour installer la version officielle de Fuse for OS X à partir de leur propre DMG:

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

SSHFS lui-même est également disponible en tant que package Cask, bien que sur mon système, le mélange de osxfuse de Cask avec une bouteille binaire sshfs ordinaire fonctionne très bien.

L'inconvénient de cette approche est que brew upgrade ou brew outdated ne pourra plus mettre à jour Fuse pour OS X en tant que brew cask n'est pas compatible avec la version pour l'instant.

7
Pavel

J'ai observé qu'OSXFUSE est un peu délicat, bien que je ne sache pas exactement pourquoi, et brew essaie d'éviter de changer le système, donc l'utiliser pour gérer les extensions du noyau n'est pas une bonne idée. Je suggère d'utiliser les programmes d'installation groupés pour OSXFUSE et SSHFS de http://osxfuse.github.io/ au lieu d'utiliser brew.

5
Old Pro

Ouvrez les Préférences Système, choisissez Fuse, puis mettez à jour vers la dernière version. C'est ce qui a fonctionné pour moi.

2
rodvlopes

Le problème lors de l'installation de SSHFS avec brew est que osxfusefs n'est pas signé: la console génère com.Apple.kextd: ERROR: invalid signature for com.github.osxfuse.filesystems.osxfusefs, will not load. Voir aussi https://github.com/osxfuse/osxfuse/issues/122 .

Le binaire pour OSXFUSE de http://osxfuse.github.io/ (comme suggéré par la réponse de Old Pro) n'a pas ce problème, et donc l'installation de celui-ci à la place l'a résolu pour moi.

1
ttq