76

I sometimes need to mount USB drives that are NTFS formatted and write to them. On Mavericks I achieved this using the Homebrew formula ntfs-3g which depends on osxfuse.

After upgrading to Yosemite, osxfuse is broken. Homebrew message:

==> Upgrading osxfuse
osxfuse: OS X Mavericks or older is required for this package.
OS X Yosemite introduced a strict unsigned kext ban which breaks this package.
You should remove this package from your system and attempt to find upstream
binaries to use instead.
Error: An unsatisfied requirement failed this build.

I take this to mean that the kernel extension used by osxfuse is completely disallowed in Yosemite because it is not digitally signed by Apple, whereas in Mavericks it was allowed.

So, is there any way now to mount and write to an NTFS-formatted USB drive in Yosemite using either open-source software or free, unencumbered (not spyware/malware or bundled with useless toolbars etc.) software from the App Store?

cubuspl42
  • 702
wberry
  • 917
  • Define "unencumbered"...all software from the Mac App Store has DRM. – tubedogg Oct 24 '14 at 05:46
  • User can disable OSX from checking for kext signature at at all. Trim Enabler doesn't have the Apple's blessing either, but its developer has the app enabled for Yosemite none the less. http://www.cindori.org/trim-enabler-and-yosemite/ – fartheraway Oct 24 '14 at 06:15
  • You have this soft http://www.paragon-software.com/home/ntfs-mac/ – StrawHara Oct 24 '14 at 06:15
  • Good question. I've been debating if the package really needs to be uninstalled, or if we should wait until it's upgraded. Like what fartheraway has said, it is possible to get around the kext signature issue, I supposed the question is if osxfuse (or contributors) will give it some attention. – vol7ron Oct 26 '14 at 22:29
  • The interesting thing is that ntfs-3g is still available via homebrew. – vol7ron Oct 26 '14 at 22:48
  • Even before Yosemite, manual root-level commands were required before osxfuse and ntfs-3g would work. But it seems that the formula now is just marked as broken, there seems to be no option to enable unsigned extensions and proceed. – wberry Oct 27 '14 at 01:57
  • The official binary release of osxfuse is signed and works with homebrew. – Siyuan Ren Nov 19 '14 at 12:24

9 Answers9

58

Open Terminal.

If you have brewed osxfuse installed, you have to uninstall it, because unsigned kexts are banned now. Type:

brew cask uninstall osxfuse

On the other hand, if you don't have Homebrew at all, download it:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Updating Homebrew is recommended.

brew update

If you don't have Homebrew Cask installed, type:

brew install caskroom/cask/brew-cask

Install a binary osxfuse package from Homebrew Cask:

brew cask install osxfuse

Install ntfs-3g:

brew install ntfs-3g

You need to create a symlink for mount_ntfs, in order to make drives mount automatically:

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

If you are running OS X 10.11 and the commands above fail, try:

sudo nvram boot-args="rootless=0"

edit: This doesn't work for me in the final El Capitan (from Mac App Store). I had to disable SIP through recovery. Could someone confirm that this is indeed necessary?

... and reboot your machine. Then try symlinking mount_ntfs again.

Thanks to bjorgvino.

anquegi
  • 163
cubuspl42
  • 702
  • Confirmed working in Yosemite 10.10.1 and doesn't require editing a configuration file everytime you want to mount a drive. Although I did notice one of my partitions is missing, it wasn't a partition I needed. The missing partition appeared to be a WINDOWS boot partition, while the other partitions were all named "New Volume". I didn't need to edit any configuration files to see them. Hope this helps others. This may be a problem for people who would still want to see the missing partition in read only mode whereas for me it is just invisible meaning I might not know it was there. – jmort253 May 31 '15 at 08:47
  • 2
    Doesn't seem to work on 10.10.4. The device is visible in diskutil but is not mounted correctly. – tyteen4a03 Jun 13 '15 at 20:08
  • That's not good news. Maybe osxfuse/ntfs-3g need to get an update. – cubuspl42 Jun 13 '15 at 20:10
  • Works correctly for me on 10.10.3. – Pavel Samokha Jun 26 '15 at 10:19
  • 2
    mv: rename /sbin/mount_ntfs to /sbin/mount_ntfs.original: Operation not permitted – Cœur Jun 28 '15 at 15:24
  • 1
    @Cœur probably you forgot the command sudo. You need super user privileges for this action. – agusgambina Jun 28 '15 at 18:20
  • Thank you @cubuspl42, maybe something changed, I've got Error: No available formula for ntfs-3g – agusgambina Jun 28 '15 at 18:42
  • Did you run brew update? – cubuspl42 Jun 28 '15 at 18:43
  • Thank you for your answer @cubuspl42 I did brew update here is the log that appears Error: No available formula for ntfs-3g Searching formulae... Searching taps... homebrew/fuse/ntfs-3g – agusgambina Jun 28 '15 at 19:58
  • I've found this one online: brew install homebrew/fuse/ntfs-3g Could you try it? – cubuspl42 Jun 28 '15 at 20:01
  • 1
    @agusgambina no, didn't forgot sudo. File or folder is locked. I'm on El Capitan. – Cœur Jun 29 '15 at 01:15
  • As far as I know, prerelease software is not supported on this site. And I can't help you, for sure, because I don't own 10.11. – cubuspl42 Jun 29 '15 at 09:07
  • @Cœur try to access the file and see who is the owner, to which group belongs and which permissions it have? – agusgambina Jun 30 '15 at 02:47
  • @agusgambina mount_ntfs is lrwxr-xr-x root/wheel. sbin is drwxr-xr-x@ root/wheel. I believe the issue is the '@' for sbin. – Cœur Jul 03 '15 at 11:24
  • try: sudo nvram boot-args="rootless=0" and reboot – cubuspl42 Jul 03 '15 at 11:42
  • worked like a charm- thx! – magicgregz Jul 05 '15 at 18:25
  • brew install homebrew/fuse/ntfs-3g is giving me problems. One of the errors I get is Warning: Could not create link for homebrew/fuse/afuse, as it conflicts with Homebrew/homebrew/afuse. You will need to use the fully-qualified name when referring this formula. I'm on 10.10.4. – Pieter Jul 29 '15 at 14:56
  • @tyteen4a03, maybe you need a reboot. – Colliot Aug 24 '15 at 09:11
  • 4
    I'm on 10.11, I disabled SIP from recovery, then followed all the instructions. Whenever I plug in an NTFS drive, it does mount in /Volumes, and I'm able to use it, but strangely, whenever I unmount it, and plug it in again, it shows up as " 2", " 3" etc. depending on the number of times I unplug and plug it in again. The previous mounts still show up in /Volumes but I can't access them. This is a bit annoying. Any ides? Actually I can't even access it at all sometimes... – notadam Oct 04 '15 at 02:34
  • Same here... I guess ntfs-3g or fuse are not ready for 10.11. – cubuspl42 Oct 04 '15 at 02:49
  • @cubuspl42 I confirm that System Integrity Protection must be disabled for El Capitan. Disabling Rootless is not necessary. See my answer for the commands. – Cœur Oct 14 '15 at 13:55
  • @adam10603 - I get that too on 10.10.5 but fortunately you can delete those old directories in /Volume (as root) and the next time you mount the drive it will go back to the original volume name. A bit annoying to have to do this cleanup but at least there's a way to tidy it up. – Marc Novakowski Oct 31 '15 at 05:19
  • 1
    It seems the brew-cask install is unnecessary since December: https://github.com/caskroom/homebrew-cask Important December update: Homebrew-Cask will now be kept up to date together with Homebrew (see #15381 for details). If you haven’t yet, run brew uninstall --force brew-cask; brew update to switch to the new system. – knedlsepp Dec 15 '15 at 19:14
  • @cubuspl42 how do you know if everything worked correctly? I followed all of your brew instructions, then disabled SIP, then did the two sudo commands. Nothing seemed to change. I still can't write to NTFS. – cokedude Feb 21 '16 at 04:08
  • 1
    @InanBerbatov what have you upgraded ? – cubuspl42 Feb 25 '16 at 09:06
  • @cubuspl42 aaargh silly me! just confused with the parent question :D I am using Fuse for OSX, newer versions fixes the drive name issue. – Inan Feb 25 '16 at 09:15
  • @adam10603 and those who has the incremental drive name on reboot issue, I am using FUSE for OSX I had the same problem on my hackintosh, I just upgraded to the latest version through System Preferences and everythong's OK now. p.s. editing and reposting the comment as I didn't indicate what software I was using, due to a confusion, thanks cubuspl42. – Inan Feb 25 '16 at 09:17
  • 1
    @InanBerbatov I finally ended up using Tuxera NTFS. Works like a charm! – notadam Feb 25 '16 at 13:34
  • @InanBerbatov what version of Fuse did you update to? I see the same issue with Fuse 2.8.3 (the latest stable version) on OS X 10.10.5. – Holistic Developer Jun 24 '16 at 01:49
  • @HolisticDeveloper actually it was OSXFUSE 2.8.3, it solved my problem. Maybe you can try one of those pre-releases but I think they are not stable releases and you might experience other problems. – Inan Jun 25 '16 at 08:13
24

Quickly mount a NTFS disk read/write on all recent OS X (including Yosemite, El Capitan):

  1. Open Application -> Utilities -> Terminal
  2. Type mount and look for the line with your disk. It will show something like: /dev/disk3s1 on /Volumes/MyDisk (ntfs, local, noowners, nobrowse)
  3. Type the following in the Terminal, replacing /dev/diskXsX with your disk as shown in the mount command:

    sudo mkdir /Volumes/Mount  
    

    *Make sure that the device is not already mounted, if yes, please unmount it first. Otherwise it will result in error: mount_ntfs: /dev/diskNsN on /Volumes/Mount: Resource busy

    sudo umount /Volumes/<device_name>
    sudo mount -o rw,auto,nobrowse -t ntfs /dev/diskXsX /Volumes/Mount/
    open /Volumes/Mount/
    

To make this change permanent run the following (correct for El Capitan):

  1. Run the following command, changing /dev/diskXsX to your disk:

    export DEVICE=/dev/diskXsX   
    echo UUID=`diskutil info $DEVICE | grep UUID | awk '{print $3}'` none ntfs rw,auto,nobrowse 
    echo LABEL=NTFS none ntfs rw,auto,nobrowse
    
  2. Run sudo vifs and paste in the output from the previous 2 lines. To do this press down to go to the bottom of the file, A to start adding text, paste in the 2 lines then press escape and :wq to write the file. (vifs is the only safe way to edit the fstab in OS X).

  3. Run the following to mount the disk

    sudo umount /Volumes/$DEVICE 
    sudo diskutil mountDisk $DEVICE
    sudo open `mount | grep $DEVICE | awk '{print $3}'`
    

Note: The device will no longer automatically open a window when you attach it. To access it open a Finder window and select the Go -> Go to Folder to /Volumes

A.Badger
  • 801
  • I think you might want to edit the answer to clarify what part people are supposed to change. Presumably, they should change just the Tpart to the volume name (yes?), not replace the entire DISK=T with the volume name. – D.W. Apr 09 '15 at 21:35
  • The awk with $5 does not work on my 0SX 10.10 (yields nothing). Command output formatting might have changed. I've used cut -b 30-80 as a workaround. – youri May 25 '15 at 14:24
  • nice ... !! :-) – warfares Sep 04 '15 at 21:41
  • 3
    Mine responds with "mount_ntfs: /dev/disk2s1 on /Volumes/Untitled: Read-only file system" – tofutim Nov 22 '15 at 01:08
  • 1
    I have the same error that @tofutim : $ sudo mount -o rw,auto,nobrowse -t ntfs /dev/disk4s1 /Volumes/Mount/ mount_ntfs: /dev/disk4s1 on /Volumes/Mount: Read-only file system – Maen Jan 03 '16 at 20:45
  • 1
    @tofutim and @Bigood -- The "read-only file system" message is often an indicator that the NTFS partition is "dirty" meaning that when it was last opened by Windows there was not a clean shutdown. Open the disk in Windows and run chkdsk d: /f where d: is the drive letter. Then make sure you do a clean shutdown or detach from Windows. – Holistic Developer Jun 23 '16 at 14:53
  • While this method seems to work, I was trying to copy 15GB of images and it looked like they all copied fine (I checked if all files were copied using Get info), but when I unmounted (using umount) and mounted the same disk again there were less files than before unmounting. Is it possible that some files are still cached somewhere and get lost when I unmount this disk? – szimek Aug 06 '16 at 22:11
  • Thanks @Holistic Developer. I had to run chkdsk to check the filesystem on a windows machine and only then did it mount with the commandline commands.It will be great if the answer also included this sometimes required additional step – harijay Oct 14 '16 at 02:43
16

I normally use Paragon NTFS, but just tried this method with 10.10.1 and it seems to work after a rudimentary test [created a folder and copied few small files]

After disabling Paragon, a NTFS-formatted flash drive is not writeable: NTFS USB drive not writeable

I added that drive and the requisite flags to my fstab file: NTFS options in fstab

Then unmounted and reinserted the flash drive. Note that it no longer shows up in the sidebar under Devices. You have to navigate to the /Volumes directory to find it. However, it is now writeable. NTFS USB drive not writeable

No third-party software required, but you do have to repeat this for every target NTFS volume.

Additionally, there is script that can set up everything automatically: http://sourceforge.net/projects/native-ntfs-osx/files/?source=navbar (just succeeded with it on OSX 10.5.5 Yosemite).

