07 April 2007

What's the best cross-platform filesystem?

Good question. It's something that I've been thinking about and something that for a while annoyed the hell out of me. Realistically there are three operating systems that someone (or at least a tech-geek) might have on their system - Windows, Linux (of some variety) and Mac OS X (apple-labelled or otherwise) and the ideal filesystem is one that works properly on all three.

By doing this it makes it much easier to realistically use your music, documents etc properly and successfully on all three. As an example, I might have 3 primary partitions, - one for each of the operating systems - and then a logical partition for documents (plus another for linux swap). Of course this will work equally well with another drive acting as the documents repository (something that I'm planning to do shortly as a multitude of home videos, photos, music and podcasts threaten to completely fill my current drive).

So let's survey the contenders.

FAT32
Advantages:

  • Works natively and perfectly in all three operating systems.
Disadvantages:
  • No journalling.
  • Relatively low maximum partition size (2 Terabytes - not attainable yet but will be).
  • Inefficient at large partition sizes.
  • Maximum file size limited at 4GB.
NTFS
Advantages:

  • Works natively and perfectly in Windows.
  • Other operating systems support read support natively.
  • Robust and journalled.
  • Very high limits on maximum partition size
  • Very high limits on maximum file size.
  • Generally efficient at large partition sizes.
Disadvantages:
  • Requires third party software to allow for write support on Linux and Mac OS X.
  • Slower on Linux and Mac OS X because of the use of FUSE.
  • Proprietary filesystem patented, and at the whim of, Microsoft.
Ext3
Advantages:

  • Works natively and perfectly on Linux.
  • Generally fast, journalled filesystem.
  • High file and partition size limits.
Disadvantages:
  • Requires third party software to allow for any access under Windows or Mac OS X.
  • Third party software tends only to support ext2 resulting in extra file system checks (and these are slow).
HFS+
Advantages:
  • Works natively and perfectly on Mac OS X.
  • Works natively and perfectly on Linux (without journalling)
  • Generally fast, journalled file system (but journalling must be disabled for Linux)
  • High file and partition size limit
Disadvantages:
  • Requires third party software to allow for any access under Windows.
  • Linux access requires disabling journalling.
  • Free HFSExplorer is not integrated into the Windows explorer.
  • Commercial MacDrive (with full Windows explorer integration) is not free of charge.

One important point to note is that until not so long ago NTFS write access was just impossible outside of Windows but thanks to the fine NTFS-3G project that limitation is now not an issue.

So what's the verdict? Well, only last year I couldn't possibly imagine myself saying this but for me the answer is NTFS. Pretty much all the NTFS features of importance are supported by the aforementioned NTFS-3G project while ext3 features only limited support due to only ext2 support with most options on the other operating systems. Needless to say, FAT32 is something I ruled out because I constantly hit upon the 4GB limit - though I must add that for the longest time (i.e. before NTFS-3G) this was the filesystem of choice for me. HFS+ is ruled out due to its commericial software requirement on Windows (although if you are comfortable using it without Explorer integration or paying for the software, then it may be an option for you, especially if OS X is your primary OS).

As mentioned Windows of course features native support for NTFS (how could it not!) but for Linux and Mac OS X a little work will be required. The great thing about NTFS-3G and linux of course is that in the future it will probably find its way into the kernel, or if not then at least into many distros. This hopefully will mean that no extra work is required! [Update: As of Ubuntu 7.10, NTFS write support is enabled by default.]

For now though there is stuff to be done but it's not hard. I followed the instructions over at the Ubuntu Forums. Mac OS X installation instructions may be found at Mac OS X NTFS-3G's unofficial homepage and is made possible by the fortunate and timely release of Google's MacFUSE project.

The end result? Beautiful cross-platform bliss as I can read, write and modify to my heart's content whichever OS I happened to have booted. The one problem with FUSE hinted at earlier is because it's a user-space system it runs a little slower than a natively supported file system. However given that the solution is (IMHO) so much better than FAT32 and will probably get better in the future I think it's just fine.

Happy filesysteming!

P.S. If you read this and find something grossly wrong then let me know.

Update: Thanks to commenter Derek for suggesting HFS - I have added my thoughts to this post.

10 comments:

Anonymous said...

Ubuntu fully supports writing to NTFS filesystems since Gutsy Gibbon
http://www.ubuntu.com/testing/gutsybeta#head-cfd16f3029f2fc55199eefdc0ede604f4d4cf5da

Jono said...

@efrenefren

Very true. Post updated.

Anonymous said...

NTFS
Advantages:

* Works natively and perfectly in Windows.
* Other operating systems support read support natively.
* Robust and journaled.
* Very high limits on maximum partition size
* Very high limits on maximum file size.
* Generally efficient at large partition sizes.

Disadvantages:

* Requires third party software to allow for write support on Linux and Mac OS X.
* Slower on Linux and Mac OS X because of the use of FUSE.
* Proprietary filesystem patented, and at the whim of, Microsoft.

FAT32
Advantages:

* Works natively and perfectly in all three operating systems.

Disadvantages:

* No journalling.
* Relatively low maximum partition size (2 Terabytes - not attainable yet but will be).
* Inefficient at large partition sizes.
* Maximum file size limited at 4GB.

– Jono of http://insidethebrackets.blogspot.com/2007/04/whats-best-cross-platform-filesystem.html

The results for the google search ‘best cross platform filesystem’ would mostly say that you use a FAT32 file system. But I agree with Jono when he chose NTFS over FAT32. Read what he has to say here: http://insidethebrackets.blogspot.com/2007/04/whats-best-cross-platform-filesystem.html

Anonymous said...

What about HFS? You could disable journaling and install hfsplus for Linux and hfsexplorer for Windows. It's currently the way I have mine setup now and it seems to be working rather well!

Jono said...

Thanks Derek I have updated the post.

E. said...

Thank you so much. I been trying to figure out this very problem. I'm trying to triple boot the big three (Ubuntu, xp, and OSX) . I wonder much slower ntfs3g is compared to osx's native file system.

Anonymous said...

Excellent info man. Thanks!

Can said...

Hi Jono, thanks for your best explanation.

From 2010, exFat is an another solution and I think it is a best solution for each systems. exFat supports larger than 4gb limitation as Fat32, and faster as much as Fat32 on each platforms.

But sisadvantages are, this file system is not supported Windows XP or lower versions and some other platforms. Requires installation a patch http://www.microsoft.com/download/en/details.aspx?id=19364

sydney removals said...

You could disable journaling and install hfsplus for Linux and hfsexplorer for Windows. It's currently the way I have mine setup now and it seems to be working rather well!

Anonymous said...

Hey Jono,

Some idiot has spammed you in my company name.
Can you kindly get rid of that inane sydney removal comment. Very embarrassing. MC

Post a Comment