Page MenuHomeFreeBSD

bsdinstall: create /EFI/BOOT directory in ESP
ClosedPublic

Authored by mhorne on Jan 15 2021, 4:18 PM.

Details

Summary

If the installer is creating a new ESP, then this directory will not
exist and the subsequent cp will fail silently. This is usually of no
consequence if /EFI/freebsd/loader.efi is set up correctly.

Test Plan

bsdinstall to a blank disk, verify that /EFI/BOOT/BOOT${arch}.EFI is present on the ESP.

Diff Detail

Repository
R10 FreeBSD src repository
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

mhorne created this revision.

Ping. Any objection to this patch?

The dirname got me thinking and that lead to these larger suggestions, as well as moving it earlier.

usr.sbin/bsdinstall/scripts/bootconfig
134–137

BOOTDIR="/efi/boot"
BOOTNAME="${BOOTDIR}/boot${ARCHBOOTNAME}.efi
FREEBSD_BOOTDIR="/efi/freebsd"

153–154

mkdir -p "${mntpt}/${FREEBSD_BOOTDIR}" "${mntpt}/${BOOTDIR}"

154–155

"${mntpt}/${FREEBSD_BOOTDIR}/loader.efi

168

This is too late. I'd suggest above.

usr.sbin/bsdinstall/scripts/bootconfig
168

Yep, that is much better. Will update shortly.

Incorporate imp's suggestions.

One further simplification, use $FREEBSD_BOOTNAME instead of $FREEBSD_BOOTDIR/loader.efi.

This revision is now accepted and ready to land.Jan 27 2021, 10:41 PM