I have a nicely working MacPorts on Lion. When I run

sudo port install ntfs-3g

it does compile without errors. However, when I attach a NTFS-formatted external drive, it's read only. And there is no Preferences icon for NTFS-3G, like there was in my Snow Leopard install. Is the NTFS-3G driver active? How can I find out and fix this?

UPDATE: MacFUSE got installed along with NTFS-3G as a dependency and I did reboot after installing. The ntfs-3g command is available at the command line but I would really like all NTFS drives to be mounted using it automatically and with read-write support.

  • FWIW, Paragon's brand new NTFS 9.0 for Mac OS X is available for free today on Giveaway of the Day. Link The catch is that you have register for a serial # today.
    – afrazier
    Jul 28, 2011 at 19:55
  • That worked. Thanks for the tip @afrazier, what a coincidence. Still curious if NTFS read-write is possible on Lion with free software only though, because I'm going to run into this again one day and it won't be another Giveaway day I'm afraid. Jul 28, 2011 at 20:31
  • @TomA Had to delete my answer as I couldn't test it -- only running 10.6 now. ntfs-3g should actually be able to do that, but I'm not sure if MacPorts has the newest version or if there even is one yet.
    – slhck
    Jul 28, 2011 at 20:44
  • Have you tried Tuxera's NTFS-3g installer? I don't have access to a Lion system yet, but it's always worked before. Or try the tips for turning on Apple's built in r/w support from Snow Leopard and see if they still work.
    – afrazier
    Jul 28, 2011 at 20:46

3 Answers 3


Check this, it details how to make ntfs-3g work through through MacPorts, and also how to make it work through an older version of NTFS-3G with a patched version of MacFuse:


The reason you couldn't make ntfs-3g work through MacPorts is that ntfs-3g still depends on MacFuse by default. Uninstall the ntfs-3g and macfuse ports, then install fuse4x, and then ntfs-3g. Like this:

sudo port uninstall macfuse ntfs-3g
sudo port clean --all macfuse ntfs-3g
sudo port install fuse4x
sudo port install ntfs-3g

You'll have to use some specific options for mounting, check the post above.

  • Its sad that the page link is dead now :(
    – Petriborg
    Dec 12, 2013 at 16:14
  • I've updated the link. Please note though that this post is a bit old at this point, there a few newer posts explaining the situation. It should still work though, if you stick to using fuse4x (instead of OSXFuse, which is supposed to replace both fuse4x and MacFuse) Feb 9, 2014 at 19:05

MacFuse only provides a 32-bit interface which does not work under the 64-bit Lion kernel. Read system log for related error messages.

You'll have to wait for MacPort to change the dependency to use the newer fuse4x (ticket).

  • 1
    I thought that recent Macs were shipping with 64-bit Snow Leopard kernels since last year?
    – afrazier
    Jul 28, 2011 at 23:38

Fernando Figueiredo mentioned and linked to a post about using MacPorts' ntfs-3g build, but when I tried to go to the page, it was broken (404). I was able to fetch it from Google cache though. I've posted the important part from the end of the blog post here. Basically so I can find it again myself later. :-)


  1. Install ntfs-3g via ports sudo port install ntfs-3g
  2. Move aside built-in Mac OS ntfs support sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.orig
  3. Create shell script to use ntfs-3g (see below)
  4. Fix file permissions sudo chmod 0755 /sbin/mount_ntfs
  5. Fix file ownership sudo chown 0:0 /sbin/mount_ntfs
  6. Update script USER_ID default with output from id -u
  7. Update script GROUP_ID default with output from id -g

The content of the shell script for step 3:

if [ `/usr/bin/stat -f "%u" /dev/console` -eq 0 ]; then
        USERNAME=`/usr/bin/defaults read /library/preferences/com.apple.loginwindow | /usr/bin/grep autoLoginUser | /usr/bin/awk '{ print $3 }' | /usr/bin/sed 's/;//'`
        if [ "$USERNAME" = "" ]; then
                until [ `stat -f "%u" /dev/console` -ne 0 ] || [ $TIMEOUT -eq 0 ]; do
                        sleep 1
                        let TIMEOUT--
                if [ $TIMEOUT -ne 0 ]; then
                        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
                        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
                USER_ID=`/usr/bin/id -u $USERNAME`
                GROUP_ID=`/usr/bin/id -g $USERNAME`
        USER_ID=`/usr/bin/stat -f "%u" /dev/console`
        GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`

/opt/local/bin/ntfs-3g \
         -o volname="${VOLUME_NAME}" \
         -o local \
         -o negative_vncache \
         -o auto_xattr \
         -o auto_cache \
         -o noatime \
         -o windows_names \
         -o user_xattr \
         -o inherit \
         -o uid=$USER_ID \
         -o gid=$GROUP_ID \
         -o allow_other \
         "$@" &> /var/log/ntfsmnt.log

exit $?;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.