69

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

Tetsujin
  • 115,663

8 Answers8

37

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 NTFS-3G for Mac OS X 2010.10.2. 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.

agarza
  • 2,274
  • 3
    Fuse for OS X and NTFS-3G must be installed together. Full installation is tricky on El Capitan: See my answer http://apple.stackexchange.com/a/213575/62697 – Cœur Oct 30 '15 at 23:26
  • 3
    I'm sorry, but this is nearly a link-only answer, so I've downvoted it. Currently both https://apple.stackexchange.com/questions/106589/write-in-ntfs-using-mavericks?noredirect=1&lq=1 and https://apple.stackexchange.com/questions/152661/write-to-ntfs-formated-drives-on-yosemite?noredirect=1&lq=1 are marked as a duplicate of this question, but unfortunately this (currently accepted) answer is not the highest quality in my opinion. – cubuspl42 Mar 27 '18 at 15:24
  • MacFuse doesn't seem to be abandonware. It's being maintained – MuhsinFatih Sep 27 '21 at 07:27
  • @MuhsinFatih However not as open source – mmmmmm Oct 07 '23 at 09:57
34

Newer macOS

This answer is for latest compatibility for macOS 13 Ventura and macOS 14 Sonoma.

  1. Install macFUSE with Homebrew as follow:

    brew install macfuse
    
  2. Install NTFS-3G with Homebrew as follow:

    brew tap gromgit/homebrew-fuse
    brew install ntfs-3g-mac
    
  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 → 10.15 → 11 → 12 → 13 → 14 ...)

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


Older macOS and troubleshooting

This answer is for 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 osxfuse (3.x.x) from GitHub. Or install it with Homebrew as follow:

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

    brew install ntfs-3g
    
  3. Proceed to step 3 in "Newer macOS" answer above.

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.

Cœur
  • 1,040
  • For linking issue with homebrew, maybe try http://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 https://github.com/osxfuse/osxfuse/wiki/NTFS-3G

    – Sharukh Mastan Feb 05 '18 at 03:47
19

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
    
grg
  • 201,078
Codler
  • 359
  • 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 07:28
  • 1
    nobrowse are needed to make ntfs writable. – Codler Jul 28 '13 at 07: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
  • So there is a capability within OS X to mount NTFS for read and write support. But this is disabled. Is there a way to do a 'defaults write' to activate this feature? – CousinCocaine Aug 05 '14 at 14:42
  • 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
  • I come up with this utility that automate the instructions https://github.com/rodfersou/osx-ntfs-rw – rodfersou Feb 10 '22 at 02:54
  • This is not working on MacOS Monterey 12.2.1 for me as the mount command returns the Read-only file system error, even the mount point folder is under /Volumes. The -w flag in the mount command is irrelevant as the man page indicates that it's specific to NFS but not NTFS. – Lacek Mar 10 '22 at 04:30
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.

Aaron Lake
  • 3,702
  • 23
  • 22
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

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?

5

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

Graham Miln
  • 43,776
AFwcxx
  • 191
1

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

Peter
  • 148
  • How does this differ from provious answer https://apple.stackexchange.com/a/213575/237 – mmmmmm Sep 06 '21 at 07: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 07 '21 at 09:22
  • In that case please note that BigSur does differ and note the extra bit in the answer – mmmmmm Sep 07 '21 at 10:06