Subject: fat32 size limitation notes [was Re: large inode numbers]
To: Jason Thorpe <thorpej@wasabisystems.com>
From: Darrin B. Jewell <dbj@NetBSD.org>
List: tech-kern
Date: 12/18/2003 00:59:02
Jason Thorpe <thorpej@wasabisystems.com> writes:
> Even WinXP seems to disallow FAT file systems of > ~30G (I don't
> remember the exact number, but I had to do a multiple partition dance
> on an external Firewire drive that my wife wanted to use to use on
> both her PC and Mac laptop to store Photoshop files...)

FWIW I gathered the following notes when I had to do pretty much
the exact same dance (with similar motivations) a few months ago.

Microsoft articles Q184006 and Q314463 discussus fat32 limitations
on microsoft software:
  http://support.microsoft.com/default.aspx?scid=kb;EN-US;314463
  http://support.microsoft.com/default.aspx?scid=kb;EN-US;184006
(I think the ultimate limit is approximately 8 terabytes)

Last time I tried to mount a large (250GB) fat32 filesystem on netbsd,
I ran into two different problems.

1. There's a size check and comment on line 512 of msdosfs_vfsops.c:

 if (pmp->pm_HugeSectors > 0xffffffff / dirsperblk + 1) {
    /*
     * We cannot deal currently with this size of disk
     * due to fileid limitations (see msdosfs_getattr and
     * msdosfs_readdir)
     */
    error = EINVAL;
    goto error_exit;
  }

2. our implementation of fsck_msdos attemps to load the entire file
allocation table into memory and then work on it.  This becomes
impractical on large filesystems.

Darrin