66

What is the best, easiest, preferably cheapest way to make OS X write to NTFS-formatted drives in Mac OS X?

1
35

Updated at May 2015, with current solutions.

Free solutions

FUSE for OS X - Successor to MacFUSE

NTFS-3G
Requires a build from source for anything newer than 2010. Last "pre built" version linked from http://macntfs-3g.blogspot.co.uk/2010/10/ntfs-3g-for-mac-os-x-2010102.html You can build it from source using homebrew in the other answers.

Paid solutions

Paragon NTFS

Tuxera NTFS


MacFuse is abandonware, and hasn't been updated since 2009.

3
30

This answer is for latest compatibility for OS X 10.11 El Capitan, macOS 10.12 Sierra, macOS 10.13 High Sierra, macOS 10.14 Mojave.

It needs an update for Apple Silicon and Monterey and Big Sur and Catalina so proceed with caution

  1. Install latest osxfuse (3.x.x) from GitHub. Or install it with Homebrew as follow:

    brew cask install osxfuse
    
  2. Install latest NTFS-3G with Homebrew as follow:

    brew install ntfs-3g
    
  3. Auto-mount NTFS volumes in read-write mode:

Link NTFS-3G to boot after temporary disabling System Integrity Protection, as follow:

* [reboot by holding <kbd>CMD</kbd>+<kbd>R</kbd> to get in recovery mode]

        csrutil disable

* [reboot normally]

        sudo mount -uw /
        sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.original
        sudo ln -s /usr/local/sbin/mount_ntfs /sbin/mount_ntfs

* [reboot by holding <kbd>CMD</kbd>+<kbd>R</kbd> to get in recovery mode]

        csrutil enable

* [reboot normally]

You will need to re-link manually (step 3) each year when you upgrade macOS (10.11 → 10.12 → 10.13 → 10.14 → ...)

Additional steps if solution does not work:

  • try to install ntfs-3g again

     brew install ntfs-3g
    
  • it warns that it installed but not linked, try to link again:

     brew link ntfs-3g
    
  • it fails and prints dry-run command which will show files to remove:

     brew link --overwrite --dry-run ntfs-3g
    
  • remove these files with sudo ('Would remove:' is for English console)

     brew link --overwrite --dry-run ntfs-3g | grep -vF 'Would remove:' | awk '{print $1}' | xargs sudo rm
    
  • try to link again and get permission error on creation /usr/local/share/doc/ntfs-3g. brew prevents running with sudo so prepare directory for README:

     sudo mkdir /usr/local/share/doc/ntfs-3g
     sudo chmod a+w /usr/local/share/doc/ntfs-3g
    
  • run brew link again... success.

  • reboot your Mac and allow system extension to load in System Preferences as error box suggests.


See also the following wiki page: https://github.com/osxfuse/osxfuse/wiki/NTFS-3G

2
  • For linking issue with homebrew, maybe try stackoverflow.com/questions/29422345/installed-just-not-linked ; also, try brew uninstall ntfs-3g.
    – Cœur
    Dec 23 '15 at 14:04
  • 2
    Those who don't want to link it during startup and just wanna give it a go, you can try this. "After installing NTFS-3G you can manually mount NTFS volumes in read-write mode by executing the following commands in Terminal. Replace /dev/disk1s1 with the actual NTFS partition you want to mount. You can find the partition name using diskutil list. sudo mkdir /Volumes/NTFS sudo /usr/local/bin/ntfs-3g /dev/disk1s1 /Volumes/NTFS -olocal -oallow_other" From github.com/osxfuse/osxfuse/wiki/NTFS-3G Feb 5 '18 at 3:47
16

I tested this on Mountain lion and it is free and you don't need to reboot. It uses OS X's native NTFS drivers.

  1. Plug-in your device

  2. Write in Terminal diskutil list and look for IDENTIFIER where TYPE is Windows_NTFS.

    In this case it is disk1s1

  3. Then run the following:

    diskutil unmount /dev/disk1s1
    cd /Volumes
    mkdir Elements
    sudo mount -w -t ntfs -o rw,nobrowse /dev/disk1s1 /Volumes/Elements
    open /Volumes/Elements
    
