NTFS, exFAT, FAT32, ext4 File Systems Explained

File system is a standard for organizing data on a storage device like a hard drive or a solid state drive. It is applied when you format a drive or partition. Today there are lots of different file systems in use with the choices available depending on the operating system you’re using and the type of drive your formatting.

For example, in Windows OS if you want to format the SSD you’ll be able to choose between NTFS or exFAT file systems, whereas in Linux if you want to format the USB flash drive the file system options would be fat32 NTFS or ext4. So what are the differences between file systems and which should you choose.

FAT12, FAT16 and FAT32

File systems divide the storage space on a drive into virtual compartments known as clusters, maintain an index of where individual files are located and of available free space. The first Windows file system was known as the File Allocation Table or FAT, with three major variant developed known as FAT12, FAT16 and FAT32. Each FAT variant can divide a drive into an increasing number of clusters and supports an increasing maximum file size and volume size. For example FAT12 supported a maximum file and volume size of 32 megabytes, meanwhile FAT32 can store individual files up to 4 gigabytes in size and is limited to 32 gigabyte volumes if formatted in Windows, up to 2 terabytes when formatted with other operating systems, and has an absolute maximum volume size of 16 terabytes. FAT32 remains a popular filesystem due to its high level of compatibility across operating systems and is still widely used to format USB flash drives, memory cards and some other external storage devices.


Today the most popular Windows file system is the New Technology File System or NTFS. It was introduced in 1993 to overcome the limitations of FAT32 and has a file size limit of 16 exabytes (an exabyte is 1 million terabytes, so in practice with no file size constraint). NTFS is also a journaling file system which means that it maintains a record of changes, so it can recover following a system crash or power failure. NTFS also supports file permissions, file encryption and other features that make NTFS more suitable than a FAT32. For these reasons all modern versions of Windows must be installed on a drive which is NTFS formatted. The only real downside of NTFS is a lack of compatibility with older versions of Windows and non-Windows operating systems. For example, by default NTFS volumes are read-only in Mac OS and in older Linux distros, and may not be readable at all on other devices such as standalone media players.


exFAT or the extended File Allocation Table was introduced by Microsoft in 2006 as a file system optimized for high-capacity USB flash drives and memory cards. exFAT is less sophisticated than NTFS but has significant benefits over FAT32. The maximum file size is 16 exabytes or effectively unlimited, which makes exFAT the best choice for formatting memory cards. For this reason exFAT has been adopted by the SD card Association as the default file system for SDXC memory cards. In terms of compatibility, exFAT enjoys wider non-Windows support than NTFS. It has read and write support on Mac OS and recent versions of Android. Many Linux systems require extra drivers to be installed to access exFAT devices.

ext2, ext3, ext4

In 1992 the Extended File System or ext was launched specifically for the Linux operating system. In 1993 an update called Extended File System 2 or ext2 was then released and was for many years the default file system in many Linux distros.

By 2001 ext2 was upgraded to ext3 which introduced journaling to protect against corruption in the event of crashes or power failures. In 2008 the ext4 was introduced which is the most modern dedicated Linux file system. ext4 has a maximum file size of 16 terabytes and the maximum volume size of 1 exabyte. Neither Windows or Mac OS has a native ext2 ext3 or ext4 support.


HFS or the Hierarchical File System was introduced by Apple in 1985 for use in Mac OS. It offers a maximum file size of two gigabytes and a maximum volume size of two terabytes. HFS is also known as Mac OS Standard.

In 1998 HFS was upgraded to a new version called HFS+ or HFS Extended or otherwise known as Mac OS Extended. This edition added journaling and has a maximum file size and volume size of eight exabytes (when using Mac OS 10.4 or above). In 2017 Apple introduced a new file system called APFS or the Apple File System, which is optimized for SSDs and other solid state media. HFS, HFS+ and APFS are not natively supported by Windows, Linux or other non-Apple operating systems.


ZFS or the Zed File System was initially released in 2006 by Sun Microsystems. Since 2013 it has been developed by the Open ZFS project. ZFS differs from other file systems because it integrates a volume manager to control the storage hardware attached to a computer.

By integrating physical drive management with file system functionality, ZFS provides increased protection against data loss or corruption. ZFS is currently available for Linux, FreeBSD and TrueOS and in the future may be ported to Windows and Mac OS.

Which File System to Choose

For your system drive you should or must choose the file system for your chosen operating system which means NTFS for Windows, ext4 for a Linux distro or HFS+ or a APFS on a Mac.

For USB drives and flash memory cards Fat32 remains the best choice for devices below 32 gigabytes in capacity in order to maximize compatibility across platforms.

Meanwhile exFAT is the best choice for a flash drive or memory cards of 32 gigabyte capacity or more or when you need to store files greater than 4 gigabytes in size.

For external hard drives or SSDs, NTFS is the best choice for anybody who is entirely or primarily Windows-based, while exFAT is probably the best choice that anybody who regularly shares files between a PC and a Mac. Taking into account the file size and volume size limitations, FAT32 also remains an option for external drives that need to be accessed across a wide range of Windows, Mac and Linux systems.

To check the file system on the drive just go to an operating system, right click the drive to bring up properties and you’ll see the file system on the drive. If it’s not the one you want you can change it by reformatting the drive or by using file system converter software.