diff -urN util-vserver-0.30.210.orig/scripts/vserver-build util-vserver-0.30.210/scripts/vserver-build
--- util-vserver-0.30.210.orig/scripts/vserver-build	2006-04-28 04:52:17.000000000 +0000
+++ util-vserver-0.30.210/scripts/vserver-build	2006-04-28 04:52:04.000000000 +0000
@@ -66,6 +66,10 @@
 		     configuration file and calls an optional command then
     debootstrap ... -- -d <distribution> [-m <mirror>] [-s <script> ] [-- <debootstrap-options>*]
                      bootstraps the vserver with Debian's 'debootstrap' package
+    fai     ... -- -f <fai_vserver> [-n <nfsroot>] [-d <fai_dir> ] [ -a ]
+                     bootstraps the vserver with Debian Fully Automatic Installation
+                     -a means skip confirmation prompt and final shell.
+
 
 Please report bugs to $PACKAGE_BUGREPORT"
     exit 0
@@ -126,7 +130,7 @@
 
 case x"$method" in
     (xlegacy)	exec $_VSERVER_LEGACY "$VSERVER_NAME" build "$@" ;;
-    (xapt-rpm|xcopy|xskeleton|xdebootstrap|xyum|xrpm)
+    (xapt-rpm|xcopy|xskeleton|xdebootstrap|xyum|xrpm|xfai)
 		. $__PKGLIBDIR/vserver-build.$method
 		;;
     (x)		panic $"No build-method specified";;
diff -urN util-vserver-0.30.210.orig/scripts/vserver-build.fai util-vserver-0.30.210/scripts/vserver-build.fai
--- util-vserver-0.30.210.orig/scripts/vserver-build.fai	1970-01-01 00:00:00.000000000 +0000
+++ util-vserver-0.30.210/scripts/vserver-build.fai	2006-04-28 04:48:41.000000000 +0000
@@ -0,0 +1,179 @@
+#
+# Copyright (C) 2006 Sam Vilain <sam.vilain@catalyst.net.nz>
+#  
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License.
+#  
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#  
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+tmp=$(getopt -o '+d:+f:+n:+a' --long debug,pkgmgmt -n "$0" -- "$@") || exit 1
+eval set -- "$tmp"
+
+. "$_LIB_VSERVER_BUILD_FUNCTIONS_PKGMGMT"
+
+DISTRIBUTION=:
+
+FAI_VSERVER=
+FAI_NFSROOT=/usr/lib/fai/nfsroot
+FAI_DIR=/usr/local/share/fai
+
+use_pkgmgmt=
+while true; do
+    case "$1" in
+	-f)		FAI_VSERVER=$2; shift; ;;
+	-n)		FAI_NFSROOT=$2; shift; ;;
+	-d)		FAI_DIR=$2; shift; ;;
+	-a)		AUTO=1; ;;
+	--debug)	DEBUG=1; SH_DEBUG=-x; set -x;;
+	--)		shift; break ;;
+	*)		echo "vserver-build.fai: internal error: unrecognized option '$1'" >&2
+			exit 1
+			;;
+    esac
+    shift
+done
+
+getDistribution '' 1
+
+base.init
+base.initFilesystem "$OPTION_FORCE"
+
+setup_writeOption "$VSERVER_NAME"
+setup_writeInitialFstab
+
+test -z "$BUILD_INITPRE"  || "$BUILD_INITPRE" "$SETUP_CONFDIR"  "$UTIL_VSERVER_VARS"
+test -z "$1" || "$@"
+test -z "$BUILD_INITPOST" || "$BUILD_INITPOST" "$SETUP_CONFDIR" "$UTIL_VSERVER_VARS"
+
+# if they specified a vserver where FAI is installed, then prefix its
+# root to the FAI_NFSROOT etc (unless they have already specified a
+# $ROOTDIR-relative path)
+REAL_ROOTDIR=`cd $ROOTDIR; pwd -P`
+REAL_VDIR=`cd $VDIR; pwd -P`
+echo "ROOTDIR is $REAL_ROOTDIR"
+echo "VDIR    is $REAL_VDIR"
+if [ -n "$FAI_VSERVER" ]
+then
+    echo "FAI_VSERVER is $FAI_VSERVER"
+    if [ `expr "$FAI_NFSROOT" : "$REAL_ROOTDIR"` -eq 0 ]
+    then
+        FAI_NFSROOT="$REAL_ROOTDIR/$FAI_VSERVER$FAI_NFSROOT"
+    fi
+    if [ `expr "$FAI_DIR" : "$REAL_ROOTDIR"` -eq 0 ]
+    then
+        FAI_DIR="$REAL_ROOTDIR/$FAI_VSERVER$FAI_DIR"
+    fi
+fi
+echo "FAI_NFSROOT is $FAI_NFSROOT"
+echo "FAI_DIR     is $FAI_DIR"
+FAI_ROOT=/tmp/target
+
+# setup a new filesystem namespace
+set -e
+#[ -d $FAI_NFSROOT/var/log/fai ] || mkdir $FAI_NFSROOT/var/log/fai
+
+# pick a context number
+CTX=1000
+while [ -d /proc/virtual/$CTX ]
+do
+    CTX=`expr $CTX + 1`
+done
+
+# suppresses color logo, as it does not leave the terminal in a nice
+# state.
+console=dummy
+
+# set up interfaces, so that the vserver can be built with restricted
+# network access.
+echo "SETUP_INTERFACES is $SETUP_INTERFACES"
+for i in "${SETUP_INTERFACES[@]}"
+do
+    eval "`perl -le '$ARGV[0] =~ m{^(?:([^:]*):)?((?:\d+\.){3}\d+)(?:/(\d+))?$} && do { print for (\"iface=$1\", \"addr=$2\", \"prefix=$3\") }' $i`"
+    echo "iface: $iface, $addr, $prefix"
+    if [ -n "$iface" -a -n "$prefix" ]
+    then
+    	ip addr del $addr/$prefix dev $iface 2>/dev/null ||:
+    	ip addr add $addr/$prefix dev $iface 
+	IFSPEC="$IFSPEC --ip $addr"
+    	AFTER="$AFTERip addr del $addr/$prefix dev $iface;"
+    else
+    	echo "WARNING: FAI build method can't understand ifspec '$i'"
+    fi
+done
+
+echo "IFSPEC is $IFSPEC"
+if [ -n "$IFSPEC" ]
+then
+    chbind="/usr/sbin/chbind $IFSPEC"
+fi
+
+# last chance to abort!
+if [ -z "$AUTO" ]
+then
+    echo -n "Press ENTER to begin, or Ctrl+C to cancel: "
+    read junk
+fi
+
+rm -f /tmp/go 2>/dev/null ||:
+mkfifo /tmp/go
+
+(
+read junk < /tmp/go
+vattribute --set --xid $CTX --secure --ccap secure_mount
+[ -z "$SETUP_HOSTNAME" ] && SETUP_HOSTNAME="vs$CTX"
+vuname -s --xid $CTX -t nodename=$SETUP_HOSTNAME
+) &
+
+killprocs() {
+if [ -e /proc/virtual/$CTX ]
+then
+echo "Killing stray processes in context $CTX:"
+vps ax | grep -w $CTX | perl -nle 'm{^\s*(\d+)\s+(\d+)\s+(.*)} && ('$CTX') && ('$CTX' == $2) && do { print "$1 $3"; kill 15, $1 or warn "Error sending signal: $!" }'
+sleep 2;
+vps ax | grep -w $CTX | perl -nle 'm{^\s*(\d+)\s+(\d+)\s+(.*)} && ('$CTX') && ('$CTX' == $2) && do { print "$1 $3"; kill 9, $1 or warn "Error sending signal: $!" }'
+fi
+set -x
+$AFTER
+}
+
+trap killprocs INT EXIT
+
+rwpaths="/var/lock /var/log /dev /var/run /etc/sysconfig"
+if [ -d "$FAI_NFSROOT/etc/network/run" ]
+then
+    rwpaths="$rwpaths /etc/network/run"
+fi
+
+export VDIR ROOTDIR FAI_VSERVER FAI_DIR FAI_NFSROOT FAI_ROOT console
+
+if [ -z "$AUTO" ]
+then
+    FINAL_SHELL="exec /bin/sh -i"
+fi
+
+vnamespace -n -- sh $SH_DEBUG -c "
+    mount -n -o ro --bind $FAI_NFSROOT /mnt &&
+    mount -n -t tmpfs -o size=64m,mode=1777 vm /mnt/tmp &&
+    mkdir /mnt/tmp/target &&
+    mount -n --bind $VDIR /mnt/tmp/target &&
+    for x in $rwpaths
+    do
+        /mnt/usr/lib/fai/mkrw -n /mnt\$x
+    done
+    mount -n -o ro --bind $FAI_DIR /mnt/fai &&
+    mount -n -t proc proc /mnt/proc &&
+    $chbind chcontext --secure --xid $CTX /bin/sh -c '
+    	echo "ok" > /tmp/go
+	sleep 1
+        chroot /mnt /bin/sh -c \
+         \"/bin/sh $SH_DEBUG /usr/sbin/fai -N vschild_build; $FINAL_SHELL\"'"
+
+base.setSuccess