6
  • 3
    I tried this on 10.8.4 and a 10.8 VM, but I couldn't get it to work. I got an error like Read-only file system when I for example tried to run mkdir /Volumes/HD-HCU2/aa. Is there some reason why you used nobrowse?
    – Lri
    Jul 27 '13 at 18:57
  • You are creating the folder on wrong path. You should create the folder under /Volumes.
    – Codler
    Jul 28 '13 at 7:28
  • 1
    nobrowse are needed to make ntfs writable.
    – Codler
    Jul 28 '13 at 7:32
  • 5
    +1, Be aware that this feature is not complete and well-tested. It's not enabled by default for some reason. Worth mentioning that the force-write-enabled driver simply damaged an NTFS volume while I was playing with it.
    – fardjad
    Oct 25 '13 at 21:52
  • 3
    I've added a warning about this method not being safe. This old crappy Apple NTFS driver has been there forever, it's been known forever that it can be forced to be RW, and it's been known forever that it's not stable by any means.
    – cubuspl42
    Mar 27 '18 at 15:32
9

The simplest solution would be to use MacFUSE and NTFS-3G for MacFUSE, though as of this post only Tuxera NTFS ( ~$35 USD) and PARAGON Software NTFS for OS X v.9.0 ($19.95 USD) support 10.7. You can grab the source for free from Tuxera for free, however.

As of OS X 10.6 you can natively enable NTFS support, though your mileage may vary. Follow this writeup by Mac OS X Hints if you're interested but I'd use the MacFUSE method over this one. Keep in mind that neither of these methods are fully supported.

4
  • 1
    Just to note—I've had some problems with NTFS-3G & Lion lately, which might be because the OS X binary is a bit outdated (2010.10.2 versus 2011.4.12) Aug 8 '11 at 17:08
  • 1
    Paragon NTFS for Mac v9 IS NOT COMPATIBLE WITH LION. Double-click the package gives "The operation couldn't be completed"
    – user17657
    Jan 24 '12 at 3:42
  • any disadvantages of using Tuxera NTFS for the new macbook pro retina ?
    – Render
    Jul 23 '12 at 13:29
  • 1
    MacFUSE got replaced by FUSE for OS X
    – Cœur
    Oct 29 '15 at 16:03
7

Here's how to do a one-time mount using ntfs-3g (coeur's answer but for one time use). This way doesn't require you to boot into safe mode or use csrutil at all.

NB: using ntfs-3g this way is rumored to be "safer" for write access than the built-in ntfs rw,auto,nobrowse mount option:

Install latest osxfuse (3.x.x) from https://github.com/osxfuse/osxfuse/releases. Or install it from Homebrew with:

brew cask install osxfuse

