MacFUSE: FUSE for the Mac!

Posted:
in macOS edited January 2014
I've been waiting literally years for this to happen. Now it did.



MacFUSE is a port of FUSE to Mac OS X. FUSE is a way to implement a filesystem in userspace, rather than in the kernel.



What does that mean?



It means, for one, that ports of Linux filesystem implementations are now far more realistic. SSHFS, for instance, has already been done. Moreover, this makes an NTFS-3G port much more tangible, since that, too, uses FUSE.



And NTFS-3G, of course, would mean NTFS read/write support! I'm sure there's lots of Boot Camp users that would greatly appreciate this.

Comments

  • Reply 1 of 3
    chuckerchucker Posts: 5,089member
    Alright. It's still a little cumbersome and user-unfriendly, but the remaining stuff can be worked out easily.



    If anyone wants to give it a shot, here's some documentation on mounting an NTFS volume as read/write. You will need Xcode Tools for this, and will want to follow the steps exactly.



    The first thing you have to do is download and install MacFUSE.



    1) Download the current tarball from here.

    2) Open Terminal. Navigate to where you downloaded the file. For instance, if you downloaded it to the desktop, type:

    Code:


    cd Desktop





    3) Extract the tarball onto your system, effectively installing it:

    Code:


    sudo tar -C / -jxvpf fuse-0.1.0b004.tar.bz2







    This will prompt for your password. Enter it, then wait as things get extracted and copied.



    Second, you need NTFS-3G.



    1) Download the current tarball from here. Unlike the above, this one's a source tarball: we need to compile it. Again, you need to have Xcode Tools installed!

    2) Extract the tarball locally just by double-clicking it in the Finder. You should get a "ntfs-3g-0.20070102-BETA" folder. Go inside.

    3) Open the "configure" file (not any of the similarly-named ones, such as "configure.ac"!) in a text editor. TextEdit will do.

    4) Find the line consisting of:

    Code:


    case "$target_os" in





    Right afterwards, there should be a line containing:

    Code:


    linux*)





    Replace this to read:

    Code:


    *)





    This removes a hardcoded check whether your OS is Linux. The makers of NTFS-3G don't want to support non-Linux OSes because they don't have the hardware to maintain reliability.

    5) Save the file and close it.

    6) Open a Terminal window. Navigate to the folder you just extracted. You can simply type "cd " (with a space) into the window, then drag the folder from the Finder into the Terminal window; its path should appear after the "cd ". Then hit return.

    7) Run:

    Code:


    CFLAGS="-D_FILE_OFFSET_BITS=64 -D__FreeBSD__=10" ./configure --prefix=/usr/local





    This will take a while. It will verify that your OS is suitable, and adjust some of the code to Mac OS X's specifics.

    8) Now, run:

    Code:


    make





    This does the actual compiling and linking: the building.

    9) Finally, run:

    Code:


    sudo make install





    If it's been more than a few minutes, you'll get another password prompt now. Afterwards, it should copy itself into the appropriate locations.



    If you got this far, there isn't much left. I'm gonna assume you have an NTFS partition mounted (as read-only) right now, e.g. your Boot Camp partition (assuming you didn't format that one as FAT32). I'm also assuming in the following that your NTFS partition is named "Windows".



    1) Open Disk Utility.

    2) Select your NTFS partition. In the toolbar, or in the File menu, select Unmount. It should become greyed out in the list, and disappear in the Finder.

    3) Still in Disk Utility, Get Info on the partition. You should see a line like:

    Code:


    Disk Identifier : disk0s3





    This identifier is important, you'll need it in a minute.

    4) You need to manually create a mountpoint now (this is one fiddly thing left to fix, but a minor one):

    Code:


    sudo mkdir /Volumes/"Windows"





    (Replace "Windows" accordingly. Make sure that, if your NTFS partition has spaces in its name, those too are wrapped in double quotes, like this:

    Code:


    sudo mkdir /Volumes/"Windows Partition"



    )

    4) Finally, mount it:

    Code:


    ntfs-3g /dev/disk0s3 /Volumes/"Windows" -o ping_diskarb,volname="Windows"





    The "disk0s3" above needs to be replaced with whatever your disk identifier actually is.



    It should appear in Finder now. If it doesn't, these two commands might help:

    Code:


    disktool -r





    and:

    Code:


    killall Finder







    The first refreshes disk arbitration (keeps mounted partitions in sync between Unix-y stuff and Mac OS-y stuff), and the second relaunches Finder.



    Now, to unmount the disk later on, if you're so inclined (you don't normally have to do this):

    Code:


    sudo umount /dev/disk0s4@0





    This will also, however, remove the mountpoint. This means that, for now, every time you want to mount your partition as read-write, you have to follow the above steps of unmounting the read-only version, creating a mount point, and mounting a read/write version.



    Good luck!



    P.S.: While this worked perfectly for me, I don't claim responsibility for any damages. Backups are always, always a good idea.
  • Reply 2 of 3
    dacloodacloo Posts: 890member
    I'll wait for a finished implementation :-) Not in the need for NTFS write support so badly :-)

    Thanks for the instructions though; lotsa users will find this interesting.
  • Reply 3 of 3
    aquaticaquatic Posts: 5,602member
    That is definitely interesting...NTFS read support, very nice! Wish they'd just add it to 10.5 officially.
Sign In or Register to comment.