From nobody Thu Feb 26 18:16:34 2026 X-Original-To: dev-commits-src-branches@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4fMKRD4vV2z6T3PF for ; Thu, 26 Feb 2026 18:16:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R12" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 4fMKRD1vGdz3hDS for ; Thu, 26 Feb 2026 18:16:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772129800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qYXnwbz5Pv485kcbL4nEMSRL6nMOMthFDh2FukSzhy8=; b=tt6foxJnp8o1UNu+sfakMQxrX29kJuONV2xyezJsvpSs9fAcCIdXd2Mb4Wsik1U3NxeVyg 9mcxha0mGKCHSb53CqDGZpGvPqOxyOQweXCab0Gh2TA773o3qsYwq5f2WhR6ZKGBNHVcL3 yQVgOb8lz2krIm9zf2Fi6FZjC82+T0fJtxQ/vw+tcaUQgB4H3T5HWtZC37vBDCrezxJPYr eTrnvwMDrL8Uqtup20i/2sb0sM/zaXUcXYtI69PusTCe6inSSxbGQ7EWZaLxNE0btw19XM OgLAVKDmQi386pI6j4h+w6xxGA9Cyab/OjaOBYz2oZok4kC5/kQ4ysX4Mdr6Jg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1772129800; a=rsa-sha256; cv=none; b=o7ponKKpaiDllQZkeR19Qi5SfThlajQKwuTQOjiCoLPnea3rwHrOgxSoWzijI+PQRA1r2K CzLA8r9s5YKs380309CTLRuGvzSdKB3+8iWv/UEdOHaIEOaYL+i6LKPGzUsTDQPmgB064/ YEOvc8taLiEBzkOKX4y17Ij2S2XTF1NbqQwNKlqaCxn2t8XJ0GuuIQTHcpRJzgp61yLfxc RfLMglpqeaBGws2WQ9bkVvlA+PWhZe64ZaQrGq5sH2RB9Y2PSW76hKSxRwKobCs/hVMaNI f25iR//EMxdHiO7CJo4rg2XdpTqrfxOX5Kvha4xxCZ8ocZgBdERN/hRd1G06LQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1772129800; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qYXnwbz5Pv485kcbL4nEMSRL6nMOMthFDh2FukSzhy8=; b=Ozrk5dj1BWy08j9FKgqphm+zAYPxPuz2bDcwAF9Hy0EmI8awDtNw0TLJJws4Xiz/i53SHL Me2gyTKMLCqFlKox+oZanSzoxh5Gtd92r+nZ1yWNwb6Ta3h1AsLb1xpSuQ7G3rsFHiwPxX LonzoVrQMz3E3UCjCIQzP3OrAW7hJoIzIW+EtGq+Hu2rSm/AsR3zjr+TuvQhjMyDC7Z+Gx c/LfwqMbU7qy+hnXWSzeMXCI1DZglT1dEANsPaOiTRPOnA1mfBxeRicUGZ2wLe/6dNEPQo o76Ftg6ccMBrGRdDCxT8Rl2951cGDWWR1APNL0MXFqqqwnEnKtQUiUAFTdFClA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4fMKRD1JdwzjcS for ; Thu, 26 Feb 2026 18:16:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 44e22 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Thu, 26 Feb 2026 18:16:34 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Cc: Ahmad Khalifa From: Colin Percival Subject: git: 3cf73e195af3 - releng/14.4 - bsdinstall: fix EFI boot entry creation List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-branches@freebsd.org Sender: owner-dev-commits-src-branches@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: cperciva X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.4 X-Git-Reftype: branch X-Git-Commit: 3cf73e195af3d4693d1e52de0a91b6d4b3fb8b5c Auto-Submitted: auto-generated Date: Thu, 26 Feb 2026 18:16:34 +0000 Message-Id: <69a08e02.44e22.7ecc78d6@gitrepo.freebsd.org> The branch releng/14.4 has been updated by cperciva: URL: https://cgit.FreeBSD.org/src/commit/?id=3cf73e195af3d4693d1e52de0a91b6d4b3fb8b5c commit 3cf73e195af3d4693d1e52de0a91b6d4b3fb8b5c Author: Ahmad Khalifa AuthorDate: 2026-02-24 20:11:32 +0000 Commit: Colin Percival CommitDate: 2026-02-26 16:50:15 +0000 bsdinstall: fix EFI boot entry creation update_uefi_bootentry assumes that the caller sets FREEBSD_BOOTNAME and mntpt, which isn't the case anymore. The result is that there is no "FreeBSD" boot entry created/updated after install. Most machines manage to boot from the removable media path (if the loader is installed there too), but some don't. Take the loader's path as an argument and rename the variable used in the ZFS mirror loop so mntpt can be reused below. Also mark nentries as a local variable so it doesn't leak out of the function. PR: 293385 Fixes: 494de51bc0074472d1b01604f085daea0844f240 MFC after: 2 days Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D55469 (cherry picked from commit 0fd91c489134643ac9e38c0f55ba7464fe892c5e) (cherry picked from commit cfdd90abab51581120da75b45018a79237228b33) --- usr.sbin/bsdinstall/scripts/bootconfig | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/usr.sbin/bsdinstall/scripts/bootconfig b/usr.sbin/bsdinstall/scripts/bootconfig index ba9a4369429c..5bcc49084617 100755 --- a/usr.sbin/bsdinstall/scripts/bootconfig +++ b/usr.sbin/bsdinstall/scripts/bootconfig @@ -80,11 +80,13 @@ uefi_copy_loader() update_uefi_bootentry() { - nentries=$(efibootmgr | grep -c "${EFI_LABEL_NAME}$") + local nentries=$(efibootmgr | grep -c "${EFI_LABEL_NAME}$") + local loader_path=$1 + # No entries so directly create one and return if [ ${nentries} -eq 0 ]; then f_dprintf "Creating UEFI boot entry" - efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${loader_path}" > /dev/null return fi @@ -94,13 +96,13 @@ update_uefi_bootentry() for entry in $(efibootmgr | awk "\$NF == \"$EFI_LABEL_NAME\" { sub(/.*Boot/,\"\", \$1); sub(/\*/,\"\", \$1); print \$1 }"); do efibootmgr -B -b ${entry} done - efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$EFI_LABEL_NAME" --loader "${loader_path}" > /dev/null return fi FREEBSD_BOOTLABEL=$(dialog_uefi_entryname "${EFI_LABEL_NAME}") [ $? -eq $DIALOG_CANCEL ] && exit 1 - efibootmgr --create --activate --label "$FREEBSD_BOOTLABEL" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null + efibootmgr --create --activate --label "$FREEBSD_BOOTLABEL" --loader "${loader_path}" > /dev/null } f_dialog_title "Boot Configuration" @@ -148,21 +150,22 @@ if [ -n "$(awk '{if ($2=="/boot/efi") printf("%s\n",$1);}' $PATH_FSTAB)" ]; then # over gmirror, so we only do this for ZFS. esps=${TMPDIR:-"/tmp"}/bsdinstall-esps if [ -f "$esps" ]; then - mntpt=$(mktemp -d -t bsdinstall-esp) + tmpmnt=$(mktemp -d -t bsdinstall-esp) for dev in $(cat $esps); do f_dprintf "Installing ${file} onto redundant ESP ${dev}" - mount -t msdos "$dev" "$mntpt" + mount -t msdos "$dev" "$tmpmnt" uefi_copy_loader "$BSDINSTALL_CHROOT/boot/${file}" \ - "${mntpt}/efi/freebsd" "${mntpt}/efi/boot" \ + "${tmpmnt}/efi/freebsd" "${tmpmnt}/efi/boot" \ boot${ARCHBOOTNAME}.efi - umount "$mntpt" + umount "$tmpmnt" done - rmdir "${mntpt}" + rmdir "${tmpmnt}" fi - # Try to set the UEFI NV BootXXXX variables to record the boot location + # Try to set the UEFI NV BootXXXX variables to record the boot location. + # Note that the ESP is mounted at ${mntpt}/efi. if [ "$BSDINSTALL_CONFIGCURRENT" ] && [ "$ARCHBOOTNAME" != ia32 ]; then - update_uefi_bootentry + update_uefi_bootentry "${mntpt}/efi/freebsd/${file}" fi f_dprintf "Finished configuring ESP"