Install latest NTFS-3GNTFS-3G from Homebrew (https://brew.sh/Homebrew), as follow:

brew install ntfs-3g

One time mount (replace disk1s1 with your values, discoverable by running a mount command after inserting the disk, you'll see a line like

/dev/disk1s1 on /Volumes/SomeNtfsDrive (ntfs, local, nodev, nosuid, read-only, noowners) grab the disk1s1:

 diskutil unmount /dev/disk1s1
 sudo mkdir /Volumes/my_writable_ntfs
 sudo /usr/local/bin/ntfs-3g /dev/disk1s1 /Volumes/my_writable_ntfs -olocal -oallow_other

You'll get a popup "system extension blocked" click "Open Security Preferences" and click "Allow" next to the developer name (Benjamin Fleischer). If you can't click the allow button, see here.

Run the command again after clicking allow. It'll be good until you reboot. or manually dismount it.

For more details and instructions on making it permanent, see https://github.com/osxfuse/osxfuse/wiki/NTFS-3G

0
6

Can't say that using MacFUSE and NTFS-3G for MacFUSE is the easiest way, but they are free and that's great!:) I've used them for about a year until bought 500GB external Seagate HDD and got Paragon NTFS for Mac driver for free from Seagate site: http://www.seagate.com/support/downloads/item/ntfs-driver-for-mac-os-master-dl/. Works stable for a month, no problems happened yet. Anybody knows, will users of Seagate HDDs get free NTFS driver upgrade for new OS X when Apple will release it?

1
  • 4
    does the seagate version of paragon 14 work for drives other than seagate?
    – malhal
    Dec 30 '15 at 15:45
4

Before we start. Make sure your external name label is ONE word. That means there is no space in between.

my disk = WRONG

my_disk or my-disk or mydisk = CORRECT

Now

  1. Open Terminal [Command+Space+"terminal"]
  2. Type: sudo nano /etc/fstab
  3. In nano, type: LABEL=my_disk none ntfs rw,auto,nobrowse Note: my_disk is your disk name
  4. To save and exit Control+X and Enter and Enter
  5. [optional] For ease of access, we create a sym-link to desktop: In terminal -> sudo ln -s /Volumes ~/Desktop/Volumes

Later

When you don't need it anymore. It is as simple as:

In terminal sudo rm /etc/fstab

3
  • 5
    Removing /etc/fstab is only an option if it doesn't contain any other important entries
    – nohillside
    Jul 11 '14 at 5:03
  • 2
    @AFwcxx, The Label can contain spaces, you just have to substitute \040 for the ' ' (space). See example in man fstab: LABEL=The\040Volume\040Name\040Is\040This none msdos ro Nov 10 '15 at 15:03
  • This and osxdaily.com/2013/10/02/enable-ntfs-write-support-mac-os-x helped me a lot. All I had to do was unmount my drive, edit the fstab file, create a sym-link and that's it. Thanks a lot!
    – WhatHiFi
    Feb 4 '18 at 10:16
0

This answer is for macOS BigSur:

The big difference with previous answer by Cœur:

we need to turn off cryptographic verification (See Big Sur’s Signed System Volume: added security protection) with csrutil authenticated-root disable in step 3.2 and bless to create a snapshot in step 4.

  1. Install macFUSE from macFUSE or brew --cask install osxfuse

  2. Install ntfs-3g with brew install gromgit/fuse/ntfs-3g-mac or try other options to install ntfs-3g

  3. Disable SIP(System Integrity Protection)

    3.1 Reboot Mac into Recovery Mode by rebooting and holding down Command+R

    3.2 Utilities > Terminal:

    csrutil disable(enable it after the whole process)

    csrutil authenticated-root disable (It cannot be enabled after updating /sbin/mount_ntfs)

    3.3 Reboot in normal mode

  4. Update /sbin/mount_ntfs

    4.1 Get the root disk by mount, if /dev/disk1s5s1 on / is returned, your root disk is /dev/disk1s5

    4.2 update and create snapshot

    DISK_PATH=/dev/disk1s5
    MOUNT_PATH=~/mount
    mkdir $MOUNT_PATH
    sudo mount -o nobrowse -t apfs $DISK_PATH $MOUNT_PATH
    sudo mv $MOUNT_PATH/sbin/mount_ntfs        $MOUNT_PATH/sbin/mount_ntfs.original
    sudo ln -s /usr/local/sbin/mount_ntfs $MOUNT_PATH/sbin/mount_ntfs
    
    sudo bless --folder $MOUNT_PATH/System/Library/CoreServices --bootefi --create-snapshot
    
  5. Reboot and enable SIP with command: csrutil enable

Reference: NTFS write in macOS BigSur using osxfuse and ntfs-3g

3
  • How does this differ from provious answer apple.stackexchange.com/a/213575/237
    – mmmmmm
    Sep 6 at 7:32
  • For macOS BigSur, the big difference is that we need to execute csrutil authenticated-root disable and bless to create a snapshot
    – Peter
    Sep 7 at 9:22
  • In that case please note that BigSur does differ and note the extra bit in the answer
    – mmmmmm
    Sep 7 at 10:06

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .