aboutsummaryrefslogtreecommitdiff
path: root/release/tools/vmimage.subr
diff options
context:
space:
mode:
Diffstat (limited to 'release/tools/vmimage.subr')
-rw-r--r--release/tools/vmimage.subr54
1 files changed, 30 insertions, 24 deletions
diff --git a/release/tools/vmimage.subr b/release/tools/vmimage.subr
index 2e32a732cc1a..a7fe65ac5e59 100644
--- a/release/tools/vmimage.subr
+++ b/release/tools/vmimage.subr
@@ -24,34 +24,23 @@ write_partition_layout() {
case "${TARGET}:${TARGET_ARCH}" in
amd64:amd64 | i386:i386)
- # Create an ESP
- espfilename=$(mktemp /tmp/efiboot.XXXXXX)
- make_esp_file ${espfilename} ${fat32min} ${BOOTFILES}/efi/loader_lua/loader_lua.efi
- mkimg -s gpt -f ${VMFORMAT} \
- -b ${BOOTFILES}/i386/pmbr/pmbr \
- -p freebsd-boot/bootfs:=${BOOTFILES}/i386/gptboot/gptboot \
- -p efi:=${espfilename} \
- ${SWAPOPT} \
- -p freebsd-ufs/rootfs:=${VMBASE} \
- -o ${VMIMAGE}
- rm ${espfilename}
+ ESP=yes
+ SCHEME=gpt
+ BOOTPARTS="-b ${BOOTFILES}/i386/pmbr/pmbr \
+ -p freebsd-boot/bootfs:=${BOOTFILES}/i386/gptboot/gptboot"
+ ROOTFSPART="-p freebsd-ufs/rootfs:=${VMBASE}"
;;
arm64:aarch64)
- # Create an ESP
- espfilename=$(mktemp /tmp/efiboot.XXXXXX)
- make_esp_file ${espfilename} ${fat32min} ${BOOTFILES}/efi/loader_lua/loader_lua.efi
- mkimg -s mbr -f ${VMFORMAT} \
- -p efi:=${espfilename} \
- -p freebsd:=${VMBASE} \
- -o ${VMIMAGE}
- rm ${espfilename}
+ ESP=yes
+ SCHEME=mbr
+ BOOTPARTS=
+ ROOTFSPART="-p freebsd:=${VMBASE}"
;;
powerpc:powerpc*)
- mkimg -s apm -f ${VMFORMAT} \
- -p apple-boot/bootfs:=${BOOTFILES}/powerpc/boot1.chrp/boot1.hfs \
- ${SWAPOPT} \
- -p freebsd-ufs/rootfs:=${VMBASE} \
- -o ${VMIMAGE}
+ ESP=no
+ SCHEME=apm
+ BOOTPARTS="-p apple-boot/bootfs:=${BOOTFILES}/powerpc/boot1.chrp/boot1.hfs"
+ ROOTFSPART="-p freebsd-ufs/rootfs:=${VMBASE}"
;;
*)
# ENOTSUPP
@@ -59,6 +48,23 @@ write_partition_layout() {
;;
esac
+ if [ ${ESP} = "yes" ]; then
+ # Create an ESP
+ espfilename=$(mktemp /tmp/efiboot.XXXXXX)
+ make_esp_file ${espfilename} ${fat32min} ${BOOTFILES}/efi/loader_lua/loader_lua.efi
+ BOOTPARTS="${BOOTPARTS} -p efi:=${espfilename}"
+ fi
+
+ mkimg -s ${SCHEME} -f ${VMFORMAT} \
+ ${BOOTPARTS} \
+ ${SWAPOPT} \
+ ${ROOTFSPART} \
+ -o ${VMIMAGE}
+
+ if [ ${ESP} = "yes" ]; then
+ rm ${espfilename}
+ fi
+
return 0
}