On Tue, Nov 29, 2022 at 10:51:42PM +0200, Efraim Flashner wrote: > I was working on using a grub-efi system image for aarch64 and I got the > following error: > 'Error: FAT sector size mismatch (fs=1024, dev=512)' > I traced it back to u-boot¹. u-boot wouldn't chainload grub if the > device block size and the filesystem sector size doesn't line up. I > changed the line in (gnu build image) in make-vfat-image to use '-S 512' > for esp partitions and was able to load the grub menu from u-boot. > > I spent some time looking through the git history but I wasn't able to > find anything to suggest why we have 1024 byte sectors there > specifically. > > ¹ https://source.denx.de/u-boot/u-boot/-/blob/master/fs/fat/fat.c#L589 Normally I'd be ok with hardcoding 512 for the sector size to fix this, but then I remembered that there are 4k block size disks which actually declare themselves as having 4k blocks and not emulating 512 byte blocks. What do you think? I suppose one option would be to patch u-boot to not demand they be equal, but that only works with guix build u-boot. We could force 512, u-boot is the only thing I've come across so far that cares and most people² use µSD cards which advertise 512 byte blocks. Maybe change it to 512 and add a TODO to revisit it later as needed? ² citation needed -- Efraim Flashner אפרים פלשנר GPG key = A28B F40C 3E55 1372 662D 14F7 41AA E7DC CA3D 8351 Confidentiality cannot be guaranteed on emails sent or received unencrypted