x86_hdimage.sh -i: crossbuild x86 release CD
. build writeisofs as a native tool too for it . also mkfs.mfs: make missing file in proto nonlethal . make setup script a little more self-sufficient . hdboot: use INSTALL_FILE instead of INSTALL so that the results get added to the METALOG Change-Id: Id233e4c861f81046bf6c4be0510b8a3bf39ff9be
This commit is contained in:
parent
7d6089f32d
commit
09143af258
8 changed files with 109 additions and 71 deletions
|
@ -13,42 +13,22 @@ MYLOCALRC=/mnt/etc/rc.local
|
||||||
ROOTMB=64
|
ROOTMB=64
|
||||||
ROOTSECTS="`expr $ROOTMB '*' 1024 '*' 2`"
|
ROOTSECTS="`expr $ROOTMB '*' 1024 '*' 2`"
|
||||||
BOOTXXSECTS=32
|
BOOTXXSECTS=32
|
||||||
USRKBFILE=/.usrkb
|
USRKB="`du -sxk /usr | awk '{ print $1 }'`"
|
||||||
if [ ! -f "$USRKBFILE" ]
|
|
||||||
then echo "Are you really running from CD?"
|
|
||||||
echo "No $USRKBFILE file."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
USRKB="`cat /.usrkb`"
|
|
||||||
TOTALMB="`expr 3 + $USRKB / 1024 + $ROOTMB`"
|
TOTALMB="`expr 3 + $USRKB / 1024 + $ROOTMB`"
|
||||||
ROOTFILES="`cat /.rootfiles`"
|
ROOTFILES="`find -x / | wc -l`"
|
||||||
USRFILES="`cat /.usrfiles`"
|
USRFILES="`find -x /usr | wc -l`"
|
||||||
|
|
||||||
|
# /usr/install isn't copied onto the new system; compensate
|
||||||
|
INSTALLDIR=/usr/install
|
||||||
|
if [ -d $INSTALLDIR ]
|
||||||
|
then $USRFILES=$(($USRFILES - `find -x $INSTALLDIR | wc -l`))
|
||||||
|
$USRKB=$(($USRKB - `du -sxk $INSTALLDIR | awk '{ print $1 }'`))
|
||||||
|
fi
|
||||||
|
|
||||||
if [ -z "$FSTYPE" ]
|
if [ -z "$FSTYPE" ]
|
||||||
then FSTYPE=mfs
|
then FSTYPE=mfs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$TOTALMB" -lt 1 ]
|
|
||||||
then
|
|
||||||
echo "Are you really running from CD?"
|
|
||||||
echo "Something wrong with size estimate on CD."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$ROOTFILES" -lt 1 ]
|
|
||||||
then
|
|
||||||
echo "Are you really running from CD?"
|
|
||||||
echo "Something wrong with root files count on CD."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$USRFILES" -lt 1 ]
|
|
||||||
then
|
|
||||||
echo "Are you really running from CD?"
|
|
||||||
echo "Something wrong with usr files count on CD."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
||||||
export PATH
|
export PATH
|
||||||
|
|
||||||
|
@ -729,6 +709,7 @@ cpdir -vx / /mnt | progressbar "$ROOTFILES" || exit
|
||||||
chmod o-w /mnt/usr
|
chmod o-w /mnt/usr
|
||||||
cp /mnt/etc/motd.install /mnt/etc/motd
|
cp /mnt/etc/motd.install /mnt/etc/motd
|
||||||
|
|
||||||
|
|
||||||
# Fix /var/log
|
# Fix /var/log
|
||||||
rm /mnt/var/log
|
rm /mnt/var/log
|
||||||
ln -s /usr/log /mnt/var/log
|
ln -s /usr/log /mnt/var/log
|
||||||
|
@ -748,7 +729,16 @@ mount /dev/$usr /mnt/usr >/dev/null || exit
|
||||||
# XXX we have to use "-f" here, because installboot worries about BPB, which
|
# XXX we have to use "-f" here, because installboot worries about BPB, which
|
||||||
# we don't have...
|
# we don't have...
|
||||||
installboot_nbsd -f /dev/$primary /usr/mdec/bootxx_minixfs3 >/dev/null || exit
|
installboot_nbsd -f /dev/$primary /usr/mdec/bootxx_minixfs3 >/dev/null || exit
|
||||||
cp /mnt/etc/boot.cfg.default /mnt/boot.cfg
|
# give the install the boot loader
|
||||||
|
cp /usr/mdec/boot_monitor /mnt/
|
||||||
|
minixdir=/mnt/boot/minix_default
|
||||||
|
if [ ! -f $minixdir/kernel ]
|
||||||
|
then rm -rf $minixdir
|
||||||
|
cp -r /mnt/multiboot $minixdir
|
||||||
|
fi
|
||||||
|
if [ ! -e /mnt/boot/minix_latest ]
|
||||||
|
then ln -sf minix_default /mnt/boot/minix_latest
|
||||||
|
fi
|
||||||
chroot /mnt update_bootcfg
|
chroot /mnt update_bootcfg
|
||||||
|
|
||||||
# Save name of CD drive
|
# Save name of CD drive
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
PROG= writeisofs
|
PROG= writeisofs
|
||||||
MAN=
|
MAN=
|
||||||
|
|
||||||
|
CPPFLAGS+= -I${NETBSDSRCDIR}/include/arch/${MACHINE_ARCH}/include
|
||||||
|
|
||||||
.include <bsd.prog.mk>
|
.include <bsd.prog.mk>
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <machine/partition.h>
|
#include <partition.h>
|
||||||
|
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,8 @@ do-hdboot:
|
||||||
n=`expr $$n + 1`; \
|
n=`expr $$n + 1`; \
|
||||||
[ "$$n" -ge 10 ] && prefix="mod" || prefix="mod0"; \
|
[ "$$n" -ge 10 ] && prefix="mod" || prefix="mod0"; \
|
||||||
newname="${DESTDIR}/boot/minix/.temp/$${prefix}$${n}_`basename $$i`"; \
|
newname="${DESTDIR}/boot/minix/.temp/$${prefix}$${n}_`basename $$i`"; \
|
||||||
${INSTALL} $$i $$newname; \
|
${INSTALL_FILE} $$i $$newname; \
|
||||||
|
echo ${INSTALL_FILE} $$i $$newname; \
|
||||||
done
|
done
|
||||||
@cp ${PROGROOT}/kernel/kernel ${DESTDIR}/boot/minix/.temp/
|
@cp ${PROGROOT}/kernel/kernel ${DESTDIR}/boot/minix/.temp/
|
||||||
@if [ "${MKINSTALLBOOT:Uno}" != "no" ] ; then \
|
@if [ "${MKINSTALLBOOT:Uno}" != "no" ] ; then \
|
||||||
|
@ -103,7 +104,7 @@ do-hdboot:
|
||||||
${HOST_SH} ../commands/update_bootcfg/update_bootcfg.sh;\
|
${HOST_SH} ../commands/update_bootcfg/update_bootcfg.sh;\
|
||||||
else \
|
else \
|
||||||
${INSTALL_DIR} ${DESTDIR}/multiboot; \
|
${INSTALL_DIR} ${DESTDIR}/multiboot; \
|
||||||
${INSTALL} ${DESTDIR}/boot/minix/.temp/* ${DESTDIR}/multiboot; \
|
${INSTALL_FILE} ${DESTDIR}/boot/minix/.temp/* ${DESTDIR}/multiboot; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# download and update NetBSD reference sources.
|
# download and update NetBSD reference sources.
|
||||||
|
|
|
@ -11,11 +11,15 @@ set -e
|
||||||
: ${BUILDVARS=}
|
: ${BUILDVARS=}
|
||||||
: ${BUILDSH=build.sh}
|
: ${BUILDSH=build.sh}
|
||||||
|
|
||||||
|
# Where the kernel & boot modules will be
|
||||||
|
MODDIR=${DESTDIR}/multiboot
|
||||||
|
|
||||||
#
|
#
|
||||||
# Directory where to store temporary file system images
|
# Directory where to store temporary file system images
|
||||||
#
|
#
|
||||||
: ${IMG_DIR=${OBJ}/img}
|
: ${IMG_DIR=${OBJ}/img}
|
||||||
: ${IMG=minix_x86.img}
|
|
||||||
|
CDFILES=${IMG_DIR}/cd
|
||||||
|
|
||||||
if [ ! -f ${BUILDSH} ]
|
if [ ! -f ${BUILDSH} ]
|
||||||
then echo "Please invoke me from the root source dir, where ${BUILDSH} is."
|
then echo "Please invoke me from the root source dir, where ${BUILDSH} is."
|
||||||
|
@ -27,7 +31,19 @@ export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:$PATH
|
||||||
#
|
#
|
||||||
# Artifacts from this script are stored in the IMG_DIR
|
# Artifacts from this script are stored in the IMG_DIR
|
||||||
#
|
#
|
||||||
mkdir -p $IMG_DIR
|
rm -rf $IMG_DIR $IMG
|
||||||
|
mkdir -p $IMG_DIR $CDFILES
|
||||||
|
|
||||||
|
while getopts "i" c
|
||||||
|
do
|
||||||
|
case "$c" in
|
||||||
|
i) : ${IMG=minix_x86.iso}
|
||||||
|
ISOMODE=1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
: ${IMG=minix_x86.img}
|
||||||
|
|
||||||
#
|
#
|
||||||
# Call build.sh using a sloppy file list so we don't need to remove the installed /etc/fstag
|
# Call build.sh using a sloppy file list so we don't need to remove the installed /etc/fstag
|
||||||
|
@ -35,16 +51,25 @@ mkdir -p $IMG_DIR
|
||||||
export CPPFLAGS=${FLAG}
|
export CPPFLAGS=${FLAG}
|
||||||
sh ${BUILDSH} -V SLOPPY_FLIST=yes -V MKBINUTILS=yes -V MKGCCCMDS=yes -j ${JOBS} -m ${ARCH} -O ${OBJ} -D ${DESTDIR} ${BUILDVARS} -U -u distribution
|
sh ${BUILDSH} -V SLOPPY_FLIST=yes -V MKBINUTILS=yes -V MKGCCCMDS=yes -j ${JOBS} -m ${ARCH} -O ${OBJ} -D ${DESTDIR} ${BUILDVARS} -U -u distribution
|
||||||
|
|
||||||
#
|
if [ "$ISOMODE" ]
|
||||||
|
then cp ${DESTDIR}/usr/mdec/boot_monitor $CDFILES/boot
|
||||||
|
cp ${MODDIR}/* $CDFILES/
|
||||||
|
. ./releasetools/release.functions
|
||||||
|
cd_root_changes # uses $CDFILES and writes $CDFILES/boot.cfg
|
||||||
|
${CROSS_TOOLS}/nbwriteisofs -s0x0 -l MINIX -B ${DESTDIR}/usr/mdec/bootxx_cd9660 -n $CDFILES ${IMG_DIR}/iso.img
|
||||||
|
ISO_SIZE=$((`stat -c %s ${IMG_DIR}/iso.img` / 512))
|
||||||
|
else # just make an empty iso partition
|
||||||
|
ISO_SIZE=8
|
||||||
|
fi
|
||||||
|
|
||||||
# This script creates a bootable image and should at some point in the future
|
# This script creates a bootable image and should at some point in the future
|
||||||
# be replaced by makefs.
|
# be replaced by makefs.
|
||||||
#
|
#
|
||||||
# All sized are written in 512 byte blocks
|
# All sized are written in 512 byte blocks
|
||||||
#
|
#
|
||||||
# we create a disk image of about 2 gig's
|
# we create a disk image of about 2 gig's
|
||||||
# for alignement reasons, prefer sizes which are multiples of 4096 bytes
|
# for alignment reasons, prefer sizes which are multiples of 4096 bytes
|
||||||
#
|
#
|
||||||
: ${IMG_SIZE=$(( 2*(2**30) / 512))}
|
|
||||||
: ${ROOT_SIZE=$(( 64*(2**20) / 512))}
|
: ${ROOT_SIZE=$(( 64*(2**20) / 512))}
|
||||||
: ${HOME_SIZE=$(( 128*(2**20) / 512))}
|
: ${HOME_SIZE=$(( 128*(2**20) / 512))}
|
||||||
: ${USR_SIZE=$((1536*(2**20) / 512))}
|
: ${USR_SIZE=$((1536*(2**20) / 512))}
|
||||||
|
@ -54,8 +79,8 @@ sh ${BUILDSH} -V SLOPPY_FLIST=yes -V MKBINUTILS=yes -V MKGCCCMDS=yes -j ${JOBS}
|
||||||
# setup phase on x86
|
# setup phase on x86
|
||||||
#
|
#
|
||||||
cat >${FSTAB} <<END_FSTAB
|
cat >${FSTAB} <<END_FSTAB
|
||||||
/dev/c0d0p1 /home mfs rw 0 2
|
|
||||||
/dev/c0d0p2 /usr mfs rw 0 2
|
/dev/c0d0p2 /usr mfs rw 0 2
|
||||||
|
/dev/c0d0p3 /home mfs rw 0 2
|
||||||
END_FSTAB
|
END_FSTAB
|
||||||
|
|
||||||
rm -f ${DESTDIR}/SETS.*
|
rm -f ${DESTDIR}/SETS.*
|
||||||
|
@ -66,38 +91,22 @@ ${CROSS_TOOLS}/nbpwd_mkdb -V 0 -p -d ${DESTDIR} ${DESTDIR}/etc/master.passwd
|
||||||
# Now given the sizes above use DD to create separate files representing
|
# Now given the sizes above use DD to create separate files representing
|
||||||
# the partitions we are going to use.
|
# the partitions we are going to use.
|
||||||
#
|
#
|
||||||
|
dd if=/dev/zero of=${IMG_DIR}/iso.img bs=512 count=1 seek=$(($ISO_SIZE -1)) 2>/dev/null
|
||||||
dd if=/dev/zero of=${IMG_DIR}/root.img bs=512 count=1 seek=$(($ROOT_SIZE -1)) 2>/dev/null
|
dd if=/dev/zero of=${IMG_DIR}/root.img bs=512 count=1 seek=$(($ROOT_SIZE -1)) 2>/dev/null
|
||||||
dd if=/dev/zero of=${IMG_DIR}/home.img bs=512 count=1 seek=$(($HOME_SIZE -1)) 2>/dev/null
|
dd if=/dev/zero of=${IMG_DIR}/home.img bs=512 count=1 seek=$(($HOME_SIZE -1)) 2>/dev/null
|
||||||
dd if=/dev/zero of=${IMG_DIR}/usr.img bs=512 count=1 seek=$(($USR_SIZE -1)) 2>/dev/null
|
dd if=/dev/zero of=${IMG_DIR}/usr.img bs=512 count=1 seek=$(($USR_SIZE -1)) 2>/dev/null
|
||||||
|
|
||||||
# Create the empty image where we later will but the partitions in
|
|
||||||
dd if=/dev/zero of=${IMG} bs=512 count=1 seek=$(($IMG_SIZE -1))
|
|
||||||
|
|
||||||
#
|
|
||||||
# Do some math to determine the start addresses of the partitions.
|
|
||||||
# Ensure the start of the partitions are always aligned, the end will
|
|
||||||
# always be as we assume the sizes are multiples of 4096 bytes, which
|
|
||||||
# is always true as soon as you have an integer multiple of 1MB.
|
|
||||||
#
|
|
||||||
ROOT_START=8
|
|
||||||
HOME_START=$(($ROOT_START + $ROOT_SIZE))
|
|
||||||
USR_START=$(($HOME_START + $HOME_SIZE))
|
|
||||||
|
|
||||||
set -x
|
|
||||||
${CROSS_TOOLS}/nbpartition -m ${IMG} ${ROOT_START} 81:${ROOT_SIZE} 81:${HOME_SIZE} 81:${USR_SIZE}
|
|
||||||
set +x
|
|
||||||
|
|
||||||
# make the different file system. this part is *also* hacky. We first convert
|
# make the different file system. this part is *also* hacky. We first convert
|
||||||
# the METALOG.sanitised using mtree into a input METALOG containing uids and
|
# the METALOG.sanitised using mtree into a input METALOG containing uids and
|
||||||
# gids.
|
# gids.
|
||||||
# Afther that we do some magic processing to add device nodes (also missing from METALOG)
|
# After that we do some magic processing to add device nodes (also missing from METALOG)
|
||||||
# and convert the METALOG into a proto file that can be used by mkfs.mfs
|
# and convert the METALOG into a proto file that can be used by mkfs.mfs
|
||||||
#
|
#
|
||||||
echo "creating the file systems"
|
echo "creating the file systems"
|
||||||
|
|
||||||
#
|
#
|
||||||
# read METALOG and use mtree to conver the user and group names into uid and gids
|
# read METALOG and use mtree to convert the user and group names into uid and gids
|
||||||
# FIX put "input somwhere clean"
|
# FIX put "input somewhere clean"
|
||||||
#
|
#
|
||||||
cat ${DESTDIR}/METALOG.sanitised | ${CROSS_TOOLS}/nbmtree -N ${DESTDIR}/etc -C > ${IMG_DIR}/input
|
cat ${DESTDIR}/METALOG.sanitised | ${CROSS_TOOLS}/nbmtree -N ${DESTDIR}/etc -C > ${IMG_DIR}/input
|
||||||
|
|
||||||
|
@ -124,26 +133,58 @@ rm ${IMG_DIR}/root.in
|
||||||
cat ${IMG_DIR}/input | grep "^\./usr/\|^. " | sed "s,\./usr,\.,g" | ${CROSS_TOOLS}/nbtoproto -b ${DESTDIR}/usr -o ${IMG_DIR}/usr.proto
|
cat ${IMG_DIR}/input | grep "^\./usr/\|^. " | sed "s,\./usr,\.,g" | ${CROSS_TOOLS}/nbtoproto -b ${DESTDIR}/usr -o ${IMG_DIR}/usr.proto
|
||||||
cat ${IMG_DIR}/input | grep "^\./home/\|^. " | sed "s,\./home,\.,g" | ${CROSS_TOOLS}/nbtoproto -b ${DESTDIR}/home -o ${IMG_DIR}/home.proto
|
cat ${IMG_DIR}/input | grep "^\./home/\|^. " | sed "s,\./home,\.,g" | ${CROSS_TOOLS}/nbtoproto -b ${DESTDIR}/home -o ${IMG_DIR}/home.proto
|
||||||
|
|
||||||
|
# If in ISO mode, fit the FSes
|
||||||
|
if [ "$ISOMODE" ]
|
||||||
|
then ROOTSIZEARG="-x 5" # give root fs a little breathing room on the CD
|
||||||
|
else # give args with the right sizes
|
||||||
|
ROOTSIZEARG="-b $((${ROOT_SIZE} / 8))"
|
||||||
|
USRSIZEARG="-b $((${USR_SIZE} / 8))"
|
||||||
|
HOMESIZEARG="-b $((${HOME_SIZE} / 8))"
|
||||||
|
fi
|
||||||
|
|
||||||
#
|
#
|
||||||
# Generate /root, /usr and /home partition images.
|
# Generate /root, /usr and /home partition images.
|
||||||
#
|
#
|
||||||
echo "Writing Minix filesystem images"
|
echo "Writing Minix filesystem images"
|
||||||
echo " - ROOT"
|
echo " - ROOT"
|
||||||
${CROSS_TOOLS}/nbmkfs.mfs -b $((${ROOT_SIZE} / 8)) ${IMG_DIR}/root.img ${IMG_DIR}/root.proto
|
${CROSS_TOOLS}/nbmkfs.mfs $ROOTSIZEARG ${IMG_DIR}/root.img ${IMG_DIR}/root.proto
|
||||||
echo " - USR"
|
echo " - USR"
|
||||||
${CROSS_TOOLS}/nbmkfs.mfs -b $((${USR_SIZE} / 8)) ${IMG_DIR}/usr.img ${IMG_DIR}/usr.proto
|
${CROSS_TOOLS}/nbmkfs.mfs $USRSIZEARG ${IMG_DIR}/usr.img ${IMG_DIR}/usr.proto
|
||||||
echo " - HOME"
|
echo " - HOME"
|
||||||
${CROSS_TOOLS}/nbmkfs.mfs -b $((${HOME_SIZE} / 8)) ${IMG_DIR}/home.img ${IMG_DIR}/home.proto
|
${CROSS_TOOLS}/nbmkfs.mfs $HOMESIZEARG ${IMG_DIR}/home.img ${IMG_DIR}/home.proto
|
||||||
|
|
||||||
|
# Set the sizes based on what was just generated - should change nothing if sizes
|
||||||
|
# were specified
|
||||||
|
echo "$ROOT_SIZE $USR_SIZE $HOME_SIZE"
|
||||||
|
ROOT_SIZE=$((`stat -c %s ${IMG_DIR}/root.img` / 512))
|
||||||
|
USR_SIZE=$((`stat -c %s ${IMG_DIR}/usr.img` / 512))
|
||||||
|
HOME_SIZE=$((`stat -c %s ${IMG_DIR}/home.img` / 512))
|
||||||
|
echo "$ROOT_SIZE $USR_SIZE $HOME_SIZE"
|
||||||
|
|
||||||
|
# Do some math to determine the start addresses of the partitions.
|
||||||
|
# Ensure the start of the partitions are always aligned, the end will
|
||||||
|
# always be as we assume the sizes are multiples of 4096 bytes, which
|
||||||
|
# is always true as soon as you have an integer multiple of 1MB.
|
||||||
|
#
|
||||||
|
ISO_START=0
|
||||||
|
ROOT_START=$(($ISO_START + $ISO_SIZE))
|
||||||
|
USR_START=$(($ROOT_START + $ROOT_SIZE))
|
||||||
|
HOME_START=$(($USR_START + $USR_SIZE))
|
||||||
|
|
||||||
#
|
#
|
||||||
# Merge the partitions into a single image.
|
# Merge the partitions into a single image.
|
||||||
#
|
#
|
||||||
echo "Merging file systems"
|
echo "Merging file systems"
|
||||||
|
dd if=${IMG_DIR}/iso.img of=${IMG} seek=$ISO_START conv=notrunc
|
||||||
dd if=${IMG_DIR}/root.img of=${IMG} seek=$ROOT_START conv=notrunc
|
dd if=${IMG_DIR}/root.img of=${IMG} seek=$ROOT_START conv=notrunc
|
||||||
dd if=${IMG_DIR}/home.img of=${IMG} seek=$HOME_START conv=notrunc
|
|
||||||
dd if=${IMG_DIR}/usr.img of=${IMG} seek=$USR_START conv=notrunc
|
dd if=${IMG_DIR}/usr.img of=${IMG} seek=$USR_START conv=notrunc
|
||||||
|
dd if=${IMG_DIR}/home.img of=${IMG} seek=$HOME_START conv=notrunc
|
||||||
|
|
||||||
moddir=${DESTDIR}/boot/minix/.temp/
|
${CROSS_TOOLS}/nbpartition -m ${IMG} ${ISO_START} 81:${ISO_SIZE} 81:${ROOT_SIZE} 81:${USR_SIZE} 81:${HOME_SIZE}
|
||||||
mods="`( cd $moddir; echo mod* | tr ' ' ',' )`"
|
|
||||||
echo "To boot this image on kvm:"
|
mods="`( cd $MODDIR; echo mod* | tr ' ' ',' )`"
|
||||||
echo "cd $moddir && kvm -serial stdio -kernel kernel -append \"console=tty00 rootdevname=c0d0p0\" -initrd \"$mods\" -hda `pwd`/$IMG"
|
if [ "$ISOMODE" ]
|
||||||
|
then echo "CD image at `pwd`/$IMG"
|
||||||
|
else echo "To boot this image on kvm:"
|
||||||
|
echo "cd $MODDIR && kvm -serial stdio -kernel kernel -append \"console=tty00 rootdevname=c0d0p1\" -initrd \"$mods\" -hda `pwd`/$IMG"
|
||||||
|
fi
|
||||||
|
|
|
@ -77,7 +77,8 @@ SUBDIR= host-mkdep .WAIT compat .WAIT \
|
||||||
file \
|
file \
|
||||||
.WAIT \
|
.WAIT \
|
||||||
pwd_mkdb stat zic \
|
pwd_mkdb stat zic \
|
||||||
partition
|
partition \
|
||||||
|
writeisofs
|
||||||
|
|
||||||
.if ${MKLLVM} != "no"
|
.if ${MKLLVM} != "no"
|
||||||
# .WAIT between llvm-tblgen and llvm-clang-tblgen ensures install
|
# .WAIT between llvm-tblgen and llvm-clang-tblgen ensures install
|
||||||
|
|
4
tools/writeisofs/Makefile
Normal file
4
tools/writeisofs/Makefile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
HOSTPROGNAME= ${_TOOL_PREFIX}writeisofs
|
||||||
|
HOST_SRCDIR= commands/writeisofs
|
||||||
|
|
||||||
|
.include "${.CURDIR}/../Makefile.host"
|
|
@ -494,8 +494,7 @@ sizeup_dir(struct fs_size * fssize)
|
||||||
fssize->zonecount++; /* Symlink contents is always stored a block */
|
fssize->zonecount++; /* Symlink contents is always stored a block */
|
||||||
} else {
|
} else {
|
||||||
if ((f = fopen(token[4], "rb")) == NULL) {
|
if ((f = fopen(token[4], "rb")) == NULL) {
|
||||||
pexit("dynamic size detection failed: can't open %s",
|
warn("dynamic sizing: can't open %s", token[4]);
|
||||||
token[4]);
|
|
||||||
} else if (fseek(f, 0, SEEK_END) < 0) {
|
} else if (fseek(f, 0, SEEK_END) < 0) {
|
||||||
pexit("dynamic size detection failed: seek to end of %s",
|
pexit("dynamic size detection failed: seek to end of %s",
|
||||||
token[4]);
|
token[4]);
|
||||||
|
|
Loading…
Reference in a new issue