A filesystem is a way of storing, organizing and accessing files (and/or directories) on a storage device. Some examples of filesystems are FAT, NTFS for Windows/DOS, HFS for MAC OS etc. In Linux, the popular filesystems are ext2, ext3 and ext4 filesystems. Some other filesystems such as ReiserFS are also natively supported by Linux. This article discusses various features of extended filesystems in Linux, i.e. ext2, ext3 and ext4.
See Also: Create and Convert Linux File Systems
Ext2 – Second Extended File System It was the first default file system in several Linux like RedHat and Debian. It was introduced in 1993. Developed by Rémy Card. It was to overcome limitation of legacy Ext file system. Ext2 does not have journaling feature. It’s being used for normally Flash based storage media like USB Flash drive, SD Card etc. Maximum file size can be from 16 GB to 2 TB ext2 file system size can be from 2 TB to 32 TB Maximum filename length: 255 bytes (255 characters) Maximum number of files: 10^18
Ext3 – Third Extended File System It was introduced in 2001. Developed by Stephen Tweedie. Linux integrated Kernel 2.4.15 with journaling feature. The main benefit of ext3 is that it allows journaling. Maximum file size can be from 16 GB to 2 TB ext3 file system size can be from 2 TB to 32 TB You can convert a ext2 file system to ext3 file system directly without any backup and restore. Directory can contain a maximum of 32,000 subdirectories. Maximum filename length is 255 bytes (255 characters) Maximum number of files is Variable
Ext4 – Fourth Extended File System It was introduced in 2008. Starting from Linux Kernel 2.6.28 ext4 was available. Maximum individual file size can be from 16 GB to 16 TB Maximum file system size is 1 EiB (exabyte) (1EiB = 1024PiB, 1PiB = 1024TiB, 1TiB = 1024GiB) Maximum filename length is 255 bytes (255 characters) Maximum number of files is 4 billion. Directory can contain a maximum of 64,000 subdirectories. You have the option of turning the journaling feature “off”. Other features like Sub Directory Scalability, Multiblock Allocation, Delayed Allocation, Fast FSCK etc