Skip to content

Instantly share code, notes, and snippets.

@axxapy
Last active January 1, 2016 00:27
Show Gist options
  • Save axxapy/04c9cf62139b8decf65c to your computer and use it in GitHub Desktop.
Save axxapy/04c9cf62139b8decf65c to your computer and use it in GitHub Desktop.
ntfs on mac
original: https://github.com/bfleischer/fuse_wait
oosxfuse: http://sourceforge.net/projects/osxfuse/files/osxfuse-2.7.5/osxfuse-2.7.5.dmg/download
ntfs-3g: http://sourceforge.net/projects/catacombae/files/NTFS-3G%20for%20Mac%20OS%20X/
fuse_wait fix: https://github.com/downloads/bfleischer/fuse_wait/fuse_wait-1.1.pkg
# NTFS-3G for Mac OS X
## Installation
Download and install the latest version of "FUSE for OS X" from [http://osxfuse.github.io](http://osxfuse.github.io). When installing "FUSE for OS X" make sure to select the "MacFUSE Compatibility Layer" option. More information about the MacFUSE compatibility layer can be found in the [[Frequently Asked Questions|FAQ]].
"NTFS-3G for Mac OS X" - NTFS-3G 2010.10.2 - can be downloaded from this [blog post](http://macntfs-3g.blogspot.com/2010/10/ntfs-3g-for-mac-os-x-2010102.html) ("NTFS-3G for Mac OS X" blog). This is the most recent installer package for OS X. When installing NTFS-3G click the "Customize" button in the "Installation Type" section and deselect the "MacFUSE" option. MacFUSE is fully replaced by "FUSE for OS X".
[ [[NTFS-3G_Installation_Type.png|align=center|height=150px]]](NTFS-3G_Installation_Type.png)
If you are installing "NTFS-3G for Mac OS X" on OS X 10.7 or later, read the "fuse_wait" section under "Known Issues".
## Uninstallation
To unistall "NTFS-3G for Mac OS X" open the "System Preferences" application, go to the NTFS-3G preference pane and click on the "Uninstall NTFS-3G" button
[ [[NTFS-3G_Uninstallation.png|align=center|height=150px]]](NTFS-3G_Uninstallation.png)
## Frequently Asked Questions
### 1. Why is NTFS-3G's write performance so poor with "FUSE for OS X"?
The `ntfs-3g` program opens and does I/O to the block device `/dev/disk[number]` of the NTFS volume in question. OS X does not have a VM buffer cache for block devices when they are accessed in this way. That is the most overwhelming factor, because both metadata operations and file data I/O boil down to read/writes by NTFS-3G to the block device.
Suppose we somehow automagically provided unified buffer caching for block devices by essentially making a disk look like a giant file. Even then, OS X and its buffer cache is really happy only when you do I/O that is in units of page size (4KB) and aligned on a page boundary. To get the most out of the I/O subsystem in OS X, `ntfs-3g` (or any other program for that matter) would really want to do I/O in multiples of 4KB.
For comparison, you should try writing to an NTFS disk image. You will see that it is considerably faster because you do have some caching in that case.
There are versions of NTFS-3G available that have additional user-space caching with drastically improved performance. See the ["NTFS-3G for Mac OS X" blog](http://macntfs-3g.blogspot.com/).
### 2. After installing NTFS-3G, my Boot Camp volume stopped showing up in the "Startup Disk" preference pane. I am devastated. Is reinstalling OS X, Boot Camp, and Windows the only recourse?
Relax. The "Startup Disk" preference pane is simply filtering out (that is, not displaying) any mounted volumes that it does not consider bootable. Its definition of a Boot Camp volume includes that the mounted volume either be of type `msdos` or `ntfs` - this is hardcoded into the preference pane plugin. This does not mean your Boot Camp volume has become unbootable. It is merely not showing up in the graphical user interface. You can hold the "opt" key during startup and choose the Windows partition to boot from. You can also remount it (read-only) using the NTFS file system built into OS X and it should start showing up in "Startup Disk".
### 3. I am getting a timeout error every time I mount a NTFS formatted volume. What to do?
You are probably running OS X 10.7 or later. See the "fuse_wait" section under "Known Issues" for more details and a workaround.
## Known Issues
### fuse_wait: Timeout error on OS X 10.7 and later (NTFS-3G 2010.10.2 or earlier)
`fuse_wait` is a tool distributed with "NTFS-3G for Mac OS X". It executes a specified MacFUSE/"FUSE for OS X" mount program with all of its arguments and displays an error message in case the mount operation fails. Because of a change in OS X 10.7, `fuse_wait` displays a timeout error every time a NTFS volume is mounted.
A package containing a patched version of `fuse_wait` fixing this issue can be downloaded at [bfleischer/fuse_wait/downloads](https://github.com/bfleischer/fuse_wait/downloads). More information about the fix including manual installation instructions can be found at [bfleischer/fuse_wait](https://github.com/bfleischer/fuse_wait).
Note: This is an unofficial patch, that is intended as a workaround until a new official version of NTFS-3G is released.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment