msdosfs vs 250Gb hard disk

Daniel O'Connor doconnor at gsoft.com.au
Sat Apr 26 06:50:17 PDT 2003


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





More information about the freebsd-stable mailing list