Mac OSX Lion 10.7 doesn't have NTFS write support, but there are two ways to mount an NTFS volume for writing. The first and easy way is to buy
Tuxera, the second way is trickier but it's also
free :) Let's see what we have to do:
- Download and install OSXFuse (the successor of MacFuse)
- Download and install the last build of NTFS-3G
After restarting your Mac you will be able to mount an NTFS volume with write support, it works fine, but you will get an annoying timeout error message.
If you are an advanced user keep reading... we're trying to get rid of the error message :)
We need to install the latest version of NTFS-3G (there is no build available) using
MacPorts!
- Download and install the latest version of
MacPorts 2.0.4 for Lion
- Restart your mac
- Open the
Terminal
- Update MacPorts running this command:
- Install NTFS-3G:
- sudo port install ntfs-3g
Now we have to redirect the automount procedure from using the MAC OS X's native NTFS driver to NTFS-3G:
- Make a backup copy of /sbin/mount_ntfs file:
- sudo cp /sbin/mount_ntfs /sbin/mount_ntfs.bkp
- Using your favorite editor (vim, nano..) replace the /sbin/mount_ntfs file content with this:
#!/bin/bash
VOLUME_NAME="${@:$#}"
VOLUME_NAME=${VOLUME_NAME#/Volumes/}
USER_ID=501
GROUP_ID=20
TIMEOUT=20
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--
done
if [ $TIMEOUT -ne 0 ]; then
USER_ID=`/usr/bin/stat -f "%u" /dev/console`
GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
fi
else
USER_ID=`/usr/bin/id -u $USERNAME`
GROUP_ID=`/usr/bin/id -g $USERNAME`
fi
else
USER_ID=`/usr/bin/stat -f "%u" /dev/console`
GROUP_ID=`/usr/bin/stat -f "%g" /dev/console`
fi
/opt/local/bin/ntfs-3g \
-o volname="${VOLUME_NAME}" \
-o local \
-o noappledouble \
-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 $?;
And we are done! Try to plug an NTFS and see what happens :)