30

What USB drive filesystem works out of the box on Windows, Linux, and OS X so that, when I give a 64GB USB drive to my dad, I don't have to tell him to first type in
sudo apt-get install exfat-fuse exfat-utils ntfs-3g in the terminal, for example?

5
  • 2
    There really isn't one. Those filesystems that are cross-platform out of the box don't support partitions as large as 64GB. Which means you are going to need to provide the drivers to those filesystems that do support partition size that large. You can't tell your father to type in that command once and be done with it?
    – Ramhound
    Sep 23, 2015 at 13:23
  • I think that really depends on which filesystems you selected when you compiled your Linux kernel. Or when your Distribution did it for you, if you went that way. Sep 23, 2015 at 15:34
  • 1
    What, you didn't already install all those nifty required packages for your dad? :)
    – Ángel
    Sep 23, 2015 at 21:22
  • The "most correct" answer changes depending on which versions of each platform in particular you need to support. ExFAT is supported well on modern versions of every OS, but if you need to support XP or Mac OS X Leopard (10.5) or older, or some arbitrarily old versions of Linux it won't work OOBE. Otherwise NTFS is your next best bet if FAT32 is too restrictive.
    – afrazier
    Sep 24, 2015 at 14:39
  • @Ramhound And those that do work across all the platforms are really poor file systems due to a history of layers upon layers of workarounds for limitations of earlier versions.
    – kasperd
    Sep 24, 2015 at 19:12

6 Answers 6

24

Update 2018-05-25: Since I initially wrote this answer in 2015, exFAT has continued to grow in popularity, largely due to the similarly increasing popularity of SDXC and the need for a modern cross-platform filesystem. At least two Ubuntu flavors, Kylin (desktop) and MATE (core + desktop), include exFAT support by default as of 18.04. It's still patent-encumbered, but, then again, so is the rest of the FAT family. Some people think they can work around these patents; others have tried challenging them, with little success.

The FAT series of filesystems tends to be the most widely supported on modern day operating systems. It’s a very simple filesystem, and a basic implementation can be written quickly for any platform. FAT16 is probably the most widely supported variety, followed closely by FAT32. For a 64 GB drive, FAT32 would be ideal. As others have mentioned, the catch is that you'd need to use a third party utility to format the partition if you're using Windows because the built-in Windows utility can’t create FAT32 partitions larger than 32 GB. Additionally, FAT32 can't store files larger than 4 GiB, since the size of each file is stored as a 32-bit unsigned integer. FAT32 is probably your best bet if you can tolerate the initial hassle of formatting the drive and the file size limit.

exFAT is starting to see more widespread use, particularly on mobile platforms, as it’s a standard format for large SD cards (SDXC). You'll likely find native support for exFAT on any device with an SDXC card reader. As you've noticed, some platforms—or specific versions/distros of platforms—don’t ship the drivers by default, usually because the distro chooses to avoid “non-free” software. The entire FAT family is patent-encumbered, but exFAT has the most recent patents of the group (e.g., US8321439 and US8583708), most of which won't expire for a long time. My recommendation would be to use exFAT if FAT32 is too restrictive, particularly if you’ll often be using the drive on Windows. Yes, you may need to install drivers on some Linux systems, but they are useful drivers that should probably be installed anyway, and the patent concerns are unlikely to be an issue for individual users.

Formatting the drive as UDF would overcome some of the limitations of FAT32. However, some platforms are likely to present the device to the user as an optical drive, which could be cumbersome. You’d also probably need a third-party utility to format the drive on Windows or Mac. If you go this route, make sure to use plain UDF, rather than VAT or spared. The latter two builds are for certain types of optical media and won’t work as expected on a flash drive. Allegedly, UDF doesn’t support files larger than 1GB on Linux due to a lazy fix for a security vulnerability (CVE-2006-4145)—I haven’t verified this. There’s also some evidence to indicate that Windows may outright refuse to handle non-optical media formatted as UDF, but I haven’t tested this either.

2
19

I would recommend the FAT32 filesystem.

The FAT32 filesystem works out of the box on almost all OSes. Most USB flash drives come preformatted as FAT32.

You will have to make 2 partitions on the USB, and they will only be visible on Linux or Mac. This is because FAT32 can only handle 32GB partition sizes at most. In Windows, it will only show the first partition.

FAT can only handle partition sizes of 4GB, so I would not recommend it because as I said Windows will only show the first partition.

NTFS needs additional drivers on Linux and Mac, and you may run into problems with file permissions.

13
  • 10
    +1 for the FAT32 but your answer could do with mentioning the partition size limitation of FAT32 as the OP says he'd like to hand his dad a 64GB disk... FAT32 supports 32GB max partition size if formatted in Windows
    – Kinnectus
    Sep 23, 2015 at 13:17
  • 12
    @BigChris FYI, that 32GB limitation is only in Windows' default format tool. Other tools will create larger FAT32 partitions on Windows. Sep 23, 2015 at 14:15
  • 3
    And Windows will happily read a large FAT32 partition, bigger than 32 gb Sep 23, 2015 at 14:43
  • 12
    Also, the maximum files size for FAT32 is limited to 4GB.
    – algiogia
    Sep 23, 2015 at 15:12
  • 1
    @BigChris A flash drive can have multiple partitions, but Windows will only recognize and read from the first partition. It will refuse to mount, delete, or format the others. This stands as of Windows 10, though the other partitions will show up in diskmgr.msc. Some motherboards can be configured to present flash drives as external hard drives, which circumvents this problem, but can introduce other caveats.
    – Zenexer
    Sep 23, 2015 at 19:24
8

UDF is supported by most modern operating systems and does not have the severe limitations of FAT32. See the compatibility table on Wikipedia.

1
  • 1
    I've tried using UDF, and ran into issues on all platforms. It's good on paper but isn't mature in the implementation and support.
    – JDługosz
    Sep 24, 2015 at 5:49
6

FAT32 works almost on every device but but Windows only allows FAT32 partition to be 32GB. You need to format it using Linux (eg. gparted) if you want 64GB. Windows will not have any problems with reading/writing from/to that partition.

NTFS would also work but you may encounter problems with file permissions.

5
  • 4
    There're 3rd party tools to format larger FAT32 partitions in Windows. The 32GB limit is only in the format tool; it'll happily read/write to larger ones. I know I've done it with a 64GB sd card; might've done with a 128 too. (Not sure, and I'm not home to check.) Sep 23, 2015 at 13:52
  • @rav_kr Macs cannot write to NTFS filesystems out of the box, so FAT32 seems the only option.
    – Mihai
    Sep 23, 2015 at 14:12
  • We shouldn't really recommend NTFS for any use. It inherently has stability issues (no journal, no copy-on-write, etc... all the things a modern filesystem has standard). It's not portable, and no device natively can read and write to it.
    – SnakeDoc
    Sep 23, 2015 at 22:22
  • 1
    @SnakeDoc NTFS does have Journaling. COW is a design decision, it’s not “modern”. NTFS is rock solid.
    – Daniel B
    Sep 24, 2015 at 6:56
  • 3
    @SnakeDoc: NTFS is journaled, not sure where you got the idea that it's not. It also supports ownership, ACLs, hard links, symbolic links, mount points (that aren't drive letters), multiple data streams, transparent compression or encryption, large files, very long file names, and many other features. Copy-on-write is the main "modern" feature it's lacking, and even many Linux filesystems lack it.
    – CBHacking
    Sep 24, 2015 at 7:01
3

FAT is the most widely supported partition type. Allows volumes up to 4GB and file size up to 2GB. This is also supported by most devices (like TVs, cars, etc)

FAT32 also works on all the mentioned systems, allows volumes from 512 MB to 2 TB and file size up to 4GB. As mentioned by others Windows XP only allows volumes up to 32GB.

NTFS is only supported by Windows versions based on NT (Windows 200 or Windows XP and above) and *NIX systems

Source: https://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/choosing_between_ntfs_fat_and_fat32.mspx?mfr=true

I personally creates two partitions on (big enough) USB drives, so I'm sure I'll always have a way to store data if I visit a place.

3
  • Also, you can use NFS on *NIX to access NTFS drives. Probably there's something for Mac as well. Sep 23, 2015 at 15:56
  • 3
    @IsmaelMiguel NFS has nothing to do with NTFS. It is a protocol for accessing files over a network.
    – suriv
    Sep 23, 2015 at 16:22
  • I remember using NFS configured to read local NTFS drives. But, my memory may fail since it was around 6-8 years ago. But *NIX usually has NTFS support almost out-of-the-box, on some distributions. Sep 23, 2015 at 16:26
1

To the first question, "What is the most 'cross-platform' high capacity filesystem?": There isn't one, but UDF would be closest if only it was more useful in non-optical formats. Excluding Windows OSes, HFS+ turns out to be pretty useful for moving across the other common platforms, Linux & OSX. (But sadly, not BSD: https://en.wikipedia.org/wiki/Comparison_of_file_systems).

I recently was doing a lot of bulk file transfers (terabytes) between Linux and OSX systems, and UDF or ext2 seemed the natural choices for formatting the 5tb drives I was using for the transfers. Neither was perfectly satisfactory because of differences in partition schemes and or/poor native driver support. In the end, Linux was better at writing to HFS+ (sans journaling) than OSX was at reading anything else.

To the second question: Why not just format the drive so it works right on your dad's computer?

Not the answer you're looking for? Browse other questions tagged .