Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why are FAT32 disks limited to 4GB files?

I'm not looking for a workaround; I'd like an explanation. Most of the links I found through Google just tell me that the file limit is 4GB, but not why.

I am aware of the explanation by Wikipedia: http://en.wikipedia.org/wiki/File_Allocation_Table#FAT32

But this still does not go into detail about why. (What does SCANDISK have to do with it?)

Maybe then I will understand whether it's possible to overcome the 4GB file size limit.

like image 600
user5243421 Avatar asked Jan 11 '11 20:01

user5243421


People also ask

Why does FAT32 not allow single files 4GB?

This is due to FAT32 limitation. Files larger than 4GB can NOT be stored on a FAT32 volume. Formatting the flash drive as exFAT or NTFS will resolve this issue.

How do I bypass 4GB limitation on FAT32?

How to Transfer Files Larger than 4GB to FAT32 with or without Formatting Free. You must try to break the FAT32 file size limit to be able to save some extremely large files. The only solution is to change the file system to the other Windows-compatible file systems, usually NTFS.

Why does FAT32 have maximum file size?

The FAT32 was an enhancement of the FAT file system and was based on 32-bit file allocation table entries, rather than the 16-bit entries used by the previous FAT system. As a result, FAT32 supports much larger disk or partition sizes (up to 2 TB).

How do I copy a 5gb file to FAT32?

Step 1: Install and run AOMEO Partition Assistant Standard. Right click the FAT partition you to which you want to copy large files, choose Advanced and then click ''Convert to NTFS''. Step 2: In the small pop-out window, click ''OK'' to continue. Step 3: Then, click ''Apply'' and ''Proceed'' to commit the operation.


2 Answers

Because FAT32 stores 32-bit file sizes and the maximum you can store in 32 bits is 2^32-1 ~= 4.29e9. 2^32-1 bytes = 4GB - 1 byte.

(This is, in fact, explained in the Wikipedia article.)

like image 87
Fred Foo Avatar answered Oct 17 '22 19:10

Fred Foo


To extend that answer, FAT32 is derived from FAT16 and FAT12. When FAT12 was introduced, PCs ran a 16-bit OS, and there were no drives larger than ten megabytes. I don't think anyone was expecting that anyone on a PC would ever need a file that was four hundred times the size of the largest available drive. Further, even if Microsoft had the foresight to allocate an extra byte for each directory entry to hold bits 32-39 of the file size (allowing files up to one terabyte each) it's doubtful any application programmers would have used it. No languages provided convenient support for integer math bigger than 32 bits; even 32-bit maths were considered pretty fancy.

A bigger question in my mind is why I'm unaware of any efforts to move toward a standard non-FAT32 storage interface that isn't based on sequentially-numbered sectors. Both flash drives and hard drives could benefit from knowing the logical significance of various sector writes (in the case of flash, because it would remove the need to copy deleted sectors when performing wear management; in the case of hard drives, because it would allow writes to be resequenced in ways that would not violate data consistency requirements).

like image 26
supercat Avatar answered Oct 17 '22 17:10

supercat