freebsd-nq/release/sparc64/mkisoimages.sh
Ruslan Ermilov 5795760c45 disklabel(8) is spelled bsdlabel(8) or sunlabel(8) these days.
Also make sure bsdlabel(8) (along with the disklabel(8) compat
link) still appear on the fixit floppies of platforms that use
it natively (alpha, i386, and pc98).

Approved by:	re (scottl)
2003-05-17 19:16:28 +00:00

71 lines
1.9 KiB
Bash

#!/bin/sh
#
# Module: mkisoimages.sh
# Author: Jordan K Hubbard
# Date: 22 June 2001
#
# $FreeBSD$
#
# This script is used by release/Makefile to build the (optional) ISO images
# for a FreeBSD release. It is considered architecture dependent since each
# platform has a slightly unique way of making bootable CDs. This script
# is also allowed to generate any number of images since that is more of
# publishing decision than anything else.
#
# Usage:
#
# mkisoimages.sh [-b] image-label image-name base-bits-dir [extra-bits-dir]
#
# Where -b is passed if the ISO image should be made "bootable" by
# whatever standards this architecture supports (may be unsupported),
# image-label is the ISO image label, image-name is the filename of the
# resulting ISO image, base-bits-dir contains the image contents and
# extra-bits-dir, if provided, contains additional files to be merged
# into base-bits-dir as part of making the image.
IMG=/tmp/bootfs
LOADER=/boot/loader
MNT=/mnt
if [ "x$1" = "x-b" ]; then
dd if=/dev/zero of=${IMG} bs=512 count=1024
MD=`mdconfig -a -t vnode -f ${IMG}`
sunlabel -Brw ${MD} auto
newfs /dev/${MD}c
mount /dev/${MD}c ${MNT}
mkdir ${MNT}/boot
cp ${LOADER} ${MNT}/boot
umount ${MNT}
mdconfig -d -u ${MD#md}
bootable="-B ,,,,${IMG}"
shift
else
bootable=""
fi
if [ $# -lt 3 ]; then
echo Usage: $0 '[-b] image-label image-name base-bits-dir [extra-bits-dir]'
rm -f ${IMG}
exit 1
fi
type mkisofs 2>&1 | grep " is " >/dev/null
if [ $? -ne 0 ]; then
echo The mkisofs port is not installed. Trying to get it now.
if [ -f /usr/ports/sysutils/mkisofs/Makefile ]; then
cd /usr/ports/sysutils/mkisofs && make install && make clean
else
if ! pkg_add -r mkisofs; then
echo "Could not get it via pkg_add - please go install this"
echo "from the ports collection and run this script again."
exit 2
fi
fi
fi
LABEL=$1; shift
NAME=$1; shift
mkisofs $bootable -r -J -V $LABEL -o $NAME $*
rm -f ${IMG}