On Mon, Sep 09, 2019 at 11:23:49AM -0500, Jonathan A. Kollasch wrote: > On Mon, Sep 09, 2019 at 04:58:01PM +0100, Patrick Welche wrote: > > gpt add -a 1024k -l efi0 -s 256M -t efi wd0 (on -current/amd64) > > > > dk0: efi0, 524288 blocks at 2048, type: msdos > > > > # newfs_msdos -F 32 -b 4096 /dev/rdk0 > > newfs_msdos: 65404 clusters too few clusters for FAT32, need 65525 > > > > but 65525 * 8 = 524200 < 524288 ? > > > > Where does 65404 come from? > > > > The FATs and various other FS internal data structures take space, > apparently to the tune of 132 clusters, or 1056 sectors, or 540672 bytes. > > A 32-bit FAT for up to 65408 clusters is 511 sectors, FAT32 keeps a > duplicate copy of the fat, so you're up to 1022 sectors used already. > > There's also the boot sector and it's backup, the file system > information block(s?), any reserved sectors, and I forget how > it worked on FAT32 (it's different than FAT16/12) but maybe also the > root directory entries. > > The bit-width of the FAT is a function of the number of data clusters, > you'll just end up getting failures like this if you specify any more > than two of the partition/FS size, the cluster size, and the FAT width. > > Microsoft was helpful enough to publish the FAT spec specifically for > use in the EFI context.
Thanks - I'll experiment to find the magic number! (https://en.wikipedia.org/wiki/File_Allocation_Table#FAT32 suggests: Min. volume size 256 MiB-36 KiB (with 65525 clusters and 4 KiB sectors) maybe that should be a '+' sign...) Cheers, Patrick