Every once in a while someone brings over an external NTFS formatted drive and plugs it into my Mac to exchange some large data sets. While the Mac can easily read NTFS, it doesn’t appear to have the capability to write to that file system.
Appears is the operative phrase.
If you search for a solution in the open, you’ll find companies selling commercial products, drivers, and mounters. Some people have posted complicated looking instructions telling instructing you to mess with low level system files, that may or may not exist, ending in a full system reboot that typically solves the problem for that lone drive.
Here’s the generic no-software required solution.
First connect your NTFS drive to the Mac, it’ll mount with some name like “My Disk.”
Open a Terminal window and enter the command:
$ mount
The mount command will tell you what drives are listed. Find the one that has your drive name listed in it and copy the device name:
/dev/disk1s2 on /Volumes/My Disk (hfs, local, nodev, nosuid, journaled, noowners, mounted by me)
Now eject the drive, but don’t disconnect it from the machine.
Go manually create the directory (shown in bold above); this is where the mount point will be:
$ cd /Volumes
$ mkdir My\ Disk
NOTE: The backslash escapes the next character, in this case allowing a space in the directory name.
Now, mount the drive as read-write using this command:
$ sudo mount -o rw -t ntfs /dev/disk2s1 /Volumes/My\ Disk
Make sure that you’ve used the same device location you copied down the the prior steps.
At this point your drive should appear on the desktop, and you ought to be able to read and write to it just fine. No rebooting necessary!
Note that you can get to it from the Terminal as well:
$ cd /Volumes/My\ Disk
$ ls
Note that sometimes Finder may act a little wonky with timing problems and a huge file. Apparently the underlying Unix system has no problem. You can copy a big file to the drive:
$ rsync –progress SuperBigFile.zip /Volumes/My\ Disk
Or a whole directory:
$ rsync -r –progress LargeDeepDirectory /Volumes/My\ Disk
When done, make sure you are not running any programs that are accessing the drive or have their current directory set to the drive:
$ cd /Volumes
Then, eject the drive normally, or unmount it from the command line — your choice.
$ sudo umount /Volumes/My\ Disk
Full disclosure and warnings: This was tested on OS X 10.6.5, though support has been around to do this for a while. And, any time you’re doing something that deals with questionable file system access, make sure there’s nothing on the drive you don’t mind losing. Have a backup. There’s always a slight risk, but it’s very close to zero — why state all this? Because I assume no responsibility if something goes wrong.