MacFUSE - use additional filesystems in OS X

Sometimes you need access to filesystems that are not natively supported by your operating system. For example when you need to access an weirdly formatted external drive.

To integrate support for a new filesystem, you normally need special binary drivers that are loaded into your kernel. This usually involves a reboot and some security issues, as the filesystem driver runs with the same privileges as the kernel itself.

But wait. FUSE is a convenient alternative to kernel-based filesystem drivers. FUSE stands for “Filesystem in Userspace” and makes installing, using, and developing filesystems really easy.

Some filesystem icons

FUSE is a kernel module for UNIX-like operating systems that passes all filesystem requests (like open, read, or chmod ) to a user-space process. This process can be a binary application that directly accesses a block device on your system (e.g. your hard drive), an application that encrypts all data and saves it as a regular file on your disk, or a Python script that uses remote servers to store the contents of the filesystem (e.g. gmailFS – a filessystem that uses your gmail-account as storage)

Practical use

I’m using (Mac)FUSE to get full access to an NTFS partition (you need NTFS-3g).

gMailFS might be a good way to do remote backups as well.

SSHFS allows you to mount remote systems via ssh/scp.

Other benefits

FUSE can be a great playground for experimental filesystem concepts in conjunction with real world scenarios and applications.

Early prototypes might be written in scripting languages and debugging a userspace process is much simpler than at kernel level. You don’t have to reboot your machine that often and bugs in your filesystem driver won’t affect the systems stability.

One example for experimental filesystems is TagFS, a prototype of a semantical file system that supports tagging of files (by moving them to special directories) and logical queries to retrieve them (ls music/AND/alternative/AND/2007).

This is a bit different from using tools like Spotlight/Beagle or iTunes/Amarok, as the search results are available as regular files for every application on your system.

Take a look at the list of available filesystems. There are many interesting ideas out there.

Installing FUSE on OS X (MacFUSE)

Installing MacFUSE is pretty simple. Download the appropriate installer (10.4 or 10.5), go through the really simple installation process, and reboot. Done.

Uninstalling MacFUSE

This is pretty simple, too: sudo /Library/Filesystems/fusefs.fs/Support/uninstall-macfuse-core.sh (see MacFUSE’s FAQ for details.