Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 26 Apr 2003 23:20:09 +0930 (CST)
From:      "Daniel O'Connor" <doconnor@gsoft.com.au>
To:        <freebsd-stable@freebsd.org>
Subject:   msdosfs vs 250Gb hard disk
Message-ID:  <1093.128.39.153.23.1051365009.squirrel@cain.gsoft.com.au>

next in thread | raw e-mail | index | archive | help
I am attempting to utilise a 250Gb Maxtor external Firewire drive. To
obtain maximum portability I would prefer to format it as FAT32 (it comes
formatted that way) - that way Windows, Linux and FreeBSD machines can
access it.

Unfortunately FreeBSD doesn't grok really large FAT32 partitions :( When I
attempt to mount it, I get ->
mountmsdosfs(): disk too big, sorry

The code in question..
        if (pmp->pm_HugeSectors > 0xffffffff /
            (pmp->pm_BytesPerSec / sizeof(struct direntry)) + 1) {
                /*
                 * We cannot deal currently with this size of disk
                 * due to fileid limitations (see msdosfs_getattr and
                 * msdosfs_readdir)
                 */
                error = EINVAL;
                printf("mountmsdosfs(): disk too big, sorry\n");
                goto error_exit;
        }

So, I am guessing that since fileid is only 32 bits wide the macro which
generates fileid values for FAT will generate too large a number to be
stored.

Does anyone have an idea how I can work around or fix this problem? FS
internals are not my cup of tea :)

I think I will just resort to splitting the disk in two, but it would be
useful to be able to use the disk as a big blob. (The wastage wouldn't be
too bad as it will almost certainly end up with a few big files on it)

Thanks in advance :)

---
Daniel O'Connor software and network engineer
for Genesis Software - http://www.gsoft.com.au
"The nice thing about standards is that there
are so many of them to choose from."
  -- Andrew Tanenbaum





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