MacNugget -
I've been using terminal for a while, but this is the first time I ever tried to write a shell script. It's written for my computer only, but what it does is, it goes through several steps to dismount your drive, verify there's a folder for it, and then remount it. Everything in the script, obviously, can be achieved through terminal commands.
First, however, you have to copy ntfs-3g from /usr/local/bin to /bin (or sbin? I don't remember).
CODE
sudo cp /usr/local/bin/ntfs-3g /bin
Also, you need to give ntfs.command execution permissions; do that with the following code:
CODE
sudo -s
cd ../..
chmod u+rx ntfs.command
That was assuming that you put ntfs.command in the root directory, which I suggest that you do.
OK, now let's go through it line by line:
CODE
echo echo NTFS-3g QuickFix by eli b.
echo Enter password if prompted
That was just an introduction, edit this to wtvr you want it to say.
CODE
if sudo umount /Volumes/"Windows XP"
then echo Volume Windows XP unmounted
fi
So the rest of the code is basically a bunch of if-then statements, which you've seen if you've done any programming at all. I come from a Java/C background, and not much of one for that matter. Instead of using curly braces , the '{' becomes 'then' and the '}' becomes fi.
Here, we're telling umount to unmount /Volumes/"Windows XP", if such a drive is mounted. Substitute the name of your NTFS drive in between the quotes on that line. The echo statement on the next line just prints us a confirmation for convenience sake; but it's not neccesary. Repeat this code fragment for all of your NTFS drives.
If this section fails for some reason, umount will display some kind of error message instead.
CODE
if cd /Volumes/"Windows XP"
then echo Volume folder for Windows XP found!
else sudo mkdir /Volumes/"Windows XP"
echo Volume folder for Windows XP created!
fi
Sometimes, there is no Volume folder for whatever drive you wanted to unmount. This usually happens if you manually dismount it before opening the shell script, or if the drive was never mounted at all. If this is the case, then this fragment makes the folder for you. Of course, substitute Windows XP for the name of your drive in all instances, and repeat this code fragment for all of your drives.
CODE
if sudo ntfs-3g /dev/disk0s2 /Volumes/"Windows XP" -o default_permissions
then echo Volume Windows XP @ /dev/disk0s2 remounted
elif sudo ntfs-3g /dev/disk1s2 /Volumes/"Windows XP" -o default_permissions
then echo Volume Windows XP @ /dev/disk1s2 remounted
fi
This section actually remounts the volume with the default_permissions option. Now, this part looks a little complicated because of a quirk in how OSX assigns BSD names (that's the /dev/disk0s2 portions above).
Sometimes, the primary disk will come up as disk0 and sometimes as disk1. This is obviously very frustrating, and I couldn't find a fix for it, so I just had the code try to mount the volume twice, first on disk0, and if that didn't work (that's elif, which is the same as 'else if' in C languages and Java).
For this section to work for you, just substitute /dev/disk0s2 with the bsd name of your NTFS drive, and "Windows XP" with the regular name of your NTFS drive. Do the same thing for the second part of the code (starting with elif) except substitute the opposite number for diskXsY. In other words, if you have disk0s2 for your drive, substitute a 1 for the 0 - disk1s2, and vice versa.
The BSD Name can be easily found under Disk Utility or I think by right-clicking the drive on your Desktop. I found a C program that does the same thing, but I dunno where I put it right now.
Finally, substitute the regular name of your NTFS drive everytime I wrote "Windows XP".
CODE
killAll Finder
echo Finder reset
echo Enjoy!
This just resets the Finder just in case the drive wasn't showing up before.
To test if it works, just double-click on it.
To have it start up with your computer, just add it to System Preferences >>> Accounts >>> Login Items. You'll have to enter your password in order for it work each time though.
That's about it

Bear in mind this is basically a hack, and not a very good one at that, since at random points the original problem resurfaces; and at other times, the drives won't show up with the correct name because I don't ping diskarbitration with the right name (I don't know how to both to do that and default_permissions at the same time - ntfs-3g throws an error).
Hope this helped, and here's hoping ntfs-3g 1.616 doesn't have these silly errors...
-eli b.