Thursday, 30 October 2014

How to mount NTFS External Disk in write mode in OS X Yosemite

This works for Mavericks also :)

It is not possible by default to mount a NTFS External Drive in write mode on OS X since Mavericks. There is a complex way to do this. In order to make it simple for you, I wrote a script which does it.

First you need to install Xcode and Homebrew. Google how to install them :P

Download this script

#!/bin/bash
# remove fuse4x and install ntfs-3g and osxfuse
brew remove fuse4x
brew install ntfs-3g
brew install osxfuse
# replace the old one
sudo mv /sbin/mount_ntfs /sbin/mount_ntfs.old
sudo ln -s /usr/local/Cellar/ntfs-3g/*/sbin/mount_ntfs /sbin/mount_ntfs
# osxfuse stuff
sudo /bin/cp -RfX /usr/local/opt/osxfuse/Library/Filesystems/osxfusefs.fs /Library/Filesystems/
# make it setuid program
sudo chmod +s /Library/Filesystems/osxfusefs.fs/Support/load_osxfusefs
# sign unsigned kext
sudo nvram boot-args="kext-dev-mode=1"

Then do this:
chmod +x ntfs_write_mode_enabler
./ntfs_write_mode_enabler

Now connect the driveIn Mavericks you will get a warning “Kernel extension is not from an identified developer”. You are good to go if you click OK. However, if you are using Yosemite, you have to restart your system to load the kernel extension. For more on that read this.

In Yosemite you might get the following error if you are updating old osxfuse. As we have enabled developer mode which allows you to run unsigned kext, it will not be a problem.

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.

Uninstalling


Execute the following command to replace the modified NTFS mounter with the original one

sudo mv /sbin/mount_ntfs.old /sbin/mount_ntfs