If partition is smaller than 32MB, mount_msdos(8) will yield "not an MSDOS
filesystem".
pmp->pm_Sectors is set by newfs_msdos(8) when the number of sectors is less
than MAXU16 even if asked to format in FAT32.
I choosed to fix mounting instead of formatting (newfs_msdos.c frightens me...)
FreeBSD fixed this in 2013.
Index: msdosfs_vfsops.c
===================================================================
RCS file: /cvs/src/sys/msdosfs/msdosfs_vfsops.c,v
retrieving revision 1.94
diff -u -p -r1.94 msdosfs_vfsops.c
--- msdosfs_vfsops.c 10 Aug 2020 05:18:46 -0000 1.94
+++ msdosfs_vfsops.c 22 Apr 2021 19:35:40 -0000
@@ -334,8 +334,7 @@ msdosfs_mountfs(struct vnode *devvp, str
}
if (pmp->pm_RootDirEnts == 0) {
- if (pmp->pm_Sectors || pmp->pm_FATsecs ||
- getushort(b710->bpbFSVers)) {
+ if (pmp->pm_FATsecs || getushort(b710->bpbFSVers)) {
error = EINVAL;
goto error_exit;
}