Bug 224943 - Feature Enhancement: Installer support for EFI without boot1
Summary: Feature Enhancement: Installer support for EFI without boot1
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: CURRENT
Hardware: amd64 Any
: --- Affects Many People
Assignee: freebsd-sysinstall (Nobody)
Keywords: patch
Depends on:
Reported: 2018-01-05 22:04 UTC by Nathan Whitehorn
Modified: 2018-08-05 04:54 UTC (History)
1 user (show)

See Also:

Patches to partition editor to make ESP (1.11 KB, patch)
2018-01-05 22:04 UTC, Nathan Whitehorn
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Nathan Whitehorn freebsd_committer 2018-01-05 22:04:51 UTC
Created attachment 189454 [details]
Patches to partition editor to make ESP

This is a top-level bug for installer support for "new-style" UEFI booting in which loader.efi lives on the ESP.

I am aware as of Jan. 5 of the following issues:
- Installer needs to make/use a real ESP instead of dd'ing boot1.efifat. Patch attached that makes or reuses one and mounts it at /efi.

- Installer needs to extract loader.efi to do. This is easily accomplished by setting it to install to /efi/efi/blah. Two caveats:
  - This might break the upgrade path for people using boot1.efi.
  - Scripted installs are currently broken in this configuration as a result of a bug in bsdtar when tarballs are extracted with directory entries that including FAT mountpoints and creation/modification time setting is on. Interactive installs are unaffected as we have a private libarchive frontend in the installer that works around the issue.

- Installer needs to run efibootmgr in the "bsdinstall bootconfig" step.
Comment 1 Warner Losh freebsd_committer 2018-01-05 22:19:22 UTC
One issue too is that people upgrading may have ultra-super-tiny ESPs due to unwise choices in the past.

SuperMicro, and others, require additional hacking to get the boot order to do the right thing above and beyond efibootmgr.