Monday, September 24, 2007

Troubleshooting / FAQ

Problem: My partition doesn't mount at all, even though it works in Windows!
Possible cause: Your partition wasn't cleanly unmounted in Windows, because you didn't use "Safely remove hardware" before unplugging your removable drive. Alternatively, you're trying to read a drive which has been left in a hibernated state (you put Windows in hibernation mode instead of doing a complete shut down).

Problem: My partition doesn't mount automatically!
Possible cause: Your partition is incorrectly marked as another file system in your partition table. This can happen if you use mkntfs on an existing partition without changing file system type in the partition table. To reformat other file systems as NTFS volumes in OS X, use the command line tool diskutil with the verb eraseVolume. The format argument will be NTFS-3G. See man diskutil for usage info.

Problem: Filenames with international characters are displayed incorrectly!
Possible cause: You haven't created the file ".ntfs-locale" in the root of the operating system, describing how to interpret international characters. This file is read by this package's mount utility script before mounting it to determine the correct parameters. If you type the command "locale -a" in the Terminal you will get a list of all locales available on your system. One of these should be typed into the .ntfs-locale file. (Note that the file will need to be called ".ntfs-locale" and NOT for example ".ntfs-locale.txt")

Problem: NTFS-3G is damn slow!
Possible cause: Is it really the connection to your drive that's slow? (For example a USB2 drive running in USB 1.1 mode...)
Anyway, NTFS-3G is currently noticeably slower compared to the kernel mode drivers that it competes with. I'm looking into adding some caching patches to speed things up.
I get around 10-15 MiB/s when copying files to and from my SATA drive. You shouldn't expect more than that at the moment.
Update: I can confirm that NTFS-3G is actually damn slow with USB2 drives. IDE/SATA drives work better, Firewire performance is unknown (if you have a FW drive, you could report your performance figures in the comments to this thread)...

Problem: NTFS-3G doesn't react properly to SIGTERM and thus slows down shutdown of the computer!
Possible cause: There is something that I don't understand with how NTFS-3G reacts in these situations. shadowofged, who provided the previous hazzle free package for NTFS-3G, solved the problem (or tried to... I'm not sure if it really worked on my computer) by installing a daemon listening to SIGTERM, and when activated automatically unmounted all MacFUSE file systems. This daemon isn't released as open source software, but I might rewrite it in the future as open source code, if the problem gets too annoying.

Question: How do I uninstall the previous NTFS-3G package (or whatever package...) that I have installed?
Solution: You probably don't even have to. The package is upgradable, so if you install the package over a previous version all of the old files that aren't being used by the new package are automatically removed. If you still need to remove some package from your system, you can fetch this universal package removal script, which lets you type the name of a package, and then reads the contents of the package receipt and removes all files associated with the package (including the receipt).
(Note that if you're trying to remove a previous package called "NTFS-3G", like an older version, the uninstall script packaged within the current NTFS-3G package will effectively remove the old package if you run it before you install the current one. So in that case there's no need for the universal script...)

[This post will be updated as new problems and solutions are collected.]

Friday, September 14, 2007

NTFS-3G 1.913 package for Mac OS X

A new revision of my package including the latest version of NTFS-3G.
This revision throws out shadowofged's binaries, which were probably not so legal to distribute anyway. I have written a replacement for shadowofged's fuse_wait utility, which is included in the package.

Download NTFS-3G 1.913 (package by catacombae)
Requirements: Mac OS X 10.4, a PowerPC or Intel computer, MacFUSE 0.4.0 (or later) installed.

The source code for fuse_wait is here. It is distributed under the General Public License version 2.

Note: Even though the binaries are built as universal binaries ("fat" binaries), I have had no chance to test them out on a PowerPC machine, so I really don't know if it works or not. You try it...

The source code for ntfs-3g 1.913 is available here.
The source code for ntfsprogs 1.13.1 is available here.

Monday, September 10, 2007

NTFS-3G 1.826 for Mac OS X with automount

By combining shadowofged's package with the one available at http://www.daniel-johnson.org I forged a new, easy to install package for NTFS-3G.
Download NTFS-3G 1.826 (package by catacombae)

Please comment on how usable this package is. It works extremely well for me on my two OS X installs, but it's totally untested on other systems than Mac OS X 10.4.10 on the Intel architecture.

Saturday, September 8, 2007

First post...

I started this blog as a reaction to the fact that I could not find any good, updated packages for installing ntfs-3g, the open source userspace NTFS driver, onto an OS X machine with no extra work for making NTFS volumes automount.
I'll probably terminate it as soon as an official hazzle-free package appears. (If there is one out there that I don't know about, please contact me so I can check it out)

In this post, I'd like to talk about my current setup:
To install NTFS-3G I use the installers and the scripts from the now defunct project at shadowofged's blog . As I only have the file "NTFS-3G 1.417 (Full).dmg" in my possession (I'm not sure about what rights I have to distribute it, so I won't), I use it to install the package. This sets up a fully working NTFS-3G environment with automatic mounting of NTFS file systems with the 3G driver, though with an older version.

I then download the precompiled NTFS-3G package from http://www.daniel-johnson.org/ and extract the binaries and copy them over the existing ones:

mkntfs -> /usr/local/bin/mkntfs
ntfs-3g -> /usr/local/bin/ntfs-3g
ntfscat -> /usr/local/bin/ntfscat
ntfsclone -> /usr/local/bin/ntfsclone
ntfscluster -> /usr/local/bin/ntfscluster
ntfscmp -> /usr/local/bin/ntfscmp
ntfscp -> /usr/local/bin/ntfscp
ntfsfix -> /usr/local/bin/ntfsfix
ntfsinfo -> /usr/local/bin/ntfsinfo
ntfslabel -> /usr/local/bin/ntfslabel
ntfsls -> /usr/local/bin/ntfsls
ntfsresize -> /usr/local/bin/ntfsresize
ntfsundelete -> /usr/local/bin/ntfsundelete
libntfs.9.0.0.dylib -> /usr/local/lib/libntfs.9.0.0.dylib
libntfs.9.dylib -> /usr/local/lib/libntfs.9.dylib


After this, I have a very nice, automounting setup of the latest NTFS-3G version.

Note that I'm no NTFS-3G internal, and know nothing of the inner workings of NTFS-3G. I'm just a Mac user that likes to have access to the latest and greatest versions of NTFS-3G, in order to gain read/write access to my NTFS Boot Camp partition.