I was reading the Kernel Documentation where it says

There are various limits imposed by the on-disk layout of ext2. Other limits are imposed by the current implementation of the kernel code. Many of the limits are determined at the time the filesystem is first created, and depend upon the block size chosen. The ratio of inodes to data blocks is fixed at filesystem creation time, so the only way to increase the number of inodes is to increase the size of the filesystem.

For 4Kb block size, the file size is 2048GB.

I have also read that during data block allocation it uses direct, double or triple indirection to data blocks. Whether it is the main factor ?

1 Answer 1


The 2TiB file size is limited by the i_blocks value in the inode which indicates the number of 512-bytes sector rather than the actual number of ext2 blocks allocated.

Referenced from: http://www.nongnu.org/ext2-doc/ext2.html

  • 2
    This limit was also overcome ages ago by the use of a flag in the inode that indicates that the i_blocks value is, in fact, in units of block size rather than 512 bytes. The triple indirect block structure though, can only address just over 4 TiB using a 4k block size.
    – psusi
    Commented Apr 21, 2014 at 14:31

You must log in to answer this question.

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