+if [ -z "$STAGES" ] ; then
+ STAGES='/etc/debootstrap/stages'
+ [ -d "$STAGES" ] || mkdir -p "$STAGES"
+fi
+
+stage() {
+ # error handling
+ if [ -z "$1" ] ; then
+ eerror 'Error: stage() requires at least one argument.'
+ eend 1
+ return 1
+ fi
+ if [ -z "$STAGES" ] ; then
+ eerror 'Error: $STAGES not set.'
+ eend 1
+ return 1
+ fi
+ # main function
+ if [ -f "$STAGES/$1" ] ; then
+ if grep -q done "$STAGES/$1" ; then
+ ewarn "Notice: stage $1 has been executed already, skipping execution therefore." ; eend 0
+ fi
+ else
+ echo "$2" > "$STAGES/$1"
+ fi
+}
+
+[ -r /proc/1 ] || mount -t proc none /proc
+
+if [ -n "$CHROOTMIRROR" ] ; then
+ stage chrootmirror
+ echo "deb $CHROOTMIRROR $RELEASE main contrib non-free" > /etc/apt/sources.list
+ stage chrootmirror done
+fi
+
+if [ -n "$GRMLREPOS" ] ; then
+ stage grmlrepos
+ echo 'deb http://grml.org/repos/ ./' >> /etc/apt/sources.list
+ stage grmlrepos done
+fi
+
+if ! [ -r /etc/kernel-img.conf ] ; then
+ stage kernelimg.conf
+ echo "Setting up /etc/kernel-img.conf"
+ cat > /etc/kernel-img.conf << EOF
+# Kernel Image management overrides
+# See kernel-img.conf(5) for details
+do_initrd = Yes
+do_symlinks = Yes
+EOF
+ stage kernelimg.conf done
+fi
+
+# create default devices
+if ! [ -r /dev/hda20 ] ; then
+ stage makedev
+ echo "Creating generic devices in /dev - this might take a while..."
+ cd /dev && MAKEDEV generic
+ stage makedev done
+fi
+
+# install additional packages
+if [ "$PACKAGES" = 'yes' ] ; then
+ stage packages
+ if ! [ -r /etc/debootstrap/packages ] ; then
+ echo "Error: /etc/debootstrap/packages not found, exiting."
+ exit 1
+ else
+ apt-get update
+ apt-get --force-yes -y install $(cat /etc/debootstrap/packages) $GRMLPACKAGES
+ fi
+ stage packages done
+fi
+
+# sarge specific stuff
+if [ "$RELEASE" = 'sarge' ] ; then
+ stage mkinitrd
+ sed -i "s#ROOT=probe#ROOT=$TARGET#" /etc/mkinitrd/mkinitrd.conf
+ stage mkinitrd done
+fi
+
+if [ -n "$KERNEL" ] ; then
+ stage kernel
+ apt-get update
+ if [ "$RELEASE" = 'sarge' ] ; then
+ KERNELPACKAGES="kernel-image-$KERNEL kernel-headers-$KERNEL"
+ else
+ KERNELPACKAGES="linux-image-$KERNEL linux-headers-$KERNEL"
+ fi
+ apt-get --force-yes -y install $KERNELPACKAGES
+ stage kernel done
+fi