Ipstone
  • 43
  • Don't try this option. Atleast not for now. I lost my data because of this. Not once, but twice. First time, I was copying some file to hard disk and accidentally hard disk got ejected and to my surprise all data in that folder got lost. Second time, I was copying some file to hard disk and this time it wasn't ejected but still I lost my data :( Had to use recovery software to get back my data!!! If you are the one who concerns about your data, then better stay away from this option. – mac Sep 26 '15 at 18:18
  • 1
    In case your hard disk got corrupted, simply plug it in Windows. Then you will get windows popup saying "Recommend to scan" or "Continue without Scanning". Choose the first option. Select both check boxes in next screen (Fix Errors and Try repairing bad boot sectors). You will be able to recover corrupted folder :) – mac Sep 27 '15 at 10:31
  • This worked at first but it didn't work when I tried on the next day, so I ended up installing ntfs-3g. – Sanghyun Lee Oct 20 '15 at 14:28
8

Newer macOS

See newer answer at https://apple.stackexchange.com/a/213575/62697.


Older macOS

This answer is aimed at latest compatibility for OS X 10.11 El Capitan.

  1. Install latest osxfuse (3.x.x) from https://github.com/osxfuse/osxfuse/releases or from Homebrew with brew cask install osxfuse.

  2. Install latest NTFS-3G (2015.3.14) from Homebrew (http://brew.sh/).

As follow:

brew install ntfs-3g
  1. Link NTFS-3G to boot after temporary disabling System Integrity Protection.

As follow:

[reboot by holding CMD+R to get in recovery mode]
csrutil disable
[reboot normally]
sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.original
sudo ln -s /usr/local/sbin/mount_ntfs /sbin/mount_ntfs
[reboot by holding CMD+R to get in recovery mode]
csrutil enable
[reboot normally]
Cœur
  • 1,040
2

The following guide worked on my Yosemite computer:

Macbreaker.com - How to Enable Writing to NTFS Hard Drives in OS X Including El Capitan

A guy called Niresh has simplified this process into a single installer:

Hackintosh Zone - Free NTFS Driver for Mac OS X (You will need to register on the website before you can download)

Installing this file; restarting the computer enables NTFS write.

  1. install FUSE with MacFuse compatibility layer,
  2. install NTFS-3G,
  3. install FUSE-wait
Allan
  • 101,432
Mert Nuhoglu
  • 944
  • 3
  • 8
  • 19
  • The second link has changed and requires registration. But the first link is fine. To summarize: (1) install FUSE with MacFuse compatibility layer, (2) install NTFS-3G, (3) install FUSE-wait. – Cœur Jan 11 '15 at 04:46
1

All recent OS X releases support NTFS natively (read/write)!

By default, the drive mounts, and you can browse the files. But it is read-only. To make the drive writeable, add the following line to /etc/fstab

LABEL=MyDrive none ntfs rw,auto,nobrowse

Replace MyDrive with the name of your volume (check the volume name in the Finder when you mount it).

Then unmount/remount it to see the changes. One convenient way to re-mount the drive is to use Disk Utility:

enter image description here

To see the drive after mounting it, look under /Volumes in Finder:

enter image description here enter image description here

This change is permanent.

To undo the writability when mounted on this machine, simply remove the entry for this drive from /etc/fstab.

0

According to this thread, as a workaround, you can download and install the osxfuse binaries directly from the project instead of using homebrew:

http://sourceforge.net/projects/osxfuse/files/osxfuse-2.7.2/

But it sounds like this won't work if you have brew packages (such as Gluster) that rely on the osxfuse libraries, since they won't appear in your cellar.

Lingnik
  • 835
  • 8
  • 8
-2

The best cross platform format I use is vfat. Not ideal, but it works a charm and there's no mess no fuss :)

  • I do not know why this received a negative vote. It is, to some degree, a very valid point. Somebody might thing that NTFS is the de-facto file format and having NTFS-formatted flash drives causes issues on Mac. Therefore, for the casual user who just wants a flash drives that woks universally, exFat (tested OK) or vFat (not tested) helps solve the problem. In this scenario NTFS is not used at all. – Shailen Jul 23 '15 at 17:37
-2

I always use Paragon NTFS. Just try it. You can do read/write from both sides and will forget this barrier for ever.

Graham Miln
  • 43,776
Dr.DK
  • 15
  • For curiosity, why minuses? What's wrong with the mentioned answer? – Sergey Kostrukov Jan 09 '15 at 10:38
  • 2
    Maybe because the question was looking for something "free". Upgrading your OS and you start having to pay to read USB drives? That's unacceptable for many people. – Cœur Jan 11 '15 at 04:37