svn commit: r336213 - head/tools/boot
Warner Losh
imp at FreeBSD.org
Wed Jul 11 21:53:05 UTC 2018
Author: imp
Date: Wed Jul 11 21:53:04 2018
New Revision: 336213
URL: https://svnweb.freebsd.org/changeset/base/336213
Log:
Small refactor of install-boot
Use newfs_msdos to create the filesystem for the partition requested
and use loader.efi instead of boot1.efi.
Modified:
head/tools/boot/install-boot.sh
Modified: head/tools/boot/install-boot.sh
==============================================================================
--- head/tools/boot/install-boot.sh Wed Jul 11 20:11:06 2018 (r336212)
+++ head/tools/boot/install-boot.sh Wed Jul 11 21:53:04 2018 (r336213)
@@ -27,18 +27,33 @@ find-part() {
gpart show $dev | tail +2 | awk '$4 == "'$part'" { print $3; }'
}
-boot_nogeli_gpt_ufs_legacy() {
+make_esp() {
+ local dev dst mntpt
+
dev=$1
dst=$2
- idx=$(find-part $dev "freebsd-boot")
- if [ -z "$idx" ] ; then
- die "No freebsd-boot partition found"
+ newfs_msdos -a 32 /dev/${dev}
+ mntpt=$(mktemp -d /tmp/stand-test.XXXXXX)
+ mount -t msdos /dev/${md} ${mntpt}
+ mkdir -p ${mntpt}/efi/boot
+ cp ${dst}/boot/loader.efi ${mntpt}/efi/boot/bootx64.efi
+ umount ${mntpt}
+ rmdir ${mntpt}
+}
+
+make_esp_mbr() {
+ dev=$1
+ dst=$2
+
+ s=$(find-part $dev "!239")
+ if [ -z "$s" ] ; then
+ die "No ESP slice found"
fi
- doit gpart bootcode -b ${gpt0} -p ${gpt2} -i $idx $dev
+ make_esp /dev/${dev}s${s} ${dst}
}
-boot_nogeli_gpt_ufs_uefi() {
+make_esp_gpt() {
dev=$1
dst=$2
@@ -46,9 +61,24 @@ boot_nogeli_gpt_ufs_uefi() {
if [ -z "$idx" ] ; then
die "No ESP partition found"
fi
- doit gpart bootcode -p ${efi2} -i $idx $dev
+ make_esp /dev/${dev}p${idx} ${dst}
}
+boot_nogeli_gpt_ufs_legacy() {
+ dev=$1
+ dst=$2
+
+ idx=$(find-part $dev "freebsd-boot")
+ if [ -z "$idx" ] ; then
+ die "No freebsd-boot partition found"
+ fi
+ doit gpart bootcode -b ${gpt0} -p ${gpt2} -i $idx $dev
+}
+
+boot_nogeli_gpt_ufs_uefi() {
+ make_esp_gpt $1 $2
+}
+
boot_nogeli_gpt_ufs_both() {
boot_nogeli_gpt_ufs_legacy $1 $2 $3
boot_nogeli_gpt_ufs_uefi $1 $2 $3
@@ -66,14 +96,7 @@ boot_nogeli_gpt_zfs_legacy() {
}
boot_nogeli_gpt_zfs_uefi() {
- dev=$1
- dst=$2
-
- idx=$(find-part $dev "efi")
- if [ -z "$idx" ] ; then
- die "No ESP partition found"
- fi
- doit gpart bootcode -p ${efi2} -i $idx $dev
+ make_esp_gpt $1 $2
}
boot_nogeli_gpt_zfs_both() {
@@ -94,14 +117,7 @@ boot_nogeli_mbr_ufs_legacy() {
}
boot_nogeli_mbr_ufs_uefi() {
- dev=$1
- dst=$2
-
- s=$(find-part ${dev} "!239")
- if [ -z "$s" ] ; then
- die "No ESP slice found"
- fi
- doit gpart bootcode -p ${efi2} -i ${s} ${dev}
+ make_esp_mbr $1 $2
}
boot_nogeli_mbr_ufs_both() {
@@ -133,14 +149,7 @@ boot_nogeli_mbr_zfs_legacy() {
}
boot_nogeli_mbr_zfs_uefi() {
- dev=$1
- dst=$2
-
- s=$(find-part $dev "!239")
- if [ -z "$s" ] ; then
- die "No ESP slice found"
- fi
- doit gpart bootcode -p ${efi2} -i ${s} ${dev}
+ make_eps_mbr $1 $2
}
boot_nogeli_mbr_zfs_both() {
@@ -245,11 +254,6 @@ dev=$1
gpt0=${DESTDIR}/boot/pmbr
gpt2=${DESTDIR}/boot/gptboot
gptzfs2=${DESTDIR}/boot/gptzfsboot
-
-# For gpt + EFI we install the ESP
-# XXX This should use newfs or makefs, but it doesn't yet
-efi1=${DESTDIR}/boot/boot1.efi
-efi2=${DESTDIR}/boot/boot1.efifat
# For MBR, we have lots of choices, but select mbr, boot0 has issues with UEFI
mbr0=${DESTDIR}/boot/mbr
More information about the svn-src-head
mailing list