Different operating systems support different file systems. Your removable drive should use FAT32 for best compatibility, unless it’s bigger and needs NTFS. Mac-formatted drives use HFS+ and don’t work with Windows. And Linux has its own file systems, too.
Unfortunately, even typical computer users need to think about the different file systems and what they’re compatible with. Here’s what you need to know about file systems — and why there are so many different ones.
File Systems 101
Different file systems are simply different ways of organizing and storing files on a hard drive, flash drive, or any other storage device. Each storage device has one or more partitions, and each partition is “formatted” with a file system. The formatting process simply creates an empty file system of that type on the device.
A file system provides a way of separating the data on the drive into individual pieces, which are the files. It also provides a way to store data about these files — for example, their filenames, permissions, and other attributes. The file system also provides an index — a list of the files on the drive and where they’re located on the drive, so the operating system can see what’s on the drive in one place rather than combing through the entire drive to find a file.
Your operating system needs to understand a file system so it can display its contents, open files, and save files to it. If your operating system doesn’t understand a file system, you may be able to install a file system driver that provides support — or you just can’t use that file system with that operating system.
The metaphor here is a paper filing system — the bits of data on a computer are called “files,” and they’re organized in a “file system” the way paper files might be organized in file cabinets. There are different ways of organizing these files and storing data about them — “file systems.”
But Why Are There So Many?
Not all file systems are equal. Different file systems have different ways of organizing their data. Some file systems are faster than others, some have additional security features, and some support drives with large storage capacities while others only work on drives with a smaller amount of storage. Some file systems are more robust and resistant to file corruption, while others trade that robustness for additional speed.
There’s no one best file system for all uses. Each operating system tends to use its own file system, which the operating system developers also work on. Microsoft, Apple, and the Linux kernel developers all work on their own file systems. New file systems could be faster, more stable, scale better to larger storage devices, and have more features than old ones.
There’s a lot of work that goes into designing a file system, and it can be done in many different ways. A file system isn’t like a partition, which is simply a chunk of storage space. A file system specifies how files are laid out, organized, indexed, and how metadata is associated with them. There’s always room to tweak — and improve — how this is done.
Switching File Systems
Each partition is formatted with a file system. You may sometimes be able to “convert” a partition to a different file system and keep the data on it, but this is rarely an ideal option. Instead, you’ll probably want to copy your important data off the partition first.
Afterward, giving the partition a new file system is simply a matter of “formatting” it with that file system in the operating system that supports it. For example, if you have a Linux or Mac-formatted drive, you can format it with NTFS or FAT32 in Windows to get a Windows-formatted drive.
Operating systems automatically format partitions with the appropriate file system during the operating system installation process, too. If you have a Windows-formatted partition you want to install Linux on, the Linux installation process will format its NTFS or FAT32 partition with the Linux file system preferred by your Linux distribution of choice.
So, if you have a storage device and you want to use a different file system on it, just copy the files off it first to back them up. Then, format that drive with a tool like Disk Management in Windows, GParted in Linux, or Disk Utility in Mac OS X.
An Overview of Common File Systems
Here’s a quick overview of some of the more common file systems you’ll encounter. It’s not exhaustive — there are many other different ones.
- FAT32: FAT32 is an older Windows file system, but it’s still used on removable media devices — just the smaller ones, though. Larger external hard drives of 1 TB or so will likely come formatted with NTFS. You’ll only want to use this with small storage devices or for compatibility with other devices like digital cameras, game consoles, set-top boxes, and other devices that just support FAT32 and not the newer NTFS file system.
- NTFS: Modern versions of Windows — since Windows XP — use the NTFS file system for their system partition. External drives can be formatted with either FAT32 or NTFS.
- HFS+: Macs use HFS+ for their internal partitions, and they like to format external drives with HFS+ too — this is required to use an external drive with Time Machine so file system attributes can be properly backed up, for example. Macs can also read and write to FAT32 file systems, although they can only read from NTFS file systems by default — you’d need third-party software to write to NTFS file systems from a Mac.
- Ext2/Ext3/Ext4: You’ll often see the Ext2, Ext3, and Ext4 file systems on Linux. Ext2 is an older file systems, and it lacks important features like journaling — if the power goes out or a computer crashes while writing to an ext2 drive, data may be lost. Ext3 adds these robustness features at the cost of some speed. Ext4 is more modern and faster — it’s the default file system on most Linux distributions now, and is faster. Windows and Mac don’t support these file systems — you’ll need a third-party tool to access files on such file systems. For this reason, it’s often ideal to format your Linux system partitions as ext4 and leave removable devices formatted with FAT32 or NTFS if you need compatibility with other operating systems. Linux can read and write to both FAT32 or NTFS.
- Btrfs: Btrfs — “better file system” — is a newer Linux file system that’s still in development. It isn’t the default on most Linux distributions at this point, but it will probably replace Ext4 one day. The goal is to provide additional features that allow Linux to scale to larger amounts of storage.
- Swap: On Linux, the “swap” file system isn’t really a file system. A partition formatted as “swap” can just be used as swap space by the operating system — it’s like the page file on Windows, but requires a dedicated partition.
A typical computer user doesn’t need to know most of this stuff — it should be transparent and simple — but knowing the basics helps you understand questions like, “Why doesn’t this Mac-formatted drive work with my Windows PC?” and “Should I format this USB hard drive as FAT32 or NTFS?”