svn commit: r351771 - in head: release/amd64 tools/boot
Matt Macy
mmacy at FreeBSD.org
Tue Sep 3 18:37:56 UTC 2019
Author: mmacy
Date: Tue Sep 3 18:37:55 2019
New Revision: 351771
URL: https://svnweb.freebsd.org/changeset/base/351771
Log:
Use makefs -t msdos in make_esp_file
With this last piece in place, make -C /usr/src/release release.iso is
finally able to run in a jail. This was not possible before because
msdosfs cannot be mounted inside a jail.
Submitted by: ryan at ixsystems.com
Reviewed by: emaste@, imp@, gjb@
MFC after: 1 week
Sponsored by: iXsystems, Inc.
Differential Revision: https://reviews.freebsd.org/D21385
Modified:
head/release/amd64/mkisoimages.sh
head/tools/boot/install-boot.sh
Modified: head/release/amd64/mkisoimages.sh
==============================================================================
--- head/release/amd64/mkisoimages.sh Tue Sep 3 18:35:55 2019 (r351770)
+++ head/release/amd64/mkisoimages.sh Tue Sep 3 18:37:55 2019 (r351771)
@@ -45,7 +45,7 @@ if [ "$1" = "-b" ]; then
# This is highly x86-centric and will be used directly below.
bootable="-o bootimage=i386;$BASEBITSDIR/boot/cdboot -o no-emul-boot"
- # Make EFI system partition (should be done with makefs in the future)
+ # Make EFI system partition.
# The ISO file is a special case, in that it only has a maximum of
# 800 KB available for the boot code. So make an 800 KB ESP
espfilename=$(mktemp /tmp/efiboot.XXXXXX)
Modified: head/tools/boot/install-boot.sh
==============================================================================
--- head/tools/boot/install-boot.sh Tue Sep 3 18:35:55 2019 (r351770)
+++ head/tools/boot/install-boot.sh Tue Sep 3 18:37:55 2019 (r351771)
@@ -43,7 +43,7 @@ get_uefi_bootname() {
}
make_esp_file() {
- local file sizekb loader device mntpt fatbits efibootname
+ local file sizekb loader device stagedir fatbits efibootname
file=$1
sizekb=$2
@@ -57,17 +57,17 @@ make_esp_file() {
fatbits=12
fi
- dd if=/dev/zero of="${file}" bs=1k count="${sizekb}"
- device=$(mdconfig -a -t vnode -f "${file}")
- newfs_msdos -F "${fatbits}" -c 1 -L EFISYS "/dev/${device}" > /dev/null 2>&1
- mntpt=$(mktemp -d /tmp/stand-test.XXXXXX)
- mount -t msdosfs "/dev/${device}" "${mntpt}"
- mkdir -p "${mntpt}/EFI/BOOT"
+ stagedir=$(mktemp -d /tmp/stand-test.XXXXXX)
+ mkdir -p "${stagedir}/EFI/BOOT"
efibootname=$(get_uefi_bootname)
- cp "${loader}" "${mntpt}/EFI/BOOT/${efibootname}.efi"
- umount "${mntpt}"
- rmdir "${mntpt}"
- mdconfig -d -u "${device}"
+ cp "${loader}" "${stagedir}/EFI/BOOT/${efibootname}.efi"
+ makefs -t msdos \
+ -o fat_type=${fatbits} \
+ -o sectors_per_cluster=1 \
+ -o volume_label=EFISYS \
+ -s ${sizekb}k \
+ "${file}" "${stagedir}"
+ rm -rf "${stagedir}"
}
make_esp_device() {
More information about the svn-src-all
mailing list