FAT32 support on freebsd

From: Andreas Hecht <a.e.hecht_at_t-online.de>
Date: Sun, 20 Oct 2024 18:07:34 UTC
My FAT32 formatted portable SSD "Western Digital My Passport 25F3" does not
seem to be supported by FreeBSD. Mounting the drive works fine but I can not
access the data stored within it:

# mount -t msdosfs /dev/da0s1 /mnt
# cd /mnt
# ls -al
total 0

The 'ls -al' above should show a folder named 'data' stored in the
top level diretory of the drive. The folder does not show up but during
execution of 'ls -al' the following kernel message appears:

getblkx: maxsize(66560) > maxbcachebuf(65536)

I found that this particular drive uses 128 sectors per cluster. This
multiplied with 512 bytes per sector results in 65536 bytes per sector
which per FAT specification seems to be too much:
(https://www.cs.fsu.edu/~cop4610t/assignments/project3/spec/fatspec.pdf)
"Note however, that a value should never be used that results in a “bytes per
cluster” value (BPB_BytsPerSec * BPB_SecPerClus) greater than 32K (32 * 1024).
There is a misconception that values greater than this are OK."

What makes me wonder is that the same drive works fine with Debian 12 and
NetBSD 10. Is FreeBSD supposed to support this drive? Shall I send a problem
report?


-Andreas