Re: max sizes for files and file systems

Albert D. Cahalan (acahalan@cs.uml.edu)
Fri, 6 Jul 2001 00:03:01 -0400 (EDT)


Derek Vadala writes:

> It's clear that under 2.4, the kernel imposes a limit of 2TB as the
> maximum file size and that some portion of the kernels before 2.4 had a
> limit of 2GB.
>
> However, it's not clear to me when the file size limit was increased, or
> what the maximum file system sizes under 2.0, 2.2 and 2.4 are. I realize
> that both of these values are also contingent on the filesystem used, but
> I'm wondering about what limits the kernel itself imposes.
>
> I'm also a bit unclear as to where the 2GB limit in kernels < 2.4 comes
> from. It appears to be a kernel imposed limit, but there also seems to be
> a lot conflicting information out there, blaming the problem on
> EXT2. However, from what I can tell, 2.0.39, 2.2.19 and 2.4.5 all use the
> same version (0.5b-95/08/09) of ext2-- either that or EXT2FS_VERSION and
> EXT2FS_DATE in .../include/linux/ext2_fs.h simply haven't been updated.

No 32-bit Linux system could exceed 1 TB on anything until this week.
This is caused by signed 32-bit math on units of 512 bytes.
Now there are experimental patches for larger devices.

The file access API was limited to signed 32-bit byte values.
Officially, this was fixed for the 2.4 series. Most distributions
shipped 2.2 series kernels with patches to allow large files.

The ext2, FAT, and NFSv2 filesystems all had a 32-bit file
size limit. For ext2 this was lifted just as the 2.2 series
came out, but only Alpha systems could use the large files.
FAT has not been fixed. NFSv2 has been replaced by NFSv3.

EXT2FS_VERSION has not been updated because feature flag bits
are being used instead.

I have a graph of ext2 limits:
http://www.cs.uml.edu/~acahalan/linux/ext2.gif

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/