# Mark Huang <mlhuang@cs.princeton.edu>
# Copyright (C) 2004-2006 The Trustees of Princeton University
#
-# $Id: build.sh,v 1.5 2006/03/29 17:08:45 mlhuang Exp $
+# $Id: build.sh,v 1.17 2007/08/13 18:02:33 faiyaza Exp $
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin
PATH=$PATH:../build
srcdir=..
else
- echo "Error: Could not find sources in either . or .."
+ echo "Error: Could not find $(cd .. && pwd -P)/build/"
exit 1
fi
export PATH
# Release and architecture to install
-releasever=2
+releasever=4
basearch=i386
# Packages to install
time
vixie-cron
wget
+which
yum
curl
gzip
perl
python
tar
+findutils
)
usage()
esac
done
+# Do not tolerate errors
+set -e
+
# Make /vservers
-vroot=$PWD/vservers/vserver-reference
+vroot=$PWD/vservers/.vref/default
install -d -m 755 $vroot
-# Install vserver-reference system
+# Install default reference image
for package in "${packagelist[@]}" ; do
packages="$packages -p $package"
done
-mkfedora -v -r $releasever -a $basearch $packages $vroot
+mkfedora -v -r $releasever -a $basearch -k $packages $vroot
+
+# Clean /dev
+rm -rf $vroot/dev
+mkdir -p $vroot/dev
+mknod -m 666 $vroot/dev/null c 1 3
+mknod -m 666 $vroot/dev/zero c 1 5
+mknod -m 666 $vroot/dev/full c 1 7
+mknod -m 644 $vroot/dev/random c 1 8
+mknod -m 644 $vroot/dev/urandom c 1 9
+mknod -m 666 $vroot/dev/tty c 5 0
+mknod -m 666 $vroot/dev/ptmx c 5 2
+# For bash command substitution
+ln -nsf ../proc/self/fd $vroot/dev/fd
+# For df and linuxconf
+touch $vroot/dev/hdv1
+# For TUN/TAP
+mkdir -p $vroot/dev/net
+mknod -m 600 $vroot/dev/net/tun c 10 200
+# For pseudo ttys
+mkdir -p $vroot/dev/pts
+
+# Disable all services in reference image
+chroot $vroot sh -c "/sbin/chkconfig --list | awk '{ print \$1 }' | xargs -i /sbin/chkconfig {} off"
# This tells the Boot Manager that it is okay to update
# /etc/resolv.conf and /etc/hosts whenever the network configuration