Solved Upgrading bootloader on ZFS mirror

I am not sure if this violates the UEFI standard.
It seems to be OK, according to "EFI system partition" entry of Wikipedia, but if I recall correctly, I've seen a page (possibly by Microsoft) which said to use FAT32, but FAT16 is "allowed". Possibly, default loader of Windows hesitates to read something from FAT12 ESP.


But I do not want to use a +260MB sized partition for a ~900KB binary.
It depends on the implementation of specific UEFI firmwares. Possibly some UEFI firmware forces its upgrade image to be located on specific directory, filename in ESP. It could require a large amount of free space in ESP.
 
It depends on the implementation of specific UEFI firmwares. Possibly some UEFI firmware forces its upgrade image to be located on specific directory, filename in ESP. It could require a large amount of free space in ESP.
You are right, I didn't think about this usecase. Fortunatly, on my personal machines I get away with the typical "bios update images" for USB sticks which some vendors provide, like lenovo for my laptop.
 
I'd avoid gmirror. I'd do updates manually between multiple partitions.

By updating manually, you can be sure the new binary is there and complete (or missing entirely).

But gmirror has to write to multiple disks and can suffers from tearing. Since the BIOS accesses the raw partitions and knows nothing about the metadata from gmirror that normally protects access within FreeBSD.

Warner
 
The UEFI standard requires FAT12, FAT16 and FAT32 be supported. If it works for your machine, great. But there are enough buggy BIOSes that we can't install FAT12 by default. I've had to help other debug why FAT12 didn't work. It had been removed from the BIOS when it dropped floppy support. And it happened more than once, so it's unwise to rely on it by making it default in the installer.
 
By updating manually, you can be sure the new binary is there and complete (or missing entirely).
It would be nice if a script to update is auto-genrated within initial setup time, used to install loader.efi (or boot1.efi), and kept somewhere in the installed environment permanently for later use by make installworld.
 
Back
Top