Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 14 Jul 2005 00:20:46 +0000
From:      Tsampros Leonidas <ltsampros@upnet.gr>
To:        freebsd-questions@freebsd.org
Subject:   Re: mountmsdosfs(): disk too big still a problem?
Message-ID:  <20050714002046.GA13158@bifteki.lan>
In-Reply-To: <20050713235705.GA12910@bifteki.lan>
References:  <20050713235705.GA12910@bifteki.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jul 13, 2005 at 11:57:05PM +0000, Tsampros Leonidas wrote:
> On Wed, Jul 13, 2005 at 02:29:34PM -0500, Kevin Kinsey wrote:
> > Alex Teslik wrote:
> > 
> > >I have run into the "mountmsdosfs(); disk too big" problem while trying to
> > >mount a 250GB FAT32 drive. This problem is pretty well documented:
> > >
> > >http://www.atm.tut.fi/list-archive/freebsd-stable/msg11027.html
> > >
> > >but I couldn't find any documentation regarding it being fixed when I 
> > >googled
> > >around.
> > >I am running FreeBSD 4.10-RELEASE-p5 i386. Does anyone know if this 
> > >problem is
> > >fixed in 4.11 or 5.4?
> > >
> Recompile the kernel with 
> 
> options           MSDOSFS_LARGE
> 
> Works for me, 5.4-STABLE.

Of course , you have to be careful with this one.  From 5.3 Release
notes: 

The MSDOSFS_LARGE kernel option has been added to support FAT32
file systems bigger than 128GB. This option is disabled by default. It
uses at least 32 bytes of kernel memory for each file on disk;
furthermore it is only safe to use in certain controlled situations,
such as read-only mount with less than 1 million files and so
on. Exporting these large file systems over NFS is not supported.

>From cvs:

date: 2004/07/03 13:22:38;  author: tjr;  state: Exp;  lines: +23 -1
popular request, add a workaround that allows large (>128GB or so)
FAT32 filesystems to be mounted, subject to some fairly serious limitations.

This works by extending the internal pseudo-inode-numbers generated from
the file's starting cluster number to 64-bits, then creating a table
mapping these into arbitrary 32-bit inode numbers, which can fit in
struct dirent's d_fileno and struct vattr's va_fileid fields. The mappings
do not persist across unmounts or reboots, so it's not possible to export
these filesystems through NFS. The mapping table may grow to be rather
large, and may grow large enough to exhaust kernel memory on filesystems
with millions of files.

Don't enable this option unless you understand the consequences.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050714002046.GA13158>