#!/bin/sh IMG=$1 PKGLISTFILE=$2 RETCODE=0 : ${DIST=fc14} if ! [ $# -eq 2 ]; then echo "usage $0 " exit fi if [ -f $IMG ]; then echo "-> Image file already exists, assuming *update*..." mount -o loop $IMG mnt || exit 1 INSTALLDIR=`pwd`/mnt/ else echo "-> Preparing instalation of $DIST template..." rm -f keys base_rpms ln -sf keys_$DIST keys ln -sf base_rpms_$DIST base_rpms echo "-> Initializing empty image..." truncate -s 10G $IMG || exit 1 echo "-> Creating filesystem..." mkfs.ext4 -F $IMG || exit 1 mkdir -p mnt mount -o loop $IMG mnt || exit 1 INSTALLDIR=`pwd`/mnt/ echo "-> Initializing RPM database..." rpm --initdb --root=$INSTALLDIR rpm --import --root=$INSTALLDIR keys/* echo "-> Installing core RPM packages..." rpm -i --root=$INSTALLDIR base_rpms/*.rpm || exit 1 cp clean_images/network $INSTALLDIR/etc/sysconfig cp clean_images/resolv.conf $INSTALLDIR/etc cp -a /dev/null /dev/zero /dev/random /dev/urandom $INSTALLDIR/dev/ fi mount -t proc proc mnt/proc PKGGROUPS=$(cat $PKGLISTFILE) echo "-> Installing package groups..." yum install -c $PWD/yum.conf $YUM_OPTS -y --installroot=$INSTALLDIR $PKGGROUPS || RETCODE=1 yum update -c $PWD/yum.conf $YUM_OPTS -y --installroot=$INSTALLDIR || RETCODE=1 umount mnt/proc mnt exit $RETCODE