Page MenuHomeFreeBSD

D42150.id128521.diff
No OneTemporary

D42150.id128521.diff

diff --git a/usr.sbin/bsdinstall/scripts/bootconfig b/usr.sbin/bsdinstall/scripts/bootconfig
--- a/usr.sbin/bsdinstall/scripts/bootconfig
+++ b/usr.sbin/bsdinstall/scripts/bootconfig
@@ -85,7 +85,29 @@
efibootmgr --create --activate --label "$FREEBSD_BOOTLABEL" --loader "${mntpt}/${FREEBSD_BOOTNAME}" > /dev/null
}
-f_dialog_title "Boot Configuration"
+install_uefi_loader()
+{
+ mkdir -p "${mntpt}/${FREEBSD_BOOTDIR}" "${mntpt}/${BOOTDIR}"
+ cp "$BSDINSTALL_CHROOT/boot/loader.efi" "${mntpt}/${FREEBSD_BOOTNAME}"
+
+ #
+ # The following shouldn't be necessary. UEFI defines a way to
+ # specifically select what to boot (which we do via
+ # efibootmgr). However, virtual environments often times lack
+ # support for the NV variables efibootmgr sets. In addition,
+ # some UEFI implementations have features that interfere with
+ # the setting of these variables. To combat that, we install the
+ # default removable media boot file as a fallback if it doesn't
+ # exist. We don't install it all the time since that can
+ # interfere with other installations on the drive (like rEFInd).
+ #
+ if [ ! -f "${mntpt}/${BOOTNAME}" ]; then
+ cp "$BSDINSTALL_CHROOT/boot/loader.efi" "${mntpt}/${BOOTNAME}"
+ fi
+
+}
+
+f_dialog_title "Boot configuration"
f_dialog_backtitle "$OSNAME Installer"
if [ `uname -m` == powerpc ]; then
@@ -116,28 +138,24 @@
mntpt="$BSDINSTALL_CHROOT/boot/efi"
f_dprintf "Installing loader.efi onto ESP"
- mkdir -p "${mntpt}/${FREEBSD_BOOTDIR}" "${mntpt}/${BOOTDIR}"
- cp "$BSDINSTALL_CHROOT/boot/loader.efi" "${mntpt}/${FREEBSD_BOOTNAME}"
- #
- # The following shouldn't be necessary. UEFI defines a way to
- # specifically select what to boot (which we do via
- # efibootmgr). However, virtual environments often times lack
- # support for the NV variables efibootmgr sets. In addition,
- # some UEFI implementations have features that interfere with
- # the setting of these variables. To combat that, we install the
- # default removable media boot file as a fallback if it doesn't
- # exist. We don't install it all the time since that can
- # interfere with other installations on the drive (like rEFInd).
- #
- if [ ! -f "${mntpt}/${BOOTNAME}" ]; then
- cp "$BSDINSTALL_CHROOT/boot/loader.efi" "${mntpt}/${BOOTNAME}"
- fi
+ install_uefi_loader
if [ "$BSDINSTALL_CONFIGCURRENT" ]; then
update_uefi_bootentry
fi
+ for dev in /dev/gpt/efiboot*; do
+ if [ "$dev" = "/dev/gpt/efiboot0" ]; then
+ continue
+ fi
+ mntpt=$(mktemp -d /tmp/tmpboot.XXXXXX)
+ mount -t msdosfs "${dev}" "${mntpt}"
+ install_uefi_loader
+ umount "${dev}"
+ rmdir mntpt
+ done
+
f_dprintf "Finished configuring ESP"
fi
diff --git a/usr.sbin/bsdinstall/scripts/zfsboot b/usr.sbin/bsdinstall/scripts/zfsboot
--- a/usr.sbin/bsdinstall/scripts/zfsboot
+++ b/usr.sbin/bsdinstall/scripts/zfsboot
@@ -866,14 +866,15 @@
$disk || return $FAILURE
# We'll configure the ESP in bootconfig
- if [ -z "$efibootpart" ]; then
- efibootpart="/dev/gpt/efiboot$index"
- f_dprintf "$funcname: configuring ESP at [%s]" \
- "${efibootpart}"
+ efibootpart="/dev/gpt/efiboot$index"
+ f_dprintf "$funcname: configuring ESP at [%s]" \
+ "${efibootpart}"
- f_eval_catch $funcname newfs_msdos "$NEWFS_ESP"\
- "$efibootpart" \
- || return $FAILURE
+ f_eval_catch $funcname newfs_msdos "$NEWFS_ESP"\
+ "$efibootpart" \
+ || return $FAILURE
+
+ if [ "$index" = "0" ]; then
f_eval_catch $funcname printf "$PRINTF_FSTAB" \
$efibootpart /boot/efi msdosfs \
rw 2 2 "$BSDINSTALL_TMPETC/fstab" \

File Metadata

Mime Type
text/plain
Expires
Fri, May 15, 11:18 PM (10 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
33102302
Default Alt Text
D42150.id128521.diff (3 KB)

Event Timeline