May 9th, 2012

Tried the Fuse4x for Mac OSX

Fuse4x を試してみた。

以前試した MacFUSE を久々に試してみようと思ったところ、更新されないMacFUSEを引き継いで、新しく Fuse4x が出来ていた。 インストールしてみたので、備忘録代わりに。

How to Install

既に homebrew でインストール出来るようになっていたので、今回は sshfs と一緒に入れる。

$ brew install fuse4x sshfs

このインストール中に以下のようなメッセージがあり、インストールとアップグレードの際の方法が出ていた。

In order for FUSE-based filesystems to work, the fuse4x kernel extension
must be installed by the root user:

  sudo cp -rfX /usr/local/Cellar/fuse4x-kext/0.9.0/Library/Extensions/fuse4x.kext /Library/Extensions
  sudo chmod +s /Library/Extensions/fuse4x.kext/Support/load_fuse4x

If upgrading from a previous version of Fuse4x, the old kernel extension
will need to be unloaded before performing the steps listed above. First,
check that no FUSE-based filesystems are running:

  mount -t fuse4x

Unmount all FUSE filesystems and then unload the kernel extension:

  sudo kextunload -b org.fuse4x.kext.fuse4x

brewでのインストールが終わった後、上記の通りにコマンドを打つと kext カーネル拡張モジュールがインストールされる

$ sudo cp -rfX /usr/local/Cellar/fuse4x-kext/0.9.0/Library/Extensions/fuse4x.kext /Library/Extensions
$ sudo chmod +s /Library/Extensions/fuse4x.kext/Support/load_fuse4x

これでインストールは終了。そして以下のコマンドでカーネル拡張モジュールがロードされているかどうか確認。

$ kextstat | grep fuse
  192    0 0xffffff7f807d1000 0x12000    0x12000    org.fuse4x.kext.fuse4x (0.9.0) <7 5 4 3 1>

上記コマンドで何も表示されない場合は(自分の環境がそうだったので、必要かもしれないけれど)

$ sudo kextload /Library/Extensions/fuse4x.kext

とすることでロードされる。

How to Use

sshfs を使う場合は単純に以下のようにする事で ssh 経由でサーバのディレクトリをローカルに mount 出来る。

$ sshfs USERNAME@SSH-HOSTNAME:REMOTE-PATH LOCAL-PATH

自分の環境だと以下のようになる

$ sshfs d6rkaiz@d6rkaiz.com:/home/d6rkaiz ~/mnt
$ df
Filesystem                        512-blocks       Used  Available Capacity  Mounted on
/dev/disk0s2                       975093952  779975008  194606944    81%    /
devfs                                    438        438          0   100%    /dev
map -hosts                                 0          0          0   100%    /net
map auto_home                              0          0          0   100%    /home
d6rkaiz@d6rkaiz.com:/home/d6rkaiz  202472240   21800944  170386240    12%    /Users/d6rkaiz/mnt

コレで後は ~/mnt/ 以下にファイルをコピーすればリモートホスト上のサーバに反映されることになる。
使わなくなった場合は umount を実行する。上記の例の場合は

$ umount ~/mnt

Others

今回は sshfs を使ったが他に

  • s3fs - aws s3 filesystem mount
  • ntfs-3g - ntfs filesystem mount
  • curlftpfs - ftp server mount via libcurl
  • djmount - mount UPnP AV Media Servers
  • ifuse - iOS filesystem mount via USB
  • wdfs - webdav filesystem for fuse

というようなモノも扱える。
そしてこれらはすべて brew でインストールが可能となっているのでお試しを。