Allow etdump, makefs and mkimg to be overridden.
Recent changes to makefs and mkimg have led to situations where the disconnect between this script and the versions installed on the host cause failures. Provide a way to work around this that doesn't require the installation of new versions to the host system if that's not desired. With this change mkisoimages.sh will honour the $ETDUMP, $MAKEFS and $MKIMG environment variables but fall back to the previous behaviour of finding them within $PATH. Reviewed by: gjb Sponsored by: iXsystems, Inc. Differential Revision: https://reviews.freebsd.org/D15181
This commit is contained in:
parent
cbbd5be004
commit
6ea2984738
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=333005
@ -23,6 +23,18 @@
|
|||||||
# extra-bits-dir, if provided, contains additional files to be merged
|
# extra-bits-dir, if provided, contains additional files to be merged
|
||||||
# into base-bits-dir as part of making the image.
|
# into base-bits-dir as part of making the image.
|
||||||
|
|
||||||
|
if [ -z $ETDUMP ]; then
|
||||||
|
ETDUMP=etdump
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z $MAKEFS ]; then
|
||||||
|
MAKEFS=makefs
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z $MKIMG ]; then
|
||||||
|
MKIMG=mkimg
|
||||||
|
fi
|
||||||
|
|
||||||
if [ "$1" = "-b" ]; then
|
if [ "$1" = "-b" ]; then
|
||||||
# This is highly x86-centric and will be used directly below.
|
# This is highly x86-centric and will be used directly below.
|
||||||
bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot"
|
bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot"
|
||||||
@ -55,13 +67,13 @@ NAME="$1"; shift
|
|||||||
|
|
||||||
publisher="The FreeBSD Project. https://www.FreeBSD.org/"
|
publisher="The FreeBSD Project. https://www.FreeBSD.org/"
|
||||||
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
|
echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab"
|
||||||
makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
|
$MAKEFS -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
|
||||||
rm -f "$1/etc/fstab"
|
rm -f "$1/etc/fstab"
|
||||||
rm -f efiboot.img
|
rm -f efiboot.img
|
||||||
|
|
||||||
if [ "$bootable" != "" ]; then
|
if [ "$bootable" != "" ]; then
|
||||||
# Look for the EFI System Partition image we dropped in the ISO image.
|
# Look for the EFI System Partition image we dropped in the ISO image.
|
||||||
for entry in `etdump --format shell $NAME`; do
|
for entry in `$ETDUMP --format shell $NAME`; do
|
||||||
eval $entry
|
eval $entry
|
||||||
if [ "$et_platform" = "efi" ]; then
|
if [ "$et_platform" = "efi" ]; then
|
||||||
espstart=`expr $et_lba \* 2048`
|
espstart=`expr $et_lba \* 2048`
|
||||||
@ -73,7 +85,7 @@ if [ "$bootable" != "" ]; then
|
|||||||
|
|
||||||
# Create a GPT image containing the partitions we need for hybrid boot.
|
# Create a GPT image containing the partitions we need for hybrid boot.
|
||||||
imgsize=`stat -f %z $NAME`
|
imgsize=`stat -f %z $NAME`
|
||||||
mkimg -s gpt \
|
$MKIMG -s gpt \
|
||||||
--capacity $imgsize \
|
--capacity $imgsize \
|
||||||
-b $4/boot/pmbr \
|
-b $4/boot/pmbr \
|
||||||
$espparam \
|
$espparam \
|
||||||
|
Loading…
Reference in New Issue
Block